util


Log

Author Commit Date CI Message
Yuxin Hu ac242c1a 2025-03-20T11:18:45 Vulkan: Fix the feature flag typo Bug: b/333987915 Change-Id: Iea21592532352d95c69c0cf8dfcad96b58563ec5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6377544 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 6bd7a518 2025-03-19T13:35:48 Vulkan: Allow pipelineStatisticsQuery substitute PGO Some devices are missing VK_EXT_primitives_generated_query extension and primitivesGeneratedQuery (PGO) feature, which are required for GLES3.2 extensions geometryShaderEXT and tessellationShaderEXT. On such devices, when app requests to create a GLES 3.2 context, the eglCreateContext call will fail due to not able to support GLES 3.2. We add a new feature flag allowPipelineStaticsForPrimitivesGeneratedQuery, and enable it on devices where we can fallback to using pipelineStatisticsQuery (PSQ) as an approximation for VK_EXT_primitives_generated_query, to broaden support for GLES 3.2 contexts. This is an opt-in feature for vendors that can functionally substitute PGQ with PSQ. Expose geometryShaderEXT and tessellationShaderEXT extensions if allowPipelineStaticsForPrimitivesGeneratedQuery feature is enabled. Bug: b/333987915 Change-Id: I9f0affbc3cc383ed6c50bcfc5d4d6f7f8a708aaa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6362627 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Igor Nazarov 578ee168 2025-03-12T13:50:53 Do not wait for ConfigureNotify event when window is invisible XUnmapWindow does not produce ConfigureNotify event (only UnmapNotify and FocusOut), waiting on this event causes soft lock. Bug: angleproject:40096853 Change-Id: I00e327b15ee09b7dd6c6d3a3f74f589b9b1bc315 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6347282 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Igor Nazarov e6a27504 2025-03-07T20:14:50 Vulkan: Swapchain recreate workaround for shared present mode On Android, `vkCreateSwapchainKHR` may return `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR` if use `mLastSwapchain` as an `oldSwapchain` when in shared present mode. This happens on three different devices: SM-G996B (Mali-G78), SM-S921B (Xclipse 940), SM-S921U (Adreno 940). Bug: angleproject:397848903 Bug: angleproject:42262606 Change-Id: I1541c06c254f3e8231b165fb0c53eff5d810e8bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6329488 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 5b343e8f 2025-03-11T11:35:08 Vulkan: Remove support for Stadia Bug: angleproject:42262714 Change-Id: Icae5fe828fe4e0bcd287d297df1bc586708ef86e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6344390 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Igor Nazarov e0216987 2025-03-04T16:44:31 Preserve window format when resizing on Android On some devices acquiring next swapchain image after window format change (without resize) does not return VK_ERROR_OUT_OF_DATE_KHR. Further rendering into the acquired image and/or presenting that image may produce undefined results. Try to preserve current window format to avoid such problem. Note, window format is automatically set after swapchain create based on the create info imageFormat. Bug: angleproject:397848903 Bug: angleproject:42260362 Change-Id: Ibada10befd2938f1bcf018c399ce8cc015541e60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6322789 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Stephen White 412bd05c 2025-03-06T19:26:11 Implement workaround for MAX_COMBINED_SHADER_OUTPUT_RESOURCES. Implement a GL Feature to force MAX_COMBINED_SHADER_OUTPUT_RESOURCES to be the sum of MAX_COMBINED_SHADER_STORAGE_BLOCKS, MAX_COMBINED_IMAGE_UNIFORMS, and MAX_COLOR_ATTACHMENTS. Enable the feature for NV and PowerVR Rogue. Bug: angleproject:401232345 Change-Id: I03a113eed364617303f4ee59d90c853258865259 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6330671 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Amirali Abdolrashidi ae567733 2025-02-26T19:09:14 Vulkan: Make use of VK_EXT_device_fault if exists This Vulkan extension, if available, can provide further details about the device in case of VK_ERROR_DEVICE_LOST. * Added the following ANGLE feature: supportsDeviceFault * It shows whether the extension VK_EXT_device_fault is supported and that the deviceFault bit is enabled on the physical device. * Added the Vulkan entry point for the following function: * vkGetDeviceFaultInfoEXT * Added the following to the renderer: * mFaultFeatures (device feature) * retrieveDeviceLostDetails(); to log information regarding the following if the appropriate support is available: * Address faults * Vendor-specific faults * Vendor binary dump (logged in hex format) * Added RetrieveDeviceLostInfoFromDevice() to vk_renderer.cpp to be used in Renderer::retrieveDeviceLostDetails(). * Updated ContextVk::handleError() to try to retrieve more info in case of DEVICE_LOST. Bug: b/399478440 Change-Id: If8d8e04001dabbe775c023f9922c44ef2205317e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6305888 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Hailin Zhang bd8bc105 2025-02-19T18:08:32 vulkan: disable pipeline cache data serialization for nvidia device. we still see the big cache data issue after driver version 520. rename hasEffectivePipelineCacheSerialization to skipPipelineCacheSerialization. Bug: b/358380399 Change-Id: Idd8354f95c3eb4c2e58678a4cf50c8b6af20f371 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6284126 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Charlie Lao 65343c4c 2025-02-27T11:23:04 Vulkan: Improve ConvertImageLayoutToVkImageLayout() This CL removes supportsMixedReadWriteDepthStencilLayouts feature flag. This feature flag was introduced when ANGLE only requires vulkan 1.0. But now we require vulkan 1.1 and this is part of vulkan 1.1 core spec. So it is no longer needed and wasting CPU cycles to check this every time ConvertImageLayoutToVkImageLayout() is called. With supportsMixedReadWriteDepthStencilLayouts removed, convert from ImageLayout to VkImageLayout no longer needs renderer parameter. The layout information in kImageMemoryBarrierData is never modified by renderer at run time. So the renerer arguments has been removed in a lot of places, avoids another pointer de-reference. Bug: b/384839847 Change-Id: I5a89a890c0c0a1f99d2fdc1b2a85baf7de5c28bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310839 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Neil Zhang f974ffa8 2025-01-27T11:06:30 Vulkan: Add stubs for expose VK_KHR_swapchain_mutable_format Bug: angleproject:386688871 Change-Id: I77a45e342ee46f65c4f2947071c713f914a937a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6196939 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alex Dean c0d806b4 2025-02-10T23:01:33 CL: OpenCL support for ANGLE Capture/Replay Implementation of OpenCL Capture/Replay tool in ANGLE. Brief notes about the change: - Most meaningful changes for the capture process are made in src/libANGLE/capture/ - Most meaningful changes for replay are made in util/capture/ and src/tests/perf_tests/ - Many autogenerated files are changed/added to allow the capture of OpenCL objects & calls - The following applications were captured/replayed: benchmark_model, GeekBench Compute, GeekBench ML, AI-Benchmark, various OCL CTS tests - End2end test added to capture_tests. CapturedTestCL.MultiFrameCL/ES3_Vulkan Bug: angleproject:383841335 Change-Id: I55fdaa6cd6c7ba740aaa2351e4d29050059d6d1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102105 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Geoff Lang 869dde72 2025-02-07T15:44:12 Remove code paths for invoking the offline Metal compiler We experimented with invoking the Metal shader compiler directly to create cacheable shader libraries but the project did not show useful gains. It is currently all dead code, remove it. Bug: b/391990604 Change-Id: I6d13278d1a27d8b3ae961a0846f31292f2506b23 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6245258 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jordan 4ce8b71e 2025-02-05T08:06:09 LSC updating angle License ids This is based on the existing id and the license file provided. Bug: b/358504615 Change-Id: I0f0956806f27f8bfed6589157b583d159a25a3d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6232605 Owners-Override: Jordan Brown <rop@google.com> Auto-Submit: Jordan Brown <rop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 02bd7ad6 2025-01-29T12:18:08 Revert "Force logging ANativeWindow events for debugging." This reverts commit 08365628f4fdb72308757574f7ae414875150f9b. Reason for revert: no longer needed Original change's description: > Force logging ANativeWindow events for debugging. > > Temporarily switch from LOGV to LOGI, > so that logs from these events show in release builds of ANGLE: > onNativeWindowCreated > onNativeWindowDestroyed > onNativeWindowRedrawNeeded > onNativeWindowResized > > These are only printed in ANGLE tests. > > Bug: chromium:339457761 > Change-Id: I0d81b05348ee3184fdc90da1a16e69704bcc084a > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5526470 > Reviewed-by: Roman Lavrov <romanl@google.com> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bug: chromium:339457761 Change-Id: I63bd69945ef997374f2184d7c72cf2cc3e301a04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6215272 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Gowtham Tammana e330d959 2024-04-09T15:13:48 CL/Vulkan: Add native builtins to clspv compiler Add a set of native builtins that are known to perform better for Samsung devices. A feature condition `uses_native_builtin_cl_kernel` is setup in `vk_featurs.json` for control of the selection. The following files are autogenerated - FeaturesVk_autogen.h - angle_features_autogen.cpp - angle_features_autogen.h Bug: angleproject:361717757 Change-Id: I10ffad0cbf1d4c2e9bfeea768311d90b0f65af2d Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6092036 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 8c317940 2025-01-16T17:51:12 Vulkan: Add feature flag to use VkEvent for buffer barriers Bug: angleproject:360274928 Change-Id: Ie6e48a0a57c016571a1e94c0105a231c749c76f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180394 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
jh.eun 73e226cb 2024-10-17T16:37:52 Vulkan: Add check for uniform buffer standard layout feature Add to check uniform buffer standard layout is supported. Bug: angleproject:387306731 Change-Id: I543c46a6b504a4df7e9937365c9b28e6328f0619 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6137319 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi bbc0d702 2024-12-27T07:44:01 Vulkan: Add entry points to lock the Vulkan queue ... which can be retrieved via EGL_ANGLE_device_vulkan. Otherwise the application is unable to use the VkQueue that is retrieved out of ANGLE from other threads (such as Chromium's DrDC feature). Bug: chromium:380295059 Change-Id: Ife80f54440777486f72fc61697a68fb0c2b2d0f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6116046 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mohan Maiya 59162e2e 2024-12-30T12:22:10 Vulkan: Update a few features and extensions for Samsung Enable disableProgramCaching Disable rgbxInternalFormatANGLE clipDistanceAPPLE cacheCompiledShader preferMonolithicPipelinesOverLibraries Bug: angleproject:386749841 Change-Id: Iea8033e2999c65b8715c6069d2096a709f78f438 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6133540 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi c75bd915 2024-12-10T23:01:44 Vulkan: Remove asyncCommandQueue It's been years and it never showed an advantage. In the meantime, performance without this feature seems close to native drivers (i.e. the feature has lost its appeal) and it's frequently a source of complication and bugs. Bug: angleproject:42262955 Bug: angleproject:42265241 Bug: angleproject:42265934 Bug: angleproject:42265368 Bug: angleproject:42265738 Bug: angleproject:42266015 Bug: angleproject:377503738 Bug: angleproject:42265678 Bug: angleproject:173004081 Change-Id: Id8d7588fdbc397c28c1dd18aafa1f64cbe77806f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6084760 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxiang Qian fb743105 2024-11-26T14:37:39 Add stubs for EGL_EXT_surface_compression This patch adds stubs for EGL_EXT_surface_compression to ANGLE, including new API eglQuerySupportedCompressionRatesEXT and adding EGL_SURFACE_COMPRESSION_EXT in EGLQuerySurface and EGLCreateWindowSurface/EGLCreatePlatformWindowSurface. Bug: angleproject:375496226 Change-Id: I1962a11e8e3e5eb2cd5b13c5ba0f685781dfd015 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6073354 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxiang Qian 95756ae2 2024-12-04T15:47:19 Expose VK_EXT_image_compression_control_swapchain To implement EGL_EXT_surface_compression, VK_EXT_image_compression_control_swapchain should be exposed. With this extension, we can put VkImageCompressionControlEXT to the pNext of VkSwapchainCreateInfoKHR Bug: angleproject:375496226 Change-Id: I3f62040be3ba3e5cc051164cb9ace1934e61dead Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6073353 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 808cb91c 2024-12-03T15:30:22 Log when glGetPerfMonitor* calls fails or is missing data Flakes in tests hitting assertion reading the data later, one possibility is getting an error in these calls. Also log additional info when GetPerfCounterValue is missing data. Bug: angleproject:382094011 Change-Id: Ia7e9353ab32399534c1cb9d0a16a31eace0db7d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6064152 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Geoff Lang e3427ac7 2024-12-03T16:40:32 Add missing README.chromium fiends to ANGLE and DEPS Bug: chromium:378273739 Bug: chromium:365319754 Bug: chromium:378273453 Bug: chromium:365320292 Change-Id: I2faa54c6d796ebe86537e633fdfd8aeb3c0898a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6062491 Auto-Submit: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Robic Sun f51170b3 2024-11-21T16:30:40 Enable GL_KHR_texture_compression_astc_hdr Vulkan supports GL_KHR_texture_compression_astc_hdr, so this extension can be enabled in Angle. Bug: angleproject:379186304 Change-Id: I438a120c3f884a7eefcd883ad71abf68f81cb473 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038457 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xinyu Fang 5d3d299d 2024-11-25T16:35:51 Expose the required GLES1.0/1.1 extensions in ANGLE Exposed below extensions: GL_OES_texture_mirrored_repeat GL_OES_blend_subtract Bug: angleproject:380704155 Change-Id: Ib095f9bfaabda92bb2c588d633f1512e118f066e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038450 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Robic Sun 9eab301c 2024-11-12T17:24:57 Enable GL_KHR_texture_compression_astc_sliced_3d ARM supports GL_KHR_texture_compression_astc_sliced_3d, so this extension can be enabled in Angle. Bug: angleproject:378507964 Change-Id: I545ac57b4d6065a9ef99a7884555da47a1d50261 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6014004 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 0757254b 2024-11-22T10:21:29 Tests: Add crash callback to test Replay (e.g. linux-trace) Prints a backtrace on trapped signals. Didn't help with the issue on the bug as it was an OOM -> SIGKILL which can't be trapped but generally nice to have. Also adds stdout flushes to the signal handler as stdout redirection is by default _not_ line-buffered, so without a flush the printfs just go into the buffer and don't actually show up in the redirected output (including on bots). This might be the reason we were missing backtraces in some other cases. Bug: angleproject:380296979 Change-Id: I9fbba35e3bf4e6d863139ceb533f51973fe2f98d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6044040 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Neil Zhang 8a2b60b2 2024-11-06T17:13:16 Add stubs for GL_EXT_texture_storage_compression Bug: angleproject:352364583 Change-Id: I607c19c0c9bec7f0e3dd325e44b42e73f826b61c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5998012 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Neil Zhang 29855942 2024-11-06T16:01:28 Vulkan: Add stubs for expose VK_EXT_image_compression_control Bug: angleproject:352364583 Change-Id: Ia8292eee6620db6d0c4b0c6162de95583c1e416d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5998011 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Roman Lavrov 54e8e665 2024-11-12T12:53:54 Trace tests: generate and use trace list according to gn args Generates out/<config>/gen/trace_list.json which contains the list of traces included in the build according to the angle_restricted_traces gn arg (or all traces if not set). Test runner uses that file instead of the full restricted_traces.json. Android runner pushes that file to the device to the usual location (e.g. /sdcard/chroimum_tests_root/gen/trace_list.json) This also fixes the issue where `angle_trace_tests --list-tests` lists all traces, not just those that were selected with the gn arg. Similarly, running all traces without a filter would be limited to the same list. This transitively applies to trace bundles. Bug: b/376923930 Change-Id: I63506a074d766a51b860472f7211842f8a080ecd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6011956 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mark Lobodzinski c7a43ec8 2024-10-28T12:26:05 Capture/Replay: Track framebuffers by context Some game titles treat framebuffer objects as shared. Framebuffer objects are now tracked per-context to avoid conflicts. Test: angle_trace_tests --gtest_filter=TraceTest.limbo --offscreen Bug: b/371985732 Change-Id: I34ae5b54d569eec75ad86b7b363f7a84d56d955c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5973639 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi 7fea539c 2024-10-23T11:40:51 Vulkan: Remove extra non-conformant flag checks It may be possible to remove the flag check and simply rely on the checks performed in CanSupportGLES32() to determine support for ES 3.2. The non-conformant flag can remain utilized for certain features until the relevant issues are resolved and this flag is no longer needed. * Removed the checks from getMaxConformantESVersion(). * Removed the flag check in Renderer::getMaxSupportedESVersion(). * Added exception to the blend extension when using the non-conformant flag for Win/Intel. * Skipped the related tests on this platform that now fail. * Added a new feature flag to force-enable ES 3.2 on certain platforms for testing. * exposeES32ForTesting * If the bots are updated to support ES 3.2, it can be removed from using this flag. * Skipped some VVL errors when the flag is enabled. * Skipped end2end ES 3.2 tests on SwS. * Skipped some dEQP tests on P4 and SwS that would use ES 3.2 features that are not available on those platforms. Bug: b/374841339 Bug: b/376899587 Change-Id: Ifd405457ab8bf2076eb8fb5c92c5316f4d520595 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5958147 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov cc2edfd1 2024-11-05T15:37:21 Fix getPerfMonitorCounterData maxResults, skip AsyncCommandQueue test Skips TextureDataInLoopManyTimes on SwS AsyncCommandQueue. Add more debug info to the test although without the AsyncCommandQueue variant we likely won't be see flakes. Bug: angleproject:377503738 Change-Id: I372531451c280b04ffed84b020463657440fca08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5995531 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Charlie Lao 9a4c7495 2024-10-15T13:05:28 Vulkan: Add feature flag to enable descriptorSet cache So that we can disable it to compare the performance difference. Bug: angleproject:372268711 Change-Id: I02da254e5d58815741080634a2dd005617aa7432 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5936135 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi ae5c3b96 2024-10-08T17:02:21 Boilerplate for GL_ARM_shader_framebuffer_fetch_depth_stencil Bug: angleproject:352364582 Change-Id: I94c670db5546564a6f60bb513a6d7f3f5bd5778c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5916771 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Geoff Lang 492cf265 2024-09-27T13:44:22 Stubs for GL_blob_cache_angle Bug: chromium:370538323 Change-Id: Ib56b28c24305db8931f382b16a24975b7277fa7e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5900760 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev d550d96f 2024-09-30T00:00:00 Metal: Remove allowSamplerCompareLod feature * Apple2 GPUs do not support setting texture sampler compare state via Metal API. As a result, all sample_compare functions including those without LOD options do not work on Apple2 GPUs. This feature was attempting to incorrectly emulate a subset of sample_compare functions with a hard-coded compare state. There are no plans to support shadow samplers on Apple2 GPUs, as it would require non-trivial emulation, so this feature is not needed. * Metal on macOS 10.15 only supports constant zero as the level parameter for sample_compare functions. Ignoring the requested level and using zero on old OS versions is a better fallback than dropping the parameter altogether because many applications set the level to zero anyway. Bug: angleproject:365066518 Bug: angleproject:368059227 Change-Id: I2cdc0bda5842842d62ad5663427da7f1f37bddda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5907619 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi b16d105f 2024-10-03T10:25:32 Remove Desktop GL front-end support For Desktop GL applications, please use Zink! Bug: angleproject:370937467 Change-Id: Ie734634bb62a2e98c80e1b32d8b3d34624da3c04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905428 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Chris Dalton 966739ac 2024-09-19T23:49:06 Drop PLS support for EXT_shader_pixel_local_storage Supporting this backend drastically increased the complexity of the codebase, with little return. We don't support memoryless attachments on the web anyway, and since this extension requires us to literally draw the load/store operations, input attachments on Vulkan perform better. Once this implemention is completely removed, we will delete the PLS allow list, which isn't required for the other PLS implementations. Bug: angleproject:7279 Change-Id: Ibb036d36cbd33467e7a94398ce171cda7349e4f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5874412 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Igor Nazarov f5f419ec 2024-09-04T20:22:20 Vulkan: Add verify-restore in CompressAndStorePipelineCacheVk() Change fixes following problem: When blob cache is full, but still allows to store the current pipeline cache data, storing next chunk may trigger eviction of already stored items. Depending on the blob cache implementation, eviction process may choose to evict chunks from the current pipeline cache data. As the result: blob cache will not contain all chunks. Solution: The `StorePipelineCacheVkChunks()` function now check what chunks exist in the blob cache (if `lastNumStoredChunks` parameter is positive) and restores any missing chunks if their number is less than `lastNumStoredChunks`. First call to `StorePipelineCacheVkChunks()` passes zero (0) to the `lastNumStoredChunks`, which will skip the check and store all chunks unconditionally. If "verifyPipelineCacheInBlobCache" feature is enabled, the `StorePipelineCacheVkChunks()` will be called again to restore possibly missing chunks. If "hasBlobCacheThatEvictsOldItemsFirst" feature is disabled, the function will be called repeatedly in a loop (opposed to only once), until all chunks are present or until number of missing chunk stops decreasing. Bug: angleproject:4722 Change-Id: Ibbbdb2f878d6aafd7ab5586fc654e2b9be900a9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5837042 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Igor Nazarov 8469debb 2024-09-04T20:04:10 Vulkan: Add dual slots in CompressAndStorePipelineCacheVk() Change fixes following problem: Currently, each call to `CompressAndStorePipelineCacheVk()` stores chunks in order, starting from 0. This overrides previously stored chunks. In case of app termination (kill) in the middle of this process, the entire cache data will be corrupted, since it will partially contain chunks from the new and old caches. Solution: In order to fix this problem, this change introduces `slotIndex` into the `chunkCacheHash` calculation. Slot index is managed by `vk::Renderer::getNextPipelineCacheBlobCacheSlotIndex()` method, which will alternate between 0 and 1 when "useDualPipelineBlobCacheSlots" feature is enabled, and always 0 otherwise. Additionally, chunk storing order is reversed: last chunk is stored first and the first (0 chunk) - last. This is done because 0 chunk is the first that is loaded in `GetAndDecompressPipelineCacheVk()` and used as indication that there is data in the cache. Writing it last, ensures that other chunks will be also available. When "useDualPipelineBlobCacheSlots" is enabled, each call to `CompressAndStorePipelineCacheVk()` will use slot index opposed to the slot that is stored in the cache, avoiding damaging existing data. After writing all chunks for a brief moment there may be 2 instances of the data. However, data for the previous slot will be immediately erased (by writing 1/0-sized blobs) starting from the 0 chunk. To control if erasing of old pipeline cache data will be erased by using 0-sized or 1-sized blobs blobs, added `useEmptyBlobsToEraseOldPipelineCacheFromBlobCache` feature. The `GetAndDecompressPipelineCacheVk()` function will iterate over each available slot index checking only 0 chunk until data is found. In case of the OpenCL API, features will always have following values: - "useDualPipelineBlobCacheSlots" -> false - "useEmptyBlobsToEraseOldPipelineCacheFromBlobCache" -> true Note: this solution requires 2X pipeline cache size space in the blob cache to work as expected, otherwise it will exacerbate other problem: When blob cache is full, but still allows to store the current pipeline cache data, storing next chunk may trigger eviction of already stored items. Depending on the blob cache implementation, eviction process may choose to evict chunks from the current pipeline cache data. As the result: blob cache will not contain all chunks. The above problem will be addressed in the follow up CL. Bug: angleproject:4722 Change-Id: I2920bc3d89263280cdfe0466446fca26415e2b25 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756576 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Charlie Lao dbdc9551 2024-09-16T10:19:47 Vulkan: Let asyncCommandBufferReset control garbage cleanup So that people can toggle the flag to compare perf/power difference with async thread doing garbage clean up AND command buffer reset. This also renames feature flag asyncCommandBufferReset to asyncCommandBufferResetAndGarbageCleanup to reflect the implementation. Bug: b/255411748 Change-Id: Id459e6f4dc81ec76b6c0c2dba0db46041ea6ae8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5867389 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Hailin Zhang 8c12874c 2024-09-12T11:26:29 vulkan: add double buffer swapchain for fifo mode. Double buffer swapchain usually drop the performance. But at B* the default fps cap for silver device still at 30fps. This change is for reduce latency. Bug: b/311022968 Change-Id: Ida4044f439bbe3f235d53f5d1d2f945533cbb094 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5858255 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Rafael Cintron 6655e94f 2024-09-09T15:41:09 Remove Feature Level 9_3, part 2 Remove all of the remaining feature level 9_3 code. Bug: angleproject:355462523 Change-Id: Ifd15d8f5486d3e7f8f2e134f23872abf4a8ea51c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5847452 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Jiewei Qian e3e59b24 2024-09-09T14:30:25 ssci: mark StackWalker as "Version: N/A" StackWalker is tracked by revision, marking it as "Version: N/A" per README guideline. Bug: b/365320706 Change-Id: I3e5b8319843682d251b95d61ea26d06a9f117372 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5837376 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Jiewei Qian <qjw@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop e19377af 2024-08-21T14:52:09 Tests: Support multiple users on Android On most Android platforms, the userId is '0' and many of our defaults just work. But on some, the default is non-zero, and that complicates things. To support this, we have to specify which user is correct, which can be determined with: adb shell am get-current-user Update everywhere we were using sdcard directly and use: Before: /sdcard After: /storage/emulated/<userId> Incorporate the userId to find the application's home directory: Before: /data/data/com.android.angle.test After: /data/user/<userId>/com.android.angle.test This CL: - Starts using a user flag in our Android scripts - Updates where tests look for test data and binaries - Updates where scripts use temp and external storage - Updates script to not use sdcard at all when root - Disables run-as when user is not default Bug: b/361388557 Change-Id: I0fb556ecb2d0f6bc6569a858c290b127217d4638 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5825122 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Gowtham Tammana 79729f7c 2024-08-27T17:13:57 Reapply "Vulkan: Expose float control properties as angle features" This reverts commit 5a8eab96c6b7b99b8568feb902b8b85e2df7e19a. This relands the commit 027cbe1a071f41a09d596c4baa243a0abc3d1a86 with the below changes - add back needed suppressions that were removed erroneously ``` // https://anglebug.com/361600662 "VUID-RuntimeSpirv-OpEntryPoint-08743", "VUID-RuntimeSpirv-OpEntryPoint-07754", "VUID-RuntimeSpirv-maintenance4-06817", ``` Bug: angleproject:360031000 Change-Id: I74ed80b459466bdd8ae638ff875677b089aaa360 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5818733 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev e39d08b9 2024-08-20T00:00:00 Metal: Remove obsolete code from caps and extensions init MSL 2.1 * macOS 10.14 (min deploy 10.15) * iOS/tvOS 12.0 (min deploy 15.0) MSL 2.2 * macOS 10.15 (min deploy 10.15) * iOS/tvOS 13.0 (min deploy 15.0) Volume BC textures * macOS 10.15 (min deploy 10.15) Depth clipping mode * macOS 10.11 (min deploy 10.15) * iOS/tvOS 11.0 (min deploy 15.0) Dual-source blending * macOS 10.12 (min deploy 10.15) * iOS/tvOS 11.0 (min deploy 15.0) Bug: angleproject:360147119 Change-Id: I00d33d2b6b5c80a305bfbe9316c0ea670b9a4b04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5814950 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Yuly Novikov 5a8eab96 2024-08-27T10:07:26 Revert "Vulkan: Expose float control properties as angle features" This reverts commit 027cbe1a071f41a09d596c4baa243a0abc3d1a86. Reason for revert: removes needed suppressions, breaking bots: https://ci.chromium.org/ui/p/angle/builders/ci/win-exp-test/569/overview https://ci.chromium.org/ui/p/angle/builders/ci/linux-exp-test/810/overview https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-s22-test/1060/overview Original change's description: > Vulkan: Expose float control properties as angle features > > The different fp configuration that a vulkan backend supports are > exposed through `VkPhysicalDeviceFloatControlsProperties`. Expose these > as angle features that api's implementations can query. > > The autogen files are changes as reported by running `python3 > scripts/run_code_generation.py` script. > > Bug: angleproject:360031000 > Change-Id: I038cbf2c9e2b10916697994782ef73b35a1caf12 > Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5798053 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> Bug: angleproject:360031000 Change-Id: I88c0a083725320b5e1a8302a50f67d41cbf5c089 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5816829 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Gowtham Tammana 027cbe1a 2024-08-13T17:27:27 Vulkan: Expose float control properties as angle features The different fp configuration that a vulkan backend supports are exposed through `VkPhysicalDeviceFloatControlsProperties`. Expose these as angle features that api's implementations can query. The autogen files are changes as reported by running `python3 scripts/run_code_generation.py` script. Bug: angleproject:360031000 Change-Id: I038cbf2c9e2b10916697994782ef73b35a1caf12 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5798053 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Le Hoang Quyen 1a191b1d 2024-08-16T17:31:38 Metal: add an option to emulate DontCare loadOp with randomized Clear. This is useful for testing undefined initial values caused by DontCare MTLLoadAction on non-tiled GPUs. Bug: angleproject:42261786 Change-Id: Id5c4a9ee8510a8a9143bdd67e276bfcf2bd7eaa5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5791386 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Gowtham Tammana 579a5855 2024-08-13T11:39:54 Vulkan: Add query for 64bit fp support feature check Add a feature check for shaderFloat64 support. If present expose the corresponding feature check. The following files are updated by running the autogen script - `run_auto_code_generation.py` - include/platform/autogen/FeaturesVk_autogen.h - util/autogen/angle_features_autogen.cpp - util/autogen/angle_features_autogen.h Bug: angleproject:360031000 Change-Id: If2a11190729550ad5b84714e0a3aa3b81956c66a signed-off-by: gowtham tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5789896 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana e90cd0c4 2024-08-12T17:07:47 Vulkan: Add check for int8 extension support Vulkan backend currently has a check for float16 part in VK_KHR_shader_float16_int8 extension. Add the int8 support as well. The changes in below files are generated through `scripts/run_code_generation.py` script - include/platform/autogen/FeaturesVk_autogen.h - util/autogen/angle_features_autogen.cpp - util/autogen/angle_features_autogen.h Bug: angleproject:360031000 Change-Id: I8811779299e3d24b4536d1871e1eadcbb87432c2 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5792021 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang da572160 2024-07-23T16:36:10 Reland: GL: Forward client-side arrays to the driver when possible The OpenGL driver can handle client-side arrays when the context is OpenGL ES or a desktop GL compatibility profile. When in these situations, use the driver default VAO for all frontend context VAOs and forward client-side data directly to the driver. Fix synchronizing the default VAO state for external contexts. There is no valid VertexArrayStateGL for external VAOs so make sure it's nulled and the VAO dirty bits are set so the correct VAO state is reapplied. Disable syncing to the default VAO for external contexts. The only VAO that they can share with ANGLE's internal state is the default VAO so avoid having to save and restore its state. Bug: angleproject:355034686 Change-Id: I015bbbc854938fe4bc1e92d0ca8fe04628d0db16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5743284 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 6fddb18d 2024-07-26T12:44:23 GL: Disable heavily emulated extensions for non-WebGL. The multidraw and base vertex base instance extensions are heavily emulated in ANGLE's GL backend, manipulating vertex arrays multiple times per draw. This is often a performance improvement for deep pipelines such as WebGL but slower for shallow stacks like Chrome's rasterization. Mark these extensions as "emulated" and disable them in the frontend for non-WebGL contexts. Only EXT_base_instance can have true native support. Add a frontend feature to re-enable these extensions and use it in the existing end2end tests. Bug: angleproject:355645824 Change-Id: I897559fb270e2aa0f476d7784d25d97574e28f43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5743837 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Sylvain Defresne c9bf5465 2024-08-12T11:47:16 Reland "Remove the linkage-specification on `main`" This is a reland of commit b60dc9d59aad03e641b86431c277c877d4ca9d7a Original change's description: > Remove the linkage-specification on `main` > > According to the standard, the main function should have no > linkage-specification [1]. New version of clang will enforce > this via a warning [2] which causes build failure if building > with `-Werror` which treats warnings as error. > > Remove the superfluous linkage-specification to fix the error. > > [1]: https://eel.is/c++draft/basic.start#main-3 > [2]: https://github.com/llvm/llvm-project/pull/101853 > > Fixed: chromium:358427300 > Change-Id: I541166cbd122c7e296ecdd2b5a9f9a107fe82872 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5782349 > Auto-Submit: Sylvain Defresne <sdefresne@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Fixed: chromium:358427300 Change-Id: I380fdf74dc2a056f94af35c5c6c566a88d750c7d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5785953 Auto-Submit: Sylvain Defresne <sdefresne@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov f0465cac 2024-08-12T15:46:14 Revert "Remove the linkage-specification on `main`" This reverts commit b60dc9d59aad03e641b86431c277c877d4ca9d7a. Reason for revert: Fails to roll into Chromium https://chromium-review.googlesource.com/c/chromium/src/+/5782182 https://cr-buildbucket.appspot.com/build/8739800008401884241 Original change's description: > Remove the linkage-specification on `main` > > According to the standard, the main function should have no > linkage-specification [1]. New version of clang will enforce > this via a warning [2] which causes build failure if building > with `-Werror` which treats warnings as error. > > Remove the superfluous linkage-specification to fix the error. > > [1]: https://eel.is/c++draft/basic.start#main-3 > [2]: https://github.com/llvm/llvm-project/pull/101853 > > Fixed: chromium:358427300 > Change-Id: I541166cbd122c7e296ecdd2b5a9f9a107fe82872 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5782349 > Auto-Submit: Sylvain Defresne <sdefresne@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Change-Id: Id9f99c21480e7f72617b2907c35356e5033a3ce4 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5782859 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Sylvain Defresne b60dc9d5 2024-08-12T11:47:16 Remove the linkage-specification on `main` According to the standard, the main function should have no linkage-specification [1]. New version of clang will enforce this via a warning [2] which causes build failure if building with `-Werror` which treats warnings as error. Remove the superfluous linkage-specification to fix the error. [1]: https://eel.is/c++draft/basic.start#main-3 [2]: https://github.com/llvm/llvm-project/pull/101853 Fixed: chromium:358427300 Change-Id: I541166cbd122c7e296ecdd2b5a9f9a107fe82872 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5782349 Auto-Submit: Sylvain Defresne <sdefresne@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 67d8d8c8 2024-07-29T13:44:37 WebGL: Reject shaders with infinite loops Bug: chromium:350528343 Change-Id: I1b2fc152cf285b0e69c4c294351c1cf2389cc234 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5746714 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Le Hoang Quyen 1bfe5c57 2024-07-30T15:58:47 Metal: partially implement EXT_multisampled_render_to_texture. Implement by implicitly attaching a multisampled texture to the render pass. The content will be preserved across render passes by loading/storing to the implicit multisampled texture. However this won't work if the single sampled texture is used in multiple render passes with different glFramebufferTexture2DMultisampleEXT's sample counts. For that to work we need to implement unresolve step to load the resolve texture's texels into the implicit multisampled texture. That will be implemented in a separate CL. Bug: angleproject:42261786 Change-Id: I12be75af17ce5b98266946846417d0a43fcba455 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5746180 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Mohan Maiya 22ed9877 2024-03-07T15:52:13 Vulkan: Generate fragment shading rates with compute Generating fragment shading rates on the CPU could cause avoidable stalls or increased latencies due to host<->device synchronization. Instead generate the rates using a compute shader. Optimize foveated rendering by treating a foveated draw with focal points whose gainX or gainY is 0 as if it were an un-foveated draw Bug: angleproject:42266906 Change-Id: If8c5504087997666c7d0c1cae8dcc5fab847187e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5754322 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 65f08d08 2024-07-26T22:14:49 Vulkan: Work around driver bug with nested switch Bug: chromium:350528343 Change-Id: Ie7bd58934ccb2b8f06f6ad6a8c3bf38e81b84969 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5744620 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang a0a832de 2024-07-26T12:33:37 Revert "GL: Forward client-side arrays to the driver when possible" This reverts commit a6c2b4346516f228054b5bdd754bbc6f3ba1cba7. Reason for revert: Fails some Chrome tests on Android after rolling: https://chromium-review.googlesource.com/c/chromium/src/+/5742024 Original change's description: > GL: Forward client-side arrays to the driver when possible > > The OpenGL dirver can handle client-side arrays when the context is > OpenGL ES or a desktop GL compatability profile. When in these > sitatuions, use the driver default VAO for all frontend context VAOs > and forward client-side data directly to the driver. > > Bug: angleproject:355034868 > Change-Id: I21a4459c4f7db780b51441d76e63d17bf737c101 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5736058 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: angleproject:355034868 Change-Id: I76f95d66ca277bcbb67300179e49287b433c1ede No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5742647 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Geoff Lang <geofflang@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Geoff Lang a6c2b434 2024-07-23T16:36:10 GL: Forward client-side arrays to the driver when possible The OpenGL dirver can handle client-side arrays when the context is OpenGL ES or a desktop GL compatability profile. When in these sitatuions, use the driver default VAO for all frontend context VAOs and forward client-side data directly to the driver. Bug: angleproject:355034868 Change-Id: I21a4459c4f7db780b51441d76e63d17bf737c101 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5736058 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 84c77437 2024-07-15T16:41:17 GL: Disable GL_KHR_blend_equation_advanced on various devices Intel desktop OpenGL drivers fail tests for advanced blend. Skia also disables usage of this extension on Intel drivers. Disable on older Qualcomm and ARM devices following Skia's blocklists. Bug: angleproject:42267098 Change-Id: I7642017d06e11ad0651fba6f1ec5cc3f589700ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5709950 Reviewed-by: John Stiles <johnstiles@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Roman Lavrov df90bbc5 2024-07-12T18:04:53 Refactoring: move angle::HashMap and HashSet to own header Underlying abseil includes pull in a large set of headers Bug: angleproject:42266508 Change-Id: Icee47143a8a59bb0795a054b67c0aa4ddcfca4d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5704137 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Imran Ziad 24322b7d 2024-06-28T20:10:34 Vulkan: feature for cached non-coherent for dyn/stream buffers On platforms lacking cached coherent memory, ANGLE falls back to non-cached coherent memory for dynamic/stream buffers. This impacts CPU readback performance. Add VK feature preferCachedNoncoherentForDynamicStreamBufferUsage. When enabled, ANGLE prioritizes cached non-coherent memory for these buffers. Enable this feature for Intel Meteorlake SOCs. Bug: b/347601787 Change-Id: If62af9f3df57c0bcebf18af747cac56e45f93ea7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5667457 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Hailin Zhang a68351cb 2024-07-02T15:57:02 vulkan: add workround for speical shadowmap at intel device. this is a dirty quick patch for game TOA at intel device. at game TOA, we saw a special combination could cause the device lost for intel device. the draw call have 2d shadow map texture. if this draw call followed any other drawcall it will cause device lost, the underhood root cause still unknown. it may be related to combined depth stencil layout or any other case. will try to use separate depth stencil image layout to try. Bug: b/349489248 Change-Id: I4f63fff389b8059d68d27aad387a2fd5888d4ce3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5672966 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Shahbaz Youssefi cb0b851f 2024-06-27T11:34:57 Add Revision: field to third party Bug: chromium:349528337 Change-Id: Ieb7f1ee7c2911c932cc874a1909a7ba4a53f1f42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5658807 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 85e2e6a9 2024-05-08T12:31:37 WebGPU: Add Window and Pbuffer surfaces. Bug: angleproject:342213844 Change-Id: I58465bdf895b4bab63ec3c74e326c6be4827bf60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5525974 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0ccc018e 2024-06-20T10:20:08 Reland GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm Track if the output location and index came from a layout qualifier or from a call to glBindFragDataLocation[Indexed] and only call glBindFragDataLocationIndexed in the latter case. Re-binding a location that was already specified in the shader is not allowed. Qualcomm can fail when trying to bind locations using the API when the output variable is an array or uses a non-zero index. Only call glBindFragDataLocationIndexed when the user specifically uses it to avoid failed links when all outputs should be implcitly assigned. Assign the ProgramOutput::pod::index field when doing output assignment to mirror how the location is assigned. Bug: angleproject:42267082 Change-Id: I72cdb73dd4c5edea4ad1229ca75c0c7926344d1f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5645123 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 48969c95 2024-05-31T16:34:07 GL: Implement QCOM_tiled_rendering Bug: angleproject:343900918 Change-Id: I01612e11795d7aa8ee20f6e9bd5ef62fe40e2910 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5588630 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Amirali Abdolrashidi 05801537 2024-06-13T13:35:05 Vulkan: Add feature for coherent blend advanced op This change will add features that will be used in the follow-up CL. * Added the following feature to the Vulkan backend: * supports_blend_operation_advanced_coherent * Added the following feature to the renderer: * mBlendOperationAdvancedFeatures * It will be used to query advancedBlendCoherentOperations from the physical device. Bug: angleproject:42262258 Change-Id: I2949002d053700e89d92358d6e7c80c714ea36ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5634380 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Geoff Lang 800ca8d3 2024-06-19T21:04:11 Revert "GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm" This reverts commit e768aed37e77dfcba0fe8ec7027348ade2069c85. Reason for revert: Breaks WebGL tests. Original change's description: > GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm > > Track if the output location and index came from a layout qualifier > or from a call to glBindFragDataLocation[Indexed] and only call > glBindFragDataLocationIndexed in the latter case. Re-binding a > location that was already specified in the shader is not allowed. > > Qualcomm fails to bind any location that is not specified with a > layout qualifier. Skip tests that do this behaviour and log warnings > that the driver is unable to handle this case. > > Assign the ProgramOutput::pod::index field when doing output assignment > to mirror how the location is assigned. > > Bug: angleproject:42267082 > Change-Id: Icdf83bb93f63a6375b5a6062690e53905c9ffe71 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5415796 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Bug: angleproject:42267082 Change-Id: Ifb866878aa6489b809ba6db4152ea5942274dc45 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5641895 Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 92148c2c 2024-06-17T11:13:46 GL: Implement GL_EXT_clear_texture. This extension is useful because it allows clearing textures without changing the framebuffer. Chrome uses this on Android when it's available. Bug: angleproject:347047859 Change-Id: I765d9991c4549b3655446d9f51847d1095792dbd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5631810 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 1160fda7 2024-06-17T15:27:28 GL: Re-enable sRGB and BGRA8 extensions GL_EXT_sRGB_write_control and GL_EXT_texture_format_BGRA8888 were disabled on all of Android as a workaround for Nexus5X driver bugs. Scope the disablement to Qualcomm only. Bug: angleproject:347724909 Change-Id: I99d55ee12a98c1b46613be4aa92e92a0e576a82b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637249 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang e768aed3 2024-05-28T15:45:50 GL: Avoid calling glBindFragDatalocationIndexed on Qualcomm Track if the output location and index came from a layout qualifier or from a call to glBindFragDataLocation[Indexed] and only call glBindFragDataLocationIndexed in the latter case. Re-binding a location that was already specified in the shader is not allowed. Qualcomm fails to bind any location that is not specified with a layout qualifier. Skip tests that do this behaviour and log warnings that the driver is unable to handle this case. Assign the ProgramOutput::pod::index field when doing output assignment to mirror how the location is assigned. Bug: angleproject:42267082 Change-Id: Icdf83bb93f63a6375b5a6062690e53905c9ffe71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5415796 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi ba341ef8 2024-06-18T13:21:42 Add Revision: fields to third parties Bug: chromium:347134201 Bug: chromium:347135533 Bug: chromium:347136084 Bug: chromium:347136140 Bug: chromium:347861251 Bug: chromium:347862586 Change-Id: I82794c4868b92bb747f376d7da93701589f6d144 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5639873 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d193d51b 2024-06-17T22:46:08 Replace issue ids post migration to new issue tracker This change replaces anglebug.com/NNNN links. Bug: None Change-Id: I8ac3aec8d2a8a844b3d7b99fc0a6b2be8da31761 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637912 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 6ac37446 2024-06-17T15:38:09 Vulkan: Add feature for VK_KHR_maintenance5 This extension expands the pipeline flag bits, one of which is needed for VK_EXT_legacy_dithering v2 for dynamic rendering. Bug: angleproject:42267038 Change-Id: I45f2c47fbd016f60c3e52fda80d148d9f147bd71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637154 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 2d8e15f8 2024-05-31T14:25:12 Add stubs for GL_QCOM_tiled_rendering Bug: angleproject:343900918 Change-Id: I77d742949565ebfecb5f4446db3510af4f94033c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5588629 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 65f8dc8e 2024-06-12T17:01:54 Vulkan: Remove traces of VK_MSRTSS_GOOGLEX Devices that shipped this unreleased extension should have long been updated to VK_MSRTSS_EXT Bug: angleproject:4836 Change-Id: I23736ebf28afd4a6f3b5b0d5a6417b3e7564c293 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5627575 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov 15c182f9 2024-06-11T09:47:07 Vulkan: remove deferFlushUntilEndRenderPass feature, always on This only applies to Qualcomm chipsets, the feature was already enabled for all other devices. It was previously causing a manhattan 3.0 perf regression on some Qualcomm devices, but my tests on S24 both with ANGLE trace manhattan_31 and running gfxbench manually do not show any obvious regression. It was also not expected that this would result in a regression. As we do not aim to improve perf on older devices, removing the feature altogether so that defers are always enabled. This change resulted in a change in gold images on these traces on pixel 4 bots: pokemon_masters_ex - text was missing and now is rendered street_fighter_iv_ce_frame86 - shadow was missing and now is rendered So it looks like the feature may have been working incorrectly. Bug: b/346378481 Change-Id: I2b0d15b89e11c67dea7c316a42bc807441c43b0a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5622115 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Amirali Abdolrashidi 8042ebdc 2024-05-31T17:06:56 Add OES_tessellation_shader Bug: b/344030760 Change-Id: I49c5dd870a09cd6b43beea13c70b8c1a4266875b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5595610 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c519a4a6 2024-06-10T15:56:36 Vulkan: Add dynamic rendering features Bug: angleproject:42267038 Change-Id: Ic2cdc277f6bb1bb3ce273a866bdb2ce6f5930355 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5617653 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 7d65c945 2024-06-06T09:01:40 Vulkan: Limit SSBO max size to 256MB on older Mali GPUs Bug: angleproject:345244067 Change-Id: I18ff10198fc3db3a82a0897319fba5fb200a2a05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5603109 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 6aad8a89 2024-05-31T14:46:28 Vulkan: Remove combineAllShadersInPipelineLibrary If we have VK_NULL_HANDLE as the descriptor set layout handle for both pre-rasterization and fragment shader subset pipelines we run into VVL - VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681 Need to work around this by having the renderer store a placeholder descriptor set layout handle for an empty DescriptorSetLayoutDesc that can be reused across all contexts Bug: angleproject:8677 Tests: EGLMultiContextTest.NonSharedContextsReuseDescritorSetLayoutHandle* Change-Id: I22e7f39c497d7f668afe7cb26690f6a9de49831b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5587990 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi ce6232fc 2024-05-21T11:15:51 Add KHR_robustness * From the spec, there are some differences between KHR_robustness and EXT_robustness (already in use). In this CL, the following are addressed: * Updating the EXT suffixes * Changing EXT to KHR for GLES * Removing EXT for GL * Adding GLGetnUniformuivKHR (no equivalent in EXT) * Added GL_KHR_robustness to the list of extensions. * The API implementations seem to be already in place. * Validation functions will be updated in a follow-up CL. Bug: angleproject:42262244 Change-Id: Ibbc1bc11ec08ac756f4a03d11f51ba1268d037a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5555984 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 9620d4d3 2024-05-23T16:12:52 Vulkan: Emit SPIR-V 1.4 where available In preparation for optimizations possible for SPIR-V 1.4. This change makes ANGLE output SPIR-V 1.4 if supported, and SPIR-V 1.3 otherwise. It handles the following differences between the two versions: - OpEntryPoint in SPIR-V 1.4 includes all global variables, as opposed to SPIR-V 1.3 where only the Input and Output variables are listed - Storage buffers use a dedicated storage class in SPIR-V 1.4 Bug: angleproject:342316794 Change-Id: I157ed46449ff2d0f14d284b883b4ddc1b4b46fd1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5565224 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 08365628 2024-05-13T13:55:15 Force logging ANativeWindow events for debugging. Temporarily switch from LOGV to LOGI, so that logs from these events show in release builds of ANGLE: onNativeWindowCreated onNativeWindowDestroyed onNativeWindowRedrawNeeded onNativeWindowResized These are only printed in ANGLE tests. Bug: chromium:339457761 Change-Id: I0d81b05348ee3184fdc90da1a16e69704bcc084a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5526470 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov a24c413d 2024-05-13T10:35:19 Update native_app_glue from NDK 27.0.11718014 Adding these 3 evens handling: onContentRectChanged onNativeWindowRedrawNeeded onNativeWindowResized Bug: chromium:339457761 Change-Id: I7b919d60df2d1bf81745ef4caac6c81238b2c7bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5526468 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Geoff Lang a70ef7fc 2024-04-25T14:19:50 Add EGL_ANGLE_no_error for disabling EGL validation. Chrome makes many small EGL calls that can have proportionally expensive validation. Bug: angleproject:8434 Change-Id: I4f4d0e6eff64839f76a0f7bf48e5c94b8df9d809 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5491459 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e29d643e 2024-05-07T13:40:18 Vulkan: Fix missing per-present-mode query ... if VK_EXT_surface_maintenance1 is supported but VK_EXT_swapchain_maintenance1 isn't. The code mistakenly made the appropriate query conditional to the presence of swapchain_maint1 instead of surface_maint1. On devices where surface_maint1 was available but swapchain_maint1 wasn't, this caused a VVL error that is now fixed. Bug: angleproject:8680 Change-Id: Ide9a87f0e50887572f693d741d5476361320ea19 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5522756 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 950afec4 2024-04-30T09:38:43 Vulkan: Add VK_KHR_synchronization2 feature flag This CL adds VK_KHR_synchronization2 feature flag and enables the feature if exists. Bug: b/336844257 Change-Id: I201768e32c997125472c6a005c4635141441451e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5499379 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 4929e1df 2024-04-24T14:09:59 Vulkan: Add feature flag for using event for image barrier This is preparation CL that adds a feature flag for using VkEvent for image barriers. Bug: b/336844257 Change-Id: I01a7d779e16e2c259ddd05dca7338b3b18c30ba7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5484708 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana acb8b33f 2024-04-16T14:08:34 Vulkan: Enable 8/16 bit storage buffer extensions The support for 8bit and 16bit storage buffers are exposed via VK_KHR_{8,16}bit_storage vulkan extensions. Add checks for these extensions and enable them if present. The changes in FeaturesVk_autogen.h in the change are generated by running the run_code_generation.py script. Bug: angleproject:8676 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Change-Id: Idcda416e3eb6a735e021cd5bb0a182af341e9a16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5491781 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya b74de557 2024-04-24T14:35:17 Vulkan: Add a feature related to shader subsets On vendors that support VK_EXT_graphics_pipeline_library the shaders subset of the pipeline can either be combined into a single pipeline or can be decoupled into separate pipelines. Upcoming optimizations require the ability to distinguish between the two options. Add a feature declaring support for only the combined variant. Bug: angleproject:8601 Change-Id: I44fb828d972ca6ebba5549819ce8e41645683e14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5484673 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 2905a6a6 2024-04-19T15:09:41 Vulkan: Fix read pixel to cached non-coherent memory The bug here is that when we use cached non-coherent memory for image read, we must wait until DMA to finish before calling invalidate(). Otherwise CPU pre-fetching might end up populate the cache line again with old data between invalidate and DMA and causes CPU reads get the stale data from cache. This CL moves invalidate() call after we wait for copy to finish and removes requireCachedBitForStagingBuffer feature flag. Bug: b/335937565 Bug: b/315836169 Bug: b/324953979 Change-Id: Ie8a1854e17a5fe9c534c5102b2e0d51bd35c131a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5468597 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>