src/libANGLE/renderer/vulkan/RendererVk.cpp


Log

Author Commit Date CI Message
Shahbaz Youssefi 4d362242 2024-02-28T22:00:05 Vulkan: Remove call to angle::GetSystemInfo() This function is expensive, especially when it creates a temp VkInstance to query device info. It was only used to check if running on a Pixel device, but the information retrieved was to make a workaround slightly more precise. This change does away with that information and applies the workaround more generally. If the workaround precision is necessary, the necessary information should be retrieved directly without making the expensive angle::GetSystemInfo() call. Bug: b/327509734 Change-Id: Id097b427c59efde16a5811d484823b207c1a8917 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5331602 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mohan Maiya cdf6220c 2024-02-25T05:12:21 Reland "Vulkan: Feature addition for QCOM foveated rendering extensions" This is a reland of commit 72cf9915f561ca6ca72fa4b6c84c36bba815bf29 In the reland, cache the sample counts as VkSampleCountFlags type and clamp framebufferColorSampleCounts with kSupportedSampleCounts Also evaluate supportsImagelessFramebuffer feature before evaluating supportsFoveatedRendering Original change's description: > Vulkan: Feature addition for QCOM foveated rendering extensions > > Add a new vulkan feature gating support for QCOM foveated rendering > extensions and cache shading rates and sample counts of Vulkan ICD. > > Bug: angleproject:8484 > Change-Id: Id2925541098a605749f93ad5a54c885f4a4a2c66 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5322317 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:8484 Change-Id: Ie831d27ecc0e1429a3fe365d7728f264496e234c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5328188 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brian Sheedy a627dd89 2024-02-27T19:00:07 Revert "Vulkan: Feature addition for QCOM foveated rendering extensions" This reverts commit 72cf9915f561ca6ca72fa4b6c84c36bba815bf29. Reason for revert: Causing crashes on Win/NVIDIA crbug.com/327027614 Original change's description: > Vulkan: Feature addition for QCOM foveated rendering extensions > > Add a new vulkan feature gating support for QCOM foveated rendering > extensions and cache shading rates and sample counts of Vulkan ICD. > > Bug: angleproject:8484 > Change-Id: Id2925541098a605749f93ad5a54c885f4a4a2c66 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5322317 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:8484 Change-Id: I45764d8119388fa2edb3e08825957fbc811b31a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5328729 Auto-Submit: Brian Sheedy <bsheedy@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mohan Maiya 72cf9915 2024-02-25T05:12:21 Vulkan: Feature addition for QCOM foveated rendering extensions Add a new vulkan feature gating support for QCOM foveated rendering extensions and cache shading rates and sample counts of Vulkan ICD. Bug: angleproject:8484 Change-Id: Id2925541098a605749f93ad5a54c885f4a4a2c66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5322317 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi acba61cb 2024-02-23T17:13:17 Fix Vulkan driver version for Win/Intel * Updated the Vulkan renderer version for Windows/Intel to follow this format: <DriverMajor>.<DriverMinor> Bug: b/326669051 Change-Id: I41e868820ec351f454589cc33ed66a85669d3790 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5321166 Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski 8c503c1b 2024-02-21T09:37:06 Add skip for 07753 validation error in trace Running Pokemon Masters Ex game on Android generates the validation error VUID-vkCmdDraw-format-07753. Update the SkippedMessages list to avoid trace failures. Test: angle_trace_tests --gtest_filter=*pokemon_masters_ex Bug: b/319228278 Change-Id: I8ffbb8c6f35ef3fead583be1b8f0b96d85c7ea12 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5313836 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Mark Lobodzinski f546983c 2024-01-30T13:39:27 Add test and skip for 07753 validation error Running Pokemon Masters Ex game on Android generates the validation error VUID-vkCmdDrawIndexed-format-07753. This CL adds the TexImageFormatMismatch test to reproduce the error and updates the SkippedMessages list to avoid test failures. Test: angle_end2end_tests --gtest_filter=*TexImageFormatMismatch* Bug: b/319228278 Change-Id: I6ee2cac0bc899e945ef0d4aff33d5e73299c6954 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5309857 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Mohan Maiya 6607a2b9 2024-01-17T15:58:20 Vulkan: Add support for VK_EXT_vertex_input_dynamic_state Hook into VK_EXT_vertex_input_dynamic_state so pipeline states that differ only in vertex input state can reuse existing pipelines. Bug: angleproject:7162 Tests: StateChangeTestES3.Vertex* Change-Id: Icd3134dee93fc5fc2e9d284fcfa8c674b62faec8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5207462 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 2cae27c2 2024-02-14T10:38:18 Vulkan: Enable the doubleDepthBiasConstantFactor feature on NV Experimentally found to make behavior more consistent with other platforms. Discovered through a Dawn issue [1]. [1]: https://bugs.chromium.org/p/dawn/issues/detail?id=2076 Bug: b/249380591 Change-Id: I27777397d717da0d400b9e15508b17b5329e1e8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5296380 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 5d9abeca 2024-02-06T16:24:34 Revert "Suppress VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576" This reverts commit 39b9d94750328ec33aad244ddf28d16d9e748b2d. Reason for revert: Fixed upstream: https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/7439 Original change's description: > Suppress VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576 > > VVL is still working on a fix for > https://bugs.chromium.org/p/angleproject/issues/detail?id=8516#c2. > > Suppress the VVL error to unblock the vulkan-deps > auto roller > > Bug: angleproject:8516 > Change-Id: I58a2593fe0bdde5d53e07ee68e6b83847cd41d37 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5263501 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:8516 Change-Id: Iec2a523e56040b2173489f26a38fe6df6fe1b609 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273485 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Solti 475784f5 2024-02-07T21:24:36 suppress VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext Bug: angleproject:8522 Bug: b/324243941 Change-Id: I825986e7c98f50522d7ba25c0c78839802c42c3d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5277631 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Solti Ho <solti@google.com>
Yiwei Zhang ef78e570 2024-02-07T20:52:19 Revert "Vulkan: disable warmUpPipelineCacheAtLink for Venus" This reverts commit 0be59b3d83dd7b72daf2aab9d03702cfa46d4751. Needed by GPL. Meanwhile, the prior jank issue with Dota Underlords has been worked around separately. Bug: b/323708819, b/267577845 Test: parallel shader warmup works with ANGLE-on-Venus Change-Id: I61c63581b8c4e4c776842e7906e52d268e024ed2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5277630 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 39b9d947 2024-02-02T13:32:30 Suppress VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576 VVL is still working on a fix for https://bugs.chromium.org/p/angleproject/issues/detail?id=8516#c2. Suppress the VVL error to unblock the vulkan-deps auto roller Bug: angleproject:8516 Change-Id: I58a2593fe0bdde5d53e07ee68e6b83847cd41d37 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5263501 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 1abfdc37 2024-01-31T10:24:51 Remove suppression of VVL error Remove the suppression of VVL error VUID-VkFramebufferAttachmentImageInfo-viewFormatCount-09536. This change in ANGLE https://chromium-review.googlesource.com/c/angle/angle/+/5246088 properly fixed the VVL error. Bug: angleproject:7553 Bug: angleproject:8513 Change-Id: Ic866bae689a649fdabfde8e80a882595e2e7947c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5249864 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu 349e75cc 2024-01-29T16:41:42 Suppress VUID-VkFramebufferAttachmentImageInfo-viewFormatCount-09536 After this VVL change: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+/40d989c436d43538be341cd614a595505ce907cc, the newly added VVL error starts to be thrown on multiple ANGLE bots. Suppress this VVL error to unblock the vulkan-deps roller first. Will investigate later how to fix the VVL error in ANGLE. Bug: angleproject:8513 Change-Id: I7d74ff762c3b78d70c3ba5139c1b6955d4cd49e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5247713 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 3fdf576a 2024-01-26T14:37:42 Vulkan: Workaround Nvidia driver bug with OpSelect Bug: angleproject:8503 Change-Id: I4bd2580056df3d970a1316d0dbeaaad7590aa947 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5237873 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Brandon Schade e9bd169c 2024-01-24T12:26:46 Vulkan: Fix nullptr in Diagnostics - VK Spec for VkDebugUtilsMessengerCallbackDataEXT says pMessageIdName may be nullptr and pMessage must not be a nullptr - This was enforced by the following change Vulkan: Don't crash on diagnostics with null pMessageIdName - But this was susequently broken by the following change Vulkan: Enable sync validation - This change adds a check to skip accessing callbackData->pMessageIdName if it is null Bug: angleproject:5290 Change-Id: I82dd225d875e233530158013efc280e979f82a5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5238650 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Roman Lavrov a76e2798 2024-01-24T09:50:32 Suppress VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 Blocking VVL roll, new check recently added in: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+/6180ce40299b1346ee2caf4aa8b1540590e197e8 Bug: angleproject:8497 Change-Id: I40d600409ad0e9900c17fac9700ab4397be6c876 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5231423 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 341906d5 2024-01-22T10:19:25 Vulkan: Never delay device and queue selection Previously, when multiple queue families where eligible, ANGLE delayed the decision on which queue family to use and delayed device creation until a window surface was created. This assumption was never correct. The application may start rendering to pbuffers or using EGL_KHR_surfaceless_context long before it creates a window surface. So a queue may need to be chosen regardless of its surface present capabilities. Once done, ANGLE has no mechanism to change that queue should a window surface require a different queue. This change drops the pretense to support multiple queue families properly and makes ANGLE always choose the first graphics queue family it encounters. So far, only MoltenVk seems to expose multiple graphics queue families, and choosing the first one ultimately correct for the purposes of presenting to a MacOS surface. Bug: angleproject:8478 Change-Id: I8efbfe0c8036be5f9cee01eb657f83f85a4864fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5225081 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 16a5e8f1 2024-01-22T14:22:53 Revert "Prefer linear filtering for YUV for Pixel6+" This reverts commit 0da6522524247d6a1cb88ab1b48a1801ee609991. Reason for revert: Breaks an Android test b/321251332 Original change's description: > Prefer linear filtering for YUV for Pixel6+ > > This is required to pass CtsMediaDecodeTestCases. > Narrowed to just Pixel6+ due to another issue (b/321903468) which > prevents preferring linear filtering on Pixel4. > > Bug: b/315387961 > Change-Id: I6fbbea10a3b4fd835afbcdbecf120264d0ca8605 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5207870 > Reviewed-by: Charlie Lao <cclao@google.com> > Commit-Queue: Chris Forbes <chrisforbes@google.com> > Reviewed-by: Cody Northrop <cnorthrop@google.com> Bug: b/315387961 Change-Id: I4b055a9ffef9ed49992ea5568f723aaff53c7f1c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5224900 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Chris Forbes 0da65225 2024-01-18T10:29:23 Prefer linear filtering for YUV for Pixel6+ This is required to pass CtsMediaDecodeTestCases. Narrowed to just Pixel6+ due to another issue (b/321903468) which prevents preferring linear filtering on Pixel4. Bug: b/315387961 Change-Id: I6fbbea10a3b4fd835afbcdbecf120264d0ca8605 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5207870 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Chris Forbes <chrisforbes@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
angle-autoroll 2e2d7247 2024-01-11T11:50:44 Roll vulkan-deps from eb5fcf15ff7f to 124ff11a5e15 (21 revisions) Skip VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658 added in: https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/939e7c3fcbb75f71f0dfa999064c74f27a014189 https://chromium.googlesource.com/vulkan-deps.git/+log/eb5fcf15ff7f..124ff11a5e15 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/db4d6f85af..1952e63d43 * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/cffc08a542..37a58e4c95 * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/1bfd27101e..bdd1b2ab1f * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/e2b7bb1207..4c20ea3156 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/02f1cb7d55..6f441477e7 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:8482 Tbr: cnorthrop@google.com Change-Id: Iaa696787ae66ba44db591c18833d2b7261474c08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5185141 Reviewed-by: Solti Ho <solti@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
angle-autoroll f7296e95 2023-12-29T10:01:26 Roll vulkan-deps from 1fd0038f3bbb to 7f90849f10d0 (6 revisions) Skip VUID-VkImportMemoryFdInfoKHR-handleType-00667 added in https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/7199/commits/cebf29d9587aad38acf52351d4b6225e7c1d032f https://chromium.googlesource.com/vulkan-deps.git/+log/1fd0038f3bbb..7f90849f10d0 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/89824a83b7..88c5373ee4 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/741a9dfd8f..a3b11f1fcc * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/e3d690bb54..98dea76972 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:8470 Change-Id: Iba9e9dae398a753fd9675e5b68551abe2dfc0c46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5155494 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Solti Ho <solti@google.com>
Mark Lobodzinski d18f22ca 2023-12-14T11:50:19 ANGLE: Update syncval exceptions and add test for syncval errors Trace testing found some new cases where the current sync val error messages needed to be widened to cover more cases. A test was added to reproduce the behavior seen in the Asphalt 9 ANGLE trace. Test: FramebufferTest.InvalidateAttachmentStencilOnly Bug: b/316337308 Change-Id: Icde7ad560e6949712bfd785d9969b9e179d11492 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5124314 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
angle-autoroll e15a7de3 2023-12-21T10:01:41 Roll vulkan-deps from 9c3a33aed0ec to 34a8babeb440 (5 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/9c3a33aed0ec..34a8babeb440 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/c155f881ee..abb79089a8 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/40633a61aa..3798f68b73 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/b42addf414..e21dc3deb0 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/ea496a3de8..8095b050f9 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:8468 Change-Id: Icf23d4056b1f9a6caae2483125841bc6aefe3a8f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5144390 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 13685465 2023-12-20T15:39:24 Vulkan: Don't request surface extensions without VK_KHR_surface ... on headless platforms. Bug: angleproject:8467 Change-Id: Id0032ddd9f57540719d90f58b7d99cfb79f91a8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5142626 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi e9c0241d 2023-12-19T10:23:13 Vulkan: Rely on Vulkan 1.1 entry points in tests Some KHR entry points that were promoted to Vulkan 1.1 no longer seem to be loadable with their KHR symbols. Bug: angleproject:8464 Change-Id: Id5417e5b047e6bd34d144fead518f771c17658e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5135676 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 6951508b 2023-12-19T19:30:05 Manual roll vulkan-deps from de368ee1bf18 to 06ba2decfb32 (1 revision) Manual roll requested by ynovikov@google.com Suppress SYNC-HAZARD validation errors in vkQueueSubmit(), enabled by https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/7129 https://chromium.googlesource.com/vulkan-deps.git/+log/de368ee1bf18..06ba2decfb32 Changed dependencies: * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/eebe1dfcef..0c6e58c7f0 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,geofflang@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: b/316013423 Change-Id: Id63a3ddd4615f8a520b68588db4520d30a687598 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5137081 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 80db7c4b 2023-10-17T10:03:06 Vulkan: Remove fixed VU suppressions Bug: angleproject:5309 Bug: b/175584609 Change-Id: I8f952a1feb235b6bd060b5fe0b89c01fde6f84be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4946592 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Yiwei Zhang 1e4c4c76 2023-12-18T19:35:13 Vulkan: avoid disabling explicitlyCastMediumpFloatTo16Bit for venus We disabled it to work around below legacy skia cts: CtsSkQPTestCases org.skia.skqp.SkQPRunner#gles_gradient_many_stops The test no longer exists in newer skia cts. Meanwhile, we have to drop the workaround for other precision issue on Mali-G52. Bug: b/316474995 Test: dEQP-GLES2.functional.shaders.algorithm.rgb_to_hsl_vertex Change-Id: I18394595632d05657e96f8b9c9675b4dd959d92b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5133372 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Charlie Lao 40f4de8f 2023-12-15T10:17:32 Vulkan: Ensure we use cached memory for readPixels stagingBuffer Previous CL crrev.com/c/5112759 does not solve the performance issue for ChromeOS. The reason is that on more recent intel GPU, there is no hostVisibleCachedCoherent heap. When we allocate staging buffer, we specify CachedCoherent as the preferredFlags instead of requiredFlags. This means we still end up getting UncachedCoherent since VMA tries to respect coherent bits as first priority. This CL Changes CachedCoherent to CachedPreferCoherent, and made Cached as required bit, thus ensures the memory allocated is cached. Since coherent bit may not be honored, thus we have to call invalidate/flush (which underline implementation will check the bit and early out if no need). Somehow on ARM GPU using cachedNonCoherent staging buffer causing many test failures, even though we do call invalidate() after allocation, and tests pass on all other GPUs. It almost indicates ARM driver have a bug with invalidate() that it is not doing expected. But before I can be sure and fixed, I added feature bit to keep ARM the old behavior, which uses UnCached memory for readPixels which should suffer the performance as well. Bug: b/315836169 Bug: b/310701311 Change-Id: I1eec6105ce74275faa893b0206be8470f0cde72f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5122318 Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 3439e421 2023-12-15T11:37:53 Vulkan: Remove AHB workaround for camera app This is now fixed in camera app main branch. The workaround is removed here. Bug: b/239181279 Change-Id: I782baf7a42a8c9a897f1947d8b2f6feba606ce29 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5126931 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yiwei Zhang 524bcb8e 2023-12-13T20:21:38 Vulkan: avoid forcing preferSubmitAtFBOBoundary with Venus It turns out benefiting Venus atop ARM while hurting in a non-trivial way on old Gen Intel due to execbuf overhead. Bug: b/314847707 Test: 2%+ gain for trex on ANV on CML Change-Id: I61eb18a05e94c97ee6a4d70f98ae30423155e632 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5118128 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Solti c8604e97 2023-12-13T19:48:16 suppress VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870 Unblock the autoroller first Bug: angleproject:8454, b/316176944 Change-Id: I7f692a81e7a8b0189f83ce6f00e0cec6e2d7e2b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5118126 Commit-Queue: Solti Ho <solti@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Charlie Lao de591cff 2023-12-11T13:15:30 Vulkan: Add CachedCoherent staging buffer Right now if we allocate a coherent staging buffer, it always uncached. I believe the reason it picked uncached is that most usage for staging buffer is data flow from CPU to GPU. CPU only sequentially write into staging buffer. Uncached may has better performance here due to write combined. But this performs horrible if CPU ever read from it. This CL adds a CachedCoherent staging buffer and let staging buffer use that for coherent memory. UncachedCoherent is currently not used, but I still kept here in case we find regression for certain type of usage. Bug: b/315836169 Change-Id: Ica331914c1f4729baa9d2eab048dc3099a2887b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5112759 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi fb6b960c 2023-11-27T14:24:28 Remove GL_CHROMIUM_texture_filtering_hint This was using an unregistered Vulkan extension to set the precision of SwiftShader's internal filtering for the sake of Chrome. That's baked in at build instead. Bug: angleproject:8349 Bug: chromium:726075 Change-Id: I12849d2d29d99626f22a92ee9d74366f78658476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5063344 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 90767546 2023-12-01T12:27:15 Vulkan: Add test for __samplerExternal2DY2YEXT then swizzle Added a correctness test SourceYUVTextureTargetExternalRGBSampleYUVSampleWithSwizzle for applying swizzle after sampler. Also removed some bug workaround for VVL and drivers since they are fixed now. Bug: b/309480316 Change-Id: If82b2251745a96335b535c67b6e0c0847268b25b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5080497 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 3680a5dc 2023-11-17T13:51:07 Vulkan: Let program warmup continue passed link The warmup task does not actually affect the link results, so there is no reason to wait for it when the application queries the link status. This change allows the warm up task to continue in parallel until the program is used at draw time. This allows the warm up to be more efficient when the link itself is not parallelized. For applications that create programs in the middle of every frame, it's still likely best to disable warm up (as the following immediate draw will already effectively do the warm up). Note that currently the warm up code in the Vulkan backend is not completely thread-safe, and so the program still blocks on that task before the first draw can happen (or the program is modified in any way). Bug: angleproject:8417 Change-Id: I0877fef39a0585c3279e32699ce817d4643d7cd6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5037538 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yiwei Zhang d842f3db 2023-11-29T06:53:58 Vulkan: add a disableSeparateShaderObjects feature Dota Underlords uses one PPO and keeps swapping the attached program. Though we get cache hit, the hundreds pipeline creation calls still amount to non-trivial CPU overhead via ANGLE. The use of SSO has been disabled by the app in certain cases, and this feature is added to support entirely disabling SSO in ANGLE on all Vulkan backend impls. Bug: b/309028728 Test: Dota Underlords easily hits target FPS on ANV and RADV Change-Id: I54532975237218563b8750f1878a83e386fe776d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5073414 Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao f7eb7efb 2023-11-28T11:20:57 Vulkan: Fix camera panorama hang When EGL attributes does not speficy color space, right now we pick VK_COLOR_SPACE_SRGB_NONLINEAR_KHR. This overwrites the color space people set via ANativeWindow. This causes camera goes into CSC conversion and errors out and stops media codec pipeline and causes camera to hang. This CL enables mapUnspecifiedColorSpaceToPassThrough feature flag for all platform that supports VK_EXT_swapchain_colorspace so that it will pick VK_COLOR_SPACE_PASS_THROUGH_EXT and vulkan swapchain code will try to keep whatever color space surface already has. The feature flag is still kept here in case there is regression and we need to experiment this feature flag again. We can remove it once everything settles down. This CL also adds updateColorSpace() and getActualFormatID() to de-duplicate the logic of R8G8B8_UNORM overriding and use of VK_COLOR_SPACE_PASS_THROUGH_EXT. Bug: b/309480316 Bug: b/302196568 Change-Id: I0952fe78c2bfd59446391c553745b2b5cb152a9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5066801 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Chris Forbes <chrisforbes@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov 333e3a9c 2023-11-28T12:12:44 Re-add VUID-vkDestroySemaphore-semaphore-01137 temporarily To unbreak ANGLE-> Chromium swangle.. https://crrev.com/c/5066784 Bug: angleproject:7729 Change-Id: Ic7aaa10540cb9c6581872c9709b2d329eae4b8f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5067854 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 233b6675 2023-11-28T12:48:17 Roll vulkan-deps from e892a337898c to 47125179fa7d (24 revisions) VVL renamed VUID-vkDestroySemaphore-semaphore-01137 -> VUID-vkDestroySemaphore-semaphore-05149 https://chromium.googlesource.com/vulkan-deps.git/+log/e892a337898c..47125179fa7d Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/153064f2c7..b820431a2c * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/42299f92ef..50e90dd74e * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/2a238ed24d..7d2a618bf9 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/7d92fe7b68..9d27c893cd * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/0e7cf57a29..b00cb455c4 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/9ef6c05af3..98d168c168 * vulkan-utility-libraries: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries.git/+log/228f7487dd..1fb77ad1d4 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/4d7cdcc223..e00625d685 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,romanl@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:7729 Tbr: romanl@google.com Change-Id: I8268b3532b78aa4362e632ae68f335b6808966e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5066853 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Chia-I Wu 170ba8c9 2023-11-16T19:45:35 Vulkan: Workaround depth bias constant factor on RADV Both ANV and RADV need the same workaround. Improve IsRADV to support Venus-over-RADV. Also "git cl format" to make presubmit happy. Bug: b/308835020 Test: dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units Change-Id: Ibbad4d09f12df419e38aff1365d37d55ca326532 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5040097 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Chia-I Wu <olv@google.com>
Shahbaz Youssefi cea3775c 2023-11-02T15:41:06 Vulkan: Suppress VU Undefined-Value-ShaderOutputNotConsumed Bug: angleproject:8401 Change-Id: I3b561ec98090cf1c0050f113db96ea0c6c79d785 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5002728 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Charlie Lao 12cc04d0 2023-11-07T10:26:18 Vulkan: Workaround camera AHB's layerCount being random value We are seeing AHB used by google's camera app has random value in the layerCount. In my reproduced case, it is 0, which translates to layerCount in the VkImage. Sometimes I am also seeing a huge number in the layerCount as well. This causes problem in ARM driver that end up with assertion and other problems that end up with crash later. We need to root cause the underlying bug which is tracked by b/239181279. But before we have an actual fix in AHB creation code, this CL forces com.google.android.GoogleCamera AHB's layerCount to be 1 as a temporary app specific bug workaround so that we can move forward to get camera app up running with ANGLE. Bug: b/309480316 Bug: b/239181279 Change-Id: I219f6f89863a2cb8dee6c5efb0812389272373ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5010082 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov 0584ffd8 2023-11-06T16:34:13 Unsuppress VUID-VkGraphicsPipelineCreateInfo-pStages-00739 Possibly was due to a VVL bug https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/6717 Bug: b/303219657 Change-Id: Ic9a6e7b45fb42572af04f94382906cd6f0f512df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008042 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi e7ce481f 2023-11-01T22:44:22 Consolidate parallel compilation in front-end This cleans up the multiple compilation task implementations in the backends and consolidates them in the front-end. The front-end is then able to do the compilation in an unlocked tail call instead if desired (in a future change). This change is in preparation for having the program link tasks directly wait on the shader compilation tasks. As a result, the "shader resolve" should not be needed to access the shader compilation results; it should be enough to wait for the compilation job. This change therefore moves post-processing of results to the compilation job itself as they did not need to actually be done after compilation is done (merely after translation is done). As a side effect, shader substition and other debug features should now work for the GL backend as they are now done before back-end compilation. Bug: angleproject:8297 Change-Id: Ib9274b1149fadca7545956a864d6635b6cba5c3a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994655 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 146a01ea 2023-11-03T15:49:30 Vulkan: Do not pad pipelineCacheData with zeroes Instead of padding, reduce buffer size to the one returned from `pipelineCacheData`. Padding `pipelineCacheData` with zeroes in cases when `vkGetPipelineCacheData()` returns less data then requested, may invalidate the entire buffer. Next time padded buffer is used in `vkCreatePipelineCache()` call, it may be rejected as invalid. I have checked the above by deliberately increasing `pipelineCacheSize` by 42 before `vkGetPipelineCacheData()`. After zeroing these 42 bytes, I passed padded buffer to the `vkCreatePipelineCache()`. Result was successful, however resulting cache size was always 52 bytes instead of the expected `pipelineCacheSize`. Bug: angleproject:2516 Change-Id: Ia1668ca96fc54e9b818ba0c8441e27c9dc2aedc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5002451 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Igor Nazarov 0a8a7c2b 2023-11-02T13:52:03 Vulkan: Remove rx::WaitableCompressEvent class The `WaitableCompressEvent` class is a left over from the old code and currently serves no purpose. Change that made class obsolete: Vulkan: Sync pipeline cache only when truly changed https://chromium-review.googlesource.com/c/angle/angle/+/3668835 Removal of `WaitableCompressEventImpl` fixes problem, that `CompressAndStorePipelineCacheTask::mCacheData` was not destroyed until next time we assign the `mCompressEvent`. So basically, most of the time we had `mCacheData` allocation wasting memory. After this change, `mCacheData` will be deallocated as soon as the task finishes. Deallocation will happen in the async thread, saving some CPU cycles on the main thread. Bug: angleproject:4722 Change-Id: I9e8826e10535d7f6d844a0043704bd35838a0e02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5001430 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Mike Schuchardt 221117ab 2023-11-02T08:48:51 Tests: Add The Sims Mobile trace Test: angle_trace_tests --gtest_filter=TraceTest.the_sims_mobile Bug: b/308927628 Change-Id: I5de44b7eedb904c318168fbc7e308af218dc5ab1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5002145 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 053aa915 2023-11-01T12:01:27 Vulkan: Disable VK_EXT_graphics_pipeline_library on RADV Causes crashes in the driver. Bug: chromium:1494778 Bug: chromium:1497512 Change-Id: I0a9a74d8d77c48744ce9a62d27f48120209d1476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995274 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi c6dc00d2 2023-10-31T11:50:40 Manual roll vulkan-deps from 69081d0e32f7 to e55b4f78bcf3 (110 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/69081d0e32f7..e55b4f78bcf3 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/7fa0731a80..f8dd5adde4 * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/2de1265fca..637cff3d05 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/73876defc8..4f014aff9c * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/f4bfcd8852..aff5071d4e * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/131a081e08..1ddcde3c55 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/f7017f2333..116b6b1513 * vulkan-utility-libraries: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries.git/+log/dcfce25b43..5b3147a535 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/cc1e12c6fc..c27900222c If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Change-Id: I0c94d5f8e6d5b4c42186c063052f824c5cb5a3df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995264 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang eca38a10 2023-10-26T11:02:38 Vulkan: Supress new DrawNone VVL errors Errors: VUID-vkCmdDraw-None-09000 VUID-vkCmdDrawIndexed-None-09002 Bug: angleproject:8394 Change-Id: If43390e837df088ba7a6d0c7eb5947927ad186d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4979786 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 6188c0a6 2023-10-23T16:47:10 Unsuppress VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912 VUID removed in http://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/5941 Bug: chromium:1420265 Change-Id: I8e3b9462df5e250c97c6bff02635cd28fec2a4e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4967241 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Charlie Lao d2de7451 2023-10-19T14:10:44 Vulkan: Fix VK_android_external_format_resolve VVL error part 5 Fix assertion in RendererVk::getFormatFeatureBits(). When formatID is external format, we can not use vkGetPhysicalDeviceFormatProperties to get the formatFeature (since VkFormat is undefined). To fix this, we keep the formatFetaure that returned from AHB in the ExternalYuvFormatInfo and use that in getFormatFeatureBits() if it is external format. This also fixes the VVL error VUID-VkImageCreateInfo-pNext-02396: The Vulkan spec states: If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT Bug: b/223456677 Change-Id: I625c2bf4fe534fa206918b16772ac3ac7c6fa79a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4956117 Reviewed-by: Chris Forbes <chrisforbes@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao fce367c9 2023-10-18T11:36:59 Vulkan: Fix VK_android_external_format_resolve VVL error part 2 VUID-VkFramebufferCreateInfo-flags-03201 The Vulkan spec states: If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a color attachment or resolve attachment by renderPass must include VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT. The bug here is that when we create VkImage for AHB for rendering, we specify mUsage as Sample. This CL adds COLOR_ATTACHMENT if it supports resolve. This CL also adds VkAndroidHardwareBufferFormatProperties2ANDROID format query for debug logging. VUID-VkImageViewCreateInfo-usage-08931 is temporary added to skip list due to ARM driver bug. The bufferFormatProperties returned does include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT. Will remove once driver is fixed. Bug: b/223456677 Change-Id: Ibccf5f19975654fd94b00ae10e15ac986f7866dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4952962 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Chris Forbes <chrisforbes@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Solti 05c5cef0 2023-10-17T21:16:52 Manual roll vulkan-deps from 68a0a794aa0a to 92b29883afea (1 revision) Manual roll requested by solti@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/68a0a794aa0a..92b29883afea Changed dependencies: * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/7ef2b9a6bb..deb215c083 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,solti@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: b/306178740 Tbr: solti@google.com Change-Id: I1060b8e021e28e70ca11305dc60a8fa8462e1eff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4950550 Commit-Queue: Solti Ho <solti@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu cfc40d2b 2023-07-19T17:47:13 Vulkan: Adjust clear color precision for GL_RGB5_A1 FBO When clear color has more precision than the framebuffer format can hold, dithering is automatically applied on some hardware. This issue causes below dEQP tests to fail when the FBO color attachment format is RGB5_A1: KHR-GLES31.core.draw_buffers_indexed.color_masks KHR-GLES32.core.draw_buffers_indexed.color_masks Adjust the clear color precision for RGB5_A1 format to workaround the issue. We can remove this workaround once the vulkan driver fixes the auto-dithering problem. Bug: b/292282210 Change-Id: Ic3ffebd2d20c8782612619a60d1ec2cc6d613c22 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4937472 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi cc61dded 2023-10-17T13:21:14 Vulkan: Remove fixed VU suppressions Bug: angleproject:2866 Bug: angleproject:4928 Bug: angleproject:5027 Bug: angleproject:7843 Bug: angleproject:8076 Bug: b/175584609 Change-Id: I1a3ccdc92be73874e7599961bae2a0e8c7497b1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4947653 Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Yiwei Zhang 0be59b3d 2023-10-17T17:31:05 Vulkan: disable warmUpPipelineCacheAtLink for Venus The same cache miss is seen on MESA ANV and MESA RADV drivers. Together with already disabled ARM drivers, we'd disable for Venus as a whole for monolithic pipelines. This won't affect later Venus GPL enablement on supported host drivers like ANV and RADV. Bug: b/299532942 Test: affected title is semi-playable Change-Id: Iaec0d43b15b64b6b74dfa68021f8a5f2fe6cca8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4948694 Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Charlie Lao 58ffa778 2023-10-11T09:41:23 Vulkan: Implement YUV_TARGET use VK_ANDROID_external_format_resolve This implements EXT_YUV_TARGET using VK_ANDROID_external_format_resolve extension. This CL is based on Chris Forbes's CL on android gerrit. Bug: b/223456677 Change-Id: Ieb6970a0787b0c2a72a76b208695a678d2c79e80 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4857459 Reviewed-by: Chris Forbes <chrisforbes@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 57fcee54 2023-10-11T14:48:53 Vulkan: Add feature flag for externalFormatResolve This CL adds supportsExternalFormatResolve feature flag and enable the vulkan extension if existed. This CL is split from Chris Forbes's CL on android gerrit. Bug: b/223456677 Change-Id: I731f35dc629c12c7290c6ed24ff54967e2e4eab7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4932592 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Chris Forbes <chrisforbes@google.com>
Charlie Lao 90dd58a2 2023-10-04T11:54:22 Vulkan: Reduce mGarbageMutex lock contention Right now mGarbageMutex is used to control access to mSharedGarbage, mPendingSubmissionGarbage, mSuballocationGarbage, mPendingSubmissionSuballocationGarbage and mOrphanedBufferBlocks. Some times garbage clean up does take a bit longer time, especially on some VM platforms. This some times causes lock contention between main render thread and background garbage clean up thread, which defeats the benefit of having garbage clean up in the background thread. This CL utilizes angle::FixedQueue for garbage list so that enqueue and dequeue can be concurrent, which avoids this lock contention. Bug: b/302739073 Change-Id: I44b2b0e7f9f5ef438266fa277b24a2cb1606e689 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4899299 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Hailin Zhang <hailinzhang@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 2608c622 2023-10-06T13:32:49 Vulkan: Refactor SharedGarbageList into templated class This CL mostly involves non-functional changes to prepare for next CL. No behavior change is expected. This CL wraps the garbage list into its own templated class which maintains std::queue and tracks number bytes in the queue etc. This CL also renames SharedBufferSuballocationGarbageList to BufferSuballocationGarbageList to reduce verbosity a bit. This CL deleted GarbageAndQueueSerial and GarbageQueue since they are no longer being used. This renames vk::GarbageList to vk::GarbageObjects to reduce name confusion with SharedGarbageList. Bug: b/302739073 Change-Id: I7370c147847ffe69ad8aa3b48251d8b5762f97f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4919816 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Hailin Zhang <hailinzhang@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi adb17c80 2023-10-06T10:39:17 Vulkan: Copy 3D<->2DArray images with vkCmdBlitImage anyway Despite the validation error, do the copy with vkCmdBlitImage anyway. Drivers seem to work correctly, and the validation restrictions seem unintentional. Bug: angleproject:7291 Change-Id: Ie7a0ecfe559be44738da3eada281ea97424b38ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4916359 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yiwei Zhang 3d75b794 2023-10-04T11:10:34 Vulkan: enable preferSubmitAtFBOBoundary for Virtio-GPU Venus Now we see perf gain for the concerning title Asphalt 9 with ANGLE-on-Venus even for low end devices. So enable this by default for Venus since it mitigates 3DMark Sling Shot Physics score regression. Bug: b/302230555 Test: top app affected by the feature and 3DMark Change-Id: I2e115e022eb085a3dc693378fe2f0a960890b7d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4911958 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov f8f98477 2023-10-04T12:54:06 Suppress VUID-VkRenderPassBeginInfo-renderPass-00904 Getting a lot of these, for example: dEQP-GLES31.functional.blend_equation_advanced.basic.multiply Bug: b/303441816 Change-Id: I78bf5c0e34bb65f349c71f324ea1c71ae8b416e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4911799 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
Roman Lavrov 276e0c78 2023-10-04T12:42:23 Also suppress VUID-VkGraphicsPipelineCreateInfo-pStages-00739 dEQP-GLES31.functional.primitive_bounding_box.points.* are hitting this one Bug: b/303219657 Change-Id: I26ae20ce6feeb84019488689667fa66fb7ca2925 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4911798 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Roman Lavrov 43abae13 2023-10-04T10:49:44 Suppress VUID-VkGraphicsPipelineCreateInfo-pStages-00738 Bug: b/303219657 Change-Id: Ibc23ccc700b15c351b2d7ab644bd8fc28bc07dcf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4911795 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi ffb32380 2023-10-02T16:01:37 Vulkan: Fix device creation on multi-queue devices When multiple eligible queue families are exposed by the device, ANGLE defers devices creation until a surface is made current, at which point it selects a queue family that supports presentation to that surface. This path was largely untested and was broken: - Some post-device-creation initialization was not deferred until the device was actually created - Some cap calculation depended on the chosen queue family index - Query of device capabilities was done too late, such that ANGLE could not correctly determine the level of support for ES versions. Bug: angleproject:8300 Change-Id: I2a35396d1fd08ed26d217dff07d10e9a9c1ac55f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4907895 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Amirali Abdolrashidi 75409184 2023-10-03T18:57:42 Revert "Add VMA version to logcat" This reverts commit 92218933df79a4427b9bd29d0b7af892108e410e. Reason for revert: VMA 3.0 usage is confirmed. Log can be removed. Original change's description: > Add VMA version to logcat > > This is a temporary CL. It will be used to confirm that Android > uses VMA 3.0 with ANGLE as the default driver. > > * Added the VMA version log when the renderer is being initialized. > > Bug: b/295208838 > Change-Id: I054a4e0e080aa5d06533bd7785eea608e14bba39 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4868086 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> > Reviewed-by: Charlie Lao <cclao@google.com> Bug: b/295208838 Change-Id: If1b9883c02c78121ff72601b650ac04aef685527 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4909899 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 5ab344be 2023-09-28T17:26:29 Remove old VUIDs after renaming Some of the VUIDs were renamed in a recent VVL roll. The new VUIDs for those that were skipped were also added to the list in a prior fix CL. After the related VVL change and the fix also rolled into Chromium, the old VUIDs can be safely removed from the skip list. * Removed the following VUIDs from the skip list * VUID-VkBufferViewCreateInfo-buffer-00934 * VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00428 Bug: angleproject:8358 Change-Id: I63474cb36408637be8a60def9add1f77c48e9c93 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4903984 Reviewed-by: Roman Lavrov <romanl@google.com> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
angle-autoroll 621bee25 2023-09-27T22:07:24 Manual roll vulkan-deps from b8fa58ef74a9 to 89aea904c65f (61 revisions) Manual roll requested by abdolrashidi@google.com * Updated the skipped VVL messages in accordance with the following vulkan-deps roll: Vulkan-ValidationLayers to 9fe2f727 https://chromium.googlesource.com/vulkan-deps.git/+log/b8fa58ef74a9..89aea904c65f Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/4c57db1595..2bfacdac91 * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/5e963d62fa..6e1fb9b09e * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/fc7d246276..79743b899f * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/a40483d313..48c97c1311 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/4f51aac14f..df60f03168 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/9dc0e31574..f352069ad3 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/1ecbed6db3..576f3286e1 * vulkan-utility-libraries: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries.git/+log/6774c9b24b..8486ee700e * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/c26ff51102..1b8b09b3ab If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC abdolrashidi@google.com,angle-team@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:8358 Tbr: abdolrashidi@google.com Change-Id: I7927abe872fbb1d25523b06cc205b13ef2a887f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4898000 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang 7cacb537 2023-09-26T11:27:49 Limit the uncompressed data size when decompressing blobs. If the data in the blob cache is invalid for any reason, ANGLE will take the last 32 bits of it an interpret it as a size for decompressing the blob. Add some reasonal upper bounds on the decompressed data size so that if the data is invalid it will simply fail decompression instead of allocating giant buffers. Bug: chromium:1485277 Change-Id: Ifb807f5ea836b692f37734b20789f5daefcca5c9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4887599 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 97a48912 2023-09-26T10:31:58 Turn is-link-thread-safe feature into a positive condition Chrome's --disable-gpu-driver-bug-workarounds currently sets every feature to false, which breaks the GL backend. Bug: angleproject:8297 Change-Id: I284d0699e356d7c1a362eb992cdc0d052f9ea7c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4887598 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 9fc3baf5 2023-07-26T10:29:13 Add the missing GraphicsPipelineDesc legacy dither bit update When the app calls glEnable(GL_DITHER) or glDisable(GL_DITHER), we need to update the legacy dither bit of the renderpass that belongs to ContextVk::mGraphicsPipelineDesc. If not, there is a change that the graphics pipeline will be created with a renderpass that has outdated legacy dither bit. This results the dither being applied to the render results incorrectly: e.g. the app calls glDisable(GL_DITHER), but the render results have dithering applied. Bug: b/286921997 Bug: b/292282210 Bug: b/293349058 Bug: b/284462263 Change-Id: Ie24b95898526c9021be6e3cb7620e4050f9faaaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4722446 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Cody Northrop c8e16b07 2023-09-18T12:00:57 Vulkan: Ignore VVL errors from GOOGLE extension We're seeing VUID-VkSamplerCreateInfo-pNext-pNext fire when rolling vulkan-deps. It is complaining about an unknown VkStructureType (1000264000) The type is implemented by VK_GOOGLE_sampler_filtering_precision, which is a private extension. We can ignore this VVL error. Bug: angleproject:8349 Change-Id: Ie424458873192b668371d8215dadf9788479f8dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4874597 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi a1f52f1b 2023-09-07T14:44:24 Vulkan: Flush pending image garbage more often * Added a counter to the context object to keep track of the size of the pending image garbage: mEstimatedPendingImageGarbageSize. * Modified hasExcessPendingGarbage() to use the sum of the size of the image and and suballocation garbage. * RendererVk::calculatePendingGarbageSizeLimit() provides the limit. * Currently the limit is based on the available heap sizes. It will use a fraction of the largest memory heap size. * The portion is currently kGarbageSizeLimitCoefficient = 0.2f. * Unskipped the test "TextureDataInLoopManyTimes", which was failing on Android devices. Bug: b/280304441 Change-Id: Ibcced1d118ea8a1f347028b62d29cfbd9e38e8c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4851252 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 27896999 2023-08-16T16:44:22 Vulkan: Flush pending suballoc garbage more often * Added a counter to the renderer object to keep track of the pending suballocation garbage. * mPendingSuballocationGarbageSizeInBytes * Once it surpasses a limit (mPendingSuballocationGarbageSizeLimit), it will flush the context so the pending garbages can be freed. * Currently the limit is based on the available heap sizes. It will use a fraction of the largest memory heap size. * The portion is currently kGarbageSizeLimitCoefficient = 0.2f. * At the end of the render pass, it is checked if the limit has been reached. If so, context flush will occur. Bug: b/280304441 Change-Id: I08e6028cfe20059ece2b2e4e971ece897544cd6d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4787950 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi d62db89e 2023-09-18T13:30:54 Vulkan: Disable VK_EXT_host_image_copy on Fuchsia An old version of VVL is used, causing incorrect failures. Bug: angleproject:8341 Change-Id: I0fc605616671343a49fed6ff02ecd67eea672dca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4873440 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi b2e6a196 2023-09-11T15:27:20 Vulkan: Use VK_EXT_host_image_copy for texture uploads Of all the scenarios where host image copy may be useful, this is likely the most common case. There are numerous conditions for when the copy may be done on the host: - The image format must support it, - It must be unused by the GPU, - It must not have any pending updates (this can potentially be mitigated if needed), and - It must be in a host-copyable layout. However, many texture uploads are done: - To compressed formats, where support is highly likely, - On init, where: - the image is never previously used, - the image has no previous uploads - the image is in the UNDEFINED layout which satisfies the conditions above. As a result of this change, when the upload is done on the host, creation of a temp buffer is avoided which greatly reduces memory pressure (specially during app loading which is when most texture data is uploaded) and may even improve performance (due to avoiding a double copy). Testing the first 3 frames of the following traces with a SwiftShader implementation shows the amount of buffer allocated for staged uploads changed as such: - Black Desert: 185MB -> 65MB - Genshin Impact: 125MB -> 12MB - Asphalt 9: 138MB -> 0MB Bug: angleproject:8341 Change-Id: Id71dcc4a7a0f8b67960d2d283fe9d19ce7429a03 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4856676 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 92218933 2023-09-15T10:33:49 Add VMA version to logcat This is a temporary CL. It will be used to confirm that Android uses VMA 3.0 with ANGLE as the default driver. * Added the VMA version log when the renderer is being initialized. Bug: b/295208838 Change-Id: I054a4e0e080aa5d06533bd7785eea608e14bba39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4868086 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Yuxin Hu ffd6ec26 2023-09-07T15:39:19 Reland "Make egl surface uncurrent when being destroyed" This relands commit 497440cdcb7d2ee59bca612dd07fc13cf09a6a57. This is to workaround errors when app does below behaviors: 1) while there is a context still bound to the current rendering thread and the surface, call eglDestroySurface() 2) create a new surface eglCreateWindowSurface() 3) call eglMakeCurrent() with the surface created in step 2) 4) does work on the new surface The old surface won't be destroyed in step 1) because it was still bound by the context of the current rendering thread. When creating new surface on step 2), some hardware will return error code EGL_BAD_ALLOC, because the old egl surface is still associated with the native window. To workaround, when destroying surface, if the surface is still bound by the context of the current rendering thread, release the context and surface by passing EGL_NO_CONTEXT and EGL_NO_SURFACE to eglMakeCurrent(). The workaround is controlled by a frontend feature uncurrentEglSurfaceUponSurfaceDestroy. This feature is only enabled on vulkan backends. Bug: b/292285899 Change-Id: Id4c47f1b20e0f90d1013a68893fd70e917c030e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4867066 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi b4852ef9 2023-02-08T14:18:06 Vulkan: Drop support for Vulkan 1.0 Bug: angleproject:7959 Change-Id: Ib673679ea1a503af22b37092dbff1ee1fd34fba6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4233092 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Yuxin Hu 8a7ad933 2023-09-13T15:11:46 Revert "Make egl surface uncurrent when being destroyed" This reverts commit 497440cdcb7d2ee59bca612dd07fc13cf09a6a57. Reason for revert: this caused chromium webview tests failures: https://chromium-review.googlesource.com/c/chromium/src/+/4860891. Original change's description: > Make egl surface uncurrent when being destroyed > > This is to workaround errors when app does below behaviors: > > 1) while there is a context still bound to the current > rendering thread and the surface, call eglDestroySurface() > 2) create a new surface eglCreateWindowSurface() > 3) call eglMakeCurrent() with the surface created in step 2) > 4) does work on the new surface > > The old surface won't be destroyed in step 1) because > it was still bound by the context of the current rendering > thread. When creating new surface on step 2), some hardware > will return error code EGL_BAD_ALLOC, because the old egl > surface is still associated with the native window. > > To workaround, when destroying surface, if the surface > is still bound by the context of the current rendering > thread, release the context and surface by passing > EGL_NO_CONTEXT and EGL_NO_SURFACE to eglMakeCurrent(). > > The workaround is controlled by a frontend feature > uncurrentEglSurfaceUponSurfaceDestroy. This feature > is only enabled on vulkan and gl backends. > > Bug: b/292285899 > Change-Id: I872d2e116ba6860f58d1176f011a5ef7c5a5af4e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4851255 > Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Yuxin Hu <yuxinhu@google.com> Bug: b/292285899 Change-Id: I760054d856294e6691e79e165fd73ce9e560621f No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4862958 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuxin Hu 497440cd 2023-09-07T15:39:19 Make egl surface uncurrent when being destroyed This is to workaround errors when app does below behaviors: 1) while there is a context still bound to the current rendering thread and the surface, call eglDestroySurface() 2) create a new surface eglCreateWindowSurface() 3) call eglMakeCurrent() with the surface created in step 2) 4) does work on the new surface The old surface won't be destroyed in step 1) because it was still bound by the context of the current rendering thread. When creating new surface on step 2), some hardware will return error code EGL_BAD_ALLOC, because the old egl surface is still associated with the native window. To workaround, when destroying surface, if the surface is still bound by the context of the current rendering thread, release the context and surface by passing EGL_NO_CONTEXT and EGL_NO_SURFACE to eglMakeCurrent(). The workaround is controlled by a frontend feature uncurrentEglSurfaceUponSurfaceDestroy. This feature is only enabled on vulkan and gl backends. Bug: b/292285899 Change-Id: I872d2e116ba6860f58d1176f011a5ef7c5a5af4e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4851255 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Amirali Abdolrashidi e7418836 2023-08-16T14:25:52 Vulkan: Add context flushing as OOM fallback * As a new fallback for out-of-memory errors, if an allocation results in device OOM, the context is flushed and the allocation is retried. * Functions related to buffer/image allocations now return a VkResult value instead of angle::Result, which will be bubbled up to a higher level for safer handling. * The OOM is no longer handled at the level where the allocation happens, but is moved up to the context. * Added two functions to ContextVk for allocating memory for images and buffer suballocations, which also include the fallback options. * initBufferAllocation(): Uses BufferHelper::initSuballocation() * initImageAllocation(): Uses ImageHelper::initMemory() * Moved initNonZeroMemory() out of the following functions: * BufferHelper::initSuballocation() * Moved to ContextVk::initBufferAllocation(). * ImageHelper::initMemory() * Moved to ContextVk::initImageAllocation(). * Also moved to new function: ImageHelper::initMemoryAndNonZeroFillIfNeeded(). This function replaced the rest of initMemory() usages outside initImageAllocation(). * New macros for memory allocation * VK_RESULT_TRY() * If the output of the command inside it is not VK_SUCCESS, it will return with the error result from the command. * VK_RESULT_CHECK() * If the output of the command inside it is not VK_SUCCESS, it will return with the input error. * Added a test in which allocation would fail due to too much pending garbage without the fix on some platforms. The test ends once there has been a submission. * New suite: UniformBufferMemoryTest * Added a similar test for flushing texture-related pending garbage. * New suite: Texture2DMemoryTestES3 Bug: b/280304441 Change-Id: I60248ce39eae80b5a8ffe4723d8a1c5641087f23 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4787949 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi b185c3ea 2023-09-11T12:28:43 Vulkan: Add host-image-copy usage to images when optimal The change currently doesn't actually copy on host, but prepares the image for it. Bug: angleproject:8341 Change-Id: I4458712dca46ef9872020e158a3f902e94f5eb93 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4856146 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi e234c182 2023-09-08T16:19:29 Add features for VK_EXT_host_image_copy Bug: angleproject:8341 Change-Id: Id076e6c9e040f3c19a1eb221f6099ac11d4d091a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4852280 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov e691a4ed 2023-09-04T15:35:39 Delete obsolete VUID VUID-VkGraphicsPipelineCreateInfo-topology-08890 was renamed to VUID-VkGraphicsPipelineCreateInfo-topology-08773 Bug: angleproject:8237 Change-Id: Icb3f3f28664d0beac31f2541d90d5dbbada9a3b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4840195 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 1192e5e8 2023-08-31T15:03:53 Manual roll vulkan-deps from a446c6320b6b to 988fe1c529b0 (28 revisions) Suppress new VUIDs: VUID-VkGraphicsPipelineCreateInfo-topology-08773 VUID-VkDescriptorImageInfo-imageView-07796 Manual roll requested by ynovikov@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/a446c6320b6b..988fe1c529b0 Changed dependencies: * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/b6893ccdfb..9b923f7cc3 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/6087a58444..389110e460 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/b2f5094203..70be16c58d If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:8318, angleproject:8237, angleproject:8334 Change-Id: I4b868b67b0c8158179fee61018933104c4ed55d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4832731 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 571b4cdb 2023-08-14T16:55:28 Vulkan: Move pipeline/desc-set layout creation to link job The pipeline and desc-set layout caches are consequently made thread-safe. The reference counter on the layouts are also made atomic. With this change, practically all of the link in the Vulkan backend is moved to the link job. Bug: angleproject:8297 Change-Id: Iba694ece5fc5510d34cce2c34441ae08ca5bb646 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4774787 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi cb1c5ca4 2023-08-22T10:13:17 Manual roll vulkan-deps from aa121378c102 to 2cb515574109 (9 revisions) Includes an adjustment to syncval message format. https://chromium.googlesource.com/vulkan-deps.git/+log/aa121378c102..2cb515574109 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/c5117b328a..db8719ae07 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/bfc94f63a7..714966003d * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/300d9bf6b3..b441f434a0 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/d1ff40512a..ebab3bc86c If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Change-Id: I94f05554452f1c8b97a1426fb4b61ac1a1fa4b1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4802525 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Amirali Abdolrashidi f11c972b 2023-08-04T15:06:39 Update requiredFlags use for VMA image allocations For the OOM fallbacks, we currently remove bits from the required bits when device memory allocation is no longer possible. In doing so, allocating on the device has become a strong preference rather than a requirement. Therefore, we change this method a bit in this CL. * Removed the device-local bit from the required flags when calling allocateAndBindMemory(). * preferredFlags is now used in lieu of requiredFlags initially within allocateAndBindMemory() to signal to the VMA to prioritize allocating on the device. If it fails, we use requiredFlags for the fallback. Bug: b/280304441 Change-Id: Id47a224cd74dacd3fb12d4fbfd815d8cefc016c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4753758 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Steven Noonan ffe81dd3 2023-08-03T14:53:32 Vulkan: allow opt-in to MSRTT emulation via overrides The existing enableMultisampledRenderToTexture feature combines conditions for device feature support and the policy decision of whether to allow MSRTT emulation. This change splits it into two features, allowing application developers to control the policy condition for the emulation path without impacting the device capability checks. Bug: angleproject:8291 Change-Id: Ic1525c878906b10df777c582e44b931028aae928 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4749525 Auto-Submit: Steven Noonan <steven@uplinklabs.net> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Steven Noonan 833f7f69 2023-08-09T10:49:51 Vulkan: improve XFB feature dependency checks Some features need to account for the possible override of supportsTransformFeedbackExtension == false. Since we now frontload the overrides, we also can remove the explicit overrides for the dependent features in TransformFeedbackTest. Bug: angleproject:8291 Change-Id: I0ec54dc0fce440ef3e7bfe9987d0ea19fb9dafaa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4763096 Auto-Submit: Steven Noonan <steven@uplinklabs.net> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Steven Noonan f395f34b 2023-08-03T13:58:43 features: frontload feature overrides This allows us to have features that depend on the state of other features more reliably. For example, let's say you have two features: ANGLE_FEATURE_CONDITION(&mFeatures, allowX, (benefitsFromX || isSpecificHardware) && !isBadHardware); ANGLE_FEATURE_CONDITION(&mFeatures, supportsX, hardware.featureXSupported && mFeatures.allowX.enabled); Before this change, if you overrode allowX, the override would be applied too late for the supportsX test. This also helps with disabling dependent features via overrides. For example, if you disable "supportsRenderpass2", it will also disable features depending on it, such as "supportsDepthStencilResolve" and "supportsFragmentShadingRate". By frontloading the feature overrides, we can have cross-dependencies between "feature supported on this platform" and "allow this feature by policy". Bug: angleproject:8291 Change-Id: Id6da2c89428fa896d677fe8d5a41369277a21b31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4749524 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Steven Noonan <steven@uplinklabs.net> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Steven Noonan fa3ecccb 2023-08-09T10:48:36 Vulkan: make fragment shading rate depend on renderpass2 The extension depends on renderpass2 and will raise a VVL failure if it's not available and enabled. Note that this doesn't yet work as intended if you only override supportsRenderpass2=false. A subsequent commit will fix this. Bug: angleproject:8291 Change-Id: I6843b342909fb9000ebdcea80e006670c865f858 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4763095 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Steven Noonan <steven@uplinklabs.net> Commit-Queue: Steven Noonan <steven@uplinklabs.net> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 4963febf 2023-08-02T16:52:52 Vulkan: Remove type indices with host-visible bit Currently, the memory type index for VMA image allocations are selected and returned by the API. However, it could potentially choose a type index with more flags than required or preferred, and ignore the index with exactly the flags we want. For example, it could pick a type index with the host-visible property flag, even if is unnecessary and a type index with a device-local flag would suffice. Using memoryTypeBits during the allocation allows us to filter the unwanted type indices out and use the other indices initially. * Added a new function to RendererVk.cpp to try to remove the memory type indices with the host-visible bit for VMA image allocations if they should be device-local. * GetMemoryTypeBitsExcludingHostVisible() * It also removes the indices with the protected bit if it is not required. * If the allocation is unsuccessful, the fallback resets the field for memoryTypeBits, allowing all available type indices to be used for the allocation. * Added memory type index to the pending allocation log during OOM. Bug: b/294085818 Change-Id: Icc1b218df075170a6baa7ec57c837ed59cd4fa96 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4743604 Reviewed-by: Kaiyi Li <kaiyili@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 0abd6f54 2023-07-27T10:48:38 Vulkan: Enable dynamic state on working Android drivers Fixes are flowing out in different channels and versions, so add a bit of Pixel specific logic. Test: angle_trace_tests, deqp Bug: b/287318431, b/285196249, b/286224923, b/285124778 Change-Id: Ifc73e2a42d1d060a83a2fb83bcf8bb999f0990b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4726502 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>