src


Log

Author Commit Date CI Message
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>
Geoff Lang 6d4706bf 2024-02-15T14:03:45 WGPU: Add a angle_dawn_dir build override. This will allow Chromium to point out the dawn directory to ANGLE and disable the WebGPU backend if dawn does not exist. Bug: angleproject:8477 Change-Id: I5191b33dcf64ec1694f7be4ccc855b27d6fd0f76 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5301615 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi aa244358 2024-02-06T14:44:39 Reland "Vulkan: Get rid of X11 include in DisplayVkXcb.cpp" This is a reland of commit 8abbe2836bb49faba8a97e2df59058290e1c385a In the reland, the xcb-util dependency is removed. Original change's description: > Vulkan: Get rid of X11 include in DisplayVkXcb.cpp > > Bug: angleproject:8520 > Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: angleproject:8520 Change-Id: I238e0a6c3b94398c10fa1bc39c5a0b4261797311 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5292774 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 6d589ff6 2024-02-12T15:26:54 Trace perf: support custom thermal throttling for tests Vendor throttling kicks in rather quickly and starts affecting e.g. cpu/gpu freqs, which can be hard to predict and increases variance in our tests. This change implements support for disabling vendor throttling (re-enabled at the end, including ctrl-C) and using a custom temperature threshold for VIRTUAL-SKIN sensors, which are checked after each test runs. This allows to set the threshold to higher values and run the device hotter without touching cpu/gpu freqs while running tests, and then dissipate heat (if necessary) by sleeps between tests. This also allows to reduce fixed-time sleeps between tests as we're monitoring the temperatures. Only some of our trace tests heat up the device sufficiently to actually require throttling, and with active cooling I was able to avoid sleeps almost through the entire run. However, sleeps might also be needed to prevent battery from discharging, so also add a flag to sleep until a given battery level is reached after each test. Example usage, sleeping between tests until all sensors are below 39C but also battery level is at least 30%: --custom-throttling-temp=39 --min-battery-level=30 Bug: b/315042901 Change-Id: I7660fc36b1103e20e4cc97312d396f3667739481 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5288455 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi ec2603d6 2024-02-14T13:02:35 Fix build in absence of SSE support Bug: angleproject:8536 Change-Id: Ic74c775b9291fb6bb75adcaeeab0a5f01c2cfa3b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5296385 Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi b380ed1f 2024-02-14T09:31:26 Vulkan: Add EGL_ANGLE_global_fence_sync Chrome has an implicit assumption that due to context virtualization, signaling a fence in one context results in synchronization with _all_ contexts that have previously made submissions. This is not per EGL spec, but the functionality is easily implementable in the Vulkan backend. In the Vulkan backend, each context is given its own "timeline" of submissions (tracked by serials associated with "indices"). The required functionality is implemented through a new EGL fence sync object whose sole difference is that it synchronizes with all the existing timelines rather than the one of the current context. Bug: b/318721705 Change-Id: I6c45d065e592d0d4ed627ce9695196b1086d5021 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5297396 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 40dfb3a8 2024-02-12T00:00:00 Fix length() translation for clip/cull distance arrays * Fixed a failing assertion when the arrays are resized. * Added a compile error for length() when the arrays are unsized. Fixed: angleproject:8527 Change-Id: I6379336c546b008095f0875e5b5b4e8e0e5ba3e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5293914 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen d6ceac91 2024-02-12T20:37:58 Metal: Add support for binding slices to images Add support for binding Metal MTLTextureType2DArray texture slices to EGL images. Bug: angleproject:8531 Change-Id: I938e75c81bf36d3885f3bdcb0d1007e1f87e20c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5290374 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 195c142d 2024-02-14T15:09:54 GLSL test for side effects in prune-able loop Bug: angleproject:8532 Change-Id: Ie872e957b78454d725575b05721f9b3f213889f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5297407 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Liza Burakova e8a3493f 2024-02-14T21:51:00 Initialize DisplayWgpu This change adds basic initialize to DisplayWgpu as well as adding APIs for DisplayGLX and DisplayWgpu. These APIs are necessary to ensure DisplayWgpu doesn't pull in necessary X11 headers that break builds. Bug: angleproject:8477 Change-Id: Icc6d9e7246a741def7a0337a296f9c1f9cec1415 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5259979 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Liza Burakova <liza@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>
Kimmo Kinnunen 197beb4d 2024-02-13T15:47:32 Metal: Crash if for loop body is optimized away Loops might have their bodies optimized away. For case like `for(;;) if(false);` the constant pruning happens at parse phase. The else branch (e.e. no else branch, nullptr) would be selected as the body. Some code treated the body as optional, some code treated it as required. Define it as required, and remove all conditional code related to the loop body. Bug: angleproject:8532 Change-Id: Ic35f1bf78e63ceb2cee7b96ba99e788efc282e6f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5291554 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi dbc6bd9d 2024-02-12T14:07:49 Reland "Vulkan: Fix alignment issues with SecondaryCommandBuffer" This is a reland of commit e53270c9ca1afe393d6d7d0359e81cf6755b6ca5 Original change's description: > Vulkan: Fix alignment issues with SecondaryCommandBuffer > > This solves undefined behaviour on 64-bit systems. This inflates the > size of a few commands, but most commands either already did align to 8 > bytes or could be aligned to 8 bytes with a few tweaks. > > Bug: angleproject:7852 > Change-Id: Ie61976d5bf8df7790acd95c0e15d4c79402622a1 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5288636 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7852 Change-Id: Ie206e66fc21c5db7c9e67eb478d9cddada5db8e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5296376 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Austin Annestrand c673c837 2024-01-08T19:05:38 OpenCL/Vulkan: Initial support for platform/device Introduce OpenCL platform and device object creation for Vulkan backend in ANGLE. Bug: angleproject:8498 Change-Id: I5af9a23ed343648115bd9f0e81cd7a53080e2982 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5233365 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Kimmo Kinnunen b8e56d5d 2023-11-20T15:41:44 Fix an assert when overwriting TexImage binding Fix an assert when overwriting a image binding with multiple eglBindTexImage calls on the same texture. Bug: angleproject:8521 Change-Id: Ie7247017fd73c523b889278ec19a09ecf0683692 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5272912 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 243f8ad9 2024-02-14T11:44:58 Revert "Vulkan: Fix alignment issues with SecondaryCommandBuffer" This reverts commit e53270c9ca1afe393d6d7d0359e81cf6755b6ca5. Reason for revert: breaks x86 Android build: https://chromium-review.googlesource.com/c/chromium/src/+/5293321 https://ci.chromium.org/ui/p/chromium/builders/try/android-x86-rel/144329/overview Original change's description: > Vulkan: Fix alignment issues with SecondaryCommandBuffer > > This solves undefined behaviour on 64-bit systems. This inflates the > size of a few commands, but most commands either already did align to 8 > bytes or could be aligned to 8 bytes with a few tweaks. > > Bug: angleproject:7852 > Change-Id: Ie61976d5bf8df7790acd95c0e15d4c79402622a1 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5288636 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7852 Change-Id: Id9c7a94ccc12816bc9e8c3803bd940550d9f7953 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5295854 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi e53270c9 2024-02-12T14:07:49 Vulkan: Fix alignment issues with SecondaryCommandBuffer This solves undefined behaviour on 64-bit systems. This inflates the size of a few commands, but most commands either already did align to 8 bytes or could be aligned to 8 bytes with a few tweaks. Bug: angleproject:7852 Change-Id: Ie61976d5bf8df7790acd95c0e15d4c79402622a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5288636 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e45b2fd8 2024-02-08T12:34:06 Vulkan: Implement ANGLE_translated_shader_source Support for this extension was dropped when ANGLE generated SPIR-V directly. Generating disassembled SPIR-V is not ideal as it incurs a large binary size. The online SPIR-V tool found at https://www.khronos.org/spir/visualizer/ is capable of disassembling SPIR-V from hex values. ANGLE now implements this extension by outputting the SPIR-V in hex values and relying on this tool. Bug: angleproject:8523 Change-Id: I1a0529785147acee7b49a7a75b24f7d107ef690c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5278566 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Andrew Grieve d9665098 2024-02-12T13:53:32 Do not use hardcoded ".cr.so" extension for android component builds This will enable me to remove the extension for component builds Bug: chromium:324916799 Change-Id: I20bd8f93706d182fe6ebb3022240f81fec9de449 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5287577 Auto-Submit: Andrew Grieve <agrieve@chromium.org> Commit-Queue: Andrew Grieve <agrieve@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Kimmo Kinnunen 9d344b5c 2024-02-13T17:54:12 Uniform block reference in constuctors crash Passing uniform block instance name to a built-in constructor would cause type confusion. Block this by failing to parse. Bug: angleproject:8533 Change-Id: I5a676b41e2f3d766ece4ed472debc1c874753293 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5290897 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Alexey Knyazev cb7d3cc2 2024-02-09T00:00:00 Treat clip/cull distance built-ins as having side effects The sizes of these built-in arrays may be affected by indexing them with constant integral expressions so such operations should not be optimized out. Fixed related failures during MSL and HLSL translation. Fixed: angleproject:8525 Change-Id: I8460aa03b997ebc4142ee2d9f81eeefe13661336 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5285436 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 239e8caa 2024-02-12T11:29:20 Capture/Replay: Disallow concurrent ninja processes. To confirm whether reclient flaky failures are due to concurrency. Bug: b/323830218 Change-Id: I79ed257675624393135f9072fd207a46b4d2a30e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5285434 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Chris Forbes eaddd3ba 2024-02-09T15:39:43 Vulkan: use linear chroma filter for ycbcr by default This aligns our choice of initial chroma filter with the initial sampler state in a texture object with target GL_TEXTURE_EXTERNAL_OES. It is still possible to confuse the backend in some edge cases (which will be addressed with later patches), but at least we have the default right. Bug: b/315387961 Test: atest CtsNativeHardwareTestCases Test: atest CtsMediaDecoderTestCases Change-Id: I2430a084a95010c7c5084cd858d4255e531e6f13 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5278362 Commit-Queue: Chris Forbes <chrisforbes@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Saifuddin Hitawala 275e6f4f 2024-02-02T16:46:14 D3D: Add multiplanar support to d3d11 glTexSubImage2D Add multiplanar format support to Angle's D3D11 glTexSubImage2D. This is needed with multiplanar shared images, where we write all planes of a d3d shared image through WritePixelsYUV in raster decoder and need to do this via an intermediate texture for d3d11. This change checks for multiplanar format supported by Image11 and then goes through TextureD3D::commitRegion and performs copyTexture and then copySubResource. Added necessary test that tests for full texture copy and a subregion copy and reads back and verifies. Bug: chromium:40262482 Change-Id: I74c9978e62339375f6623f7f0a609bcb16c4b970 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5263039 Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Saifuddin Hitawala <hitawala@chromium.org>
Geoff Lang e489dac0 2024-02-02T13:52:47 Allow BGRA -> RGBA for glCopyTex[Sub]Image The opposite RGBA->BGRA was already allowed for handling platform- specific default framebuffers. This allows the copying a IOSurface- backed framebuffers to RGBA textures. Bug: chromium:1523778 Change-Id: I124a4acc8c8fcdd1d3aae861d756d17022c4b4cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5254778 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> 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>
Chris Forbes 3ad163d0 2024-02-09T12:29:40 Vulkan: Don't attach format features 2 version of AHB structure There's no need to attach both VkAndroidHardwareBufferFormatPropertiesANDROID *and* VkAndroidHardwareBufferFormatProperties2ANDROID here. We don't use anything from the `2` variant so just drop it. Bug: b/315387961 Change-Id: I23166743010550ad3f6bb0144c9665b392deac66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5275259 Commit-Queue: Chris Forbes <chrisforbes@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
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>
Roman Lavrov c603a4f1 2024-02-08T10:53:27 Don't perf warn about ETC1->ETC2 emulation as it is efficient Format is forwards compatible: https://crsrc.org/c/third_party/angle/src/libANGLE/renderer/gl/formatutilsgl.cpp;drc=21f16cb16333802dfa942d67cac59885f904301d;l=701 Added hasInefficientlyEmulatedImageFormat() helper Bug: b/302115557 Change-Id: Ibc82c27ecf4e3afbfaac52cb45bdda776c50b4b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5278562 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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>
Solti Ho f431641a 2024-02-07T17:27:51 Revert "Vulkan: Get rid of X11 include in DisplayVkXcb.cpp" This reverts commit 8abbe2836bb49faba8a97e2df59058290e1c385a. Reason for revert: https://chromium-review.googlesource.com/c/chromium/src/+/5274193 Original change's description: > Vulkan: Get rid of X11 include in DisplayVkXcb.cpp > > Bug: angleproject:8520 > Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: angleproject:8520 Change-Id: I91bdd48d8893cbe3a6eed8058c0034a4ef1aed0a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5276987 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Solti Ho <solti@google.com>
Kimmo Kinnunen ab71d751 2024-02-07T14:25:32 Fix an assert on multidim array constructors Fail early instead of asserting when trying to parse a multidimensional array constructor call with unsized argument array argument. int A[]; int B[int[][](A)]; Bug: angleproject:8519 Change-Id: Iee2c70318eebd2def57ffab8db709d1076692922 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5272434 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8abbe283 2024-02-06T14:44:39 Vulkan: Get rid of X11 include in DisplayVkXcb.cpp Bug: angleproject:8520 Change-Id: Iaa251b0ba2858873b8d22e8f9e5dae7a2567c95e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273489 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bani Singh cf77126a 2024-02-06T15:50:15 Turn off ADC explicitly Prevent ADC to be used for windows bots, use gce instead. Bug: b/323830218 Change-Id: I15e0faeb2a22b6bcb933f8cecbe986489e4f2991 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5273482 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Geoff Lang e62bd70a 2024-01-29T14:18:07 Metal: Disable Metal on older Mac models with GPU family 1. Skip the creation of the default Metal device entirely on macs that would not pass the GPU family checks. Bug: chromium:1322521 Change-Id: I7bdc3631125a0535370328b0e1bcba347cbbd5d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5245647 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Mohan Maiya d05c9a5e 2024-01-25T13:01:49 Frontend support for QCOM foveated extensions Add frontend state management to support foveated rendering extensions. Bug: angleproject:8484 Test: Texture2D*Foveation* Change-Id: I0e1be9f11b2d442207674562da760f5bfd7debc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5208091 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 11eb5eb7 2024-01-30T10:59:45 Traces: support checkout of individual traces Example .gclient to checkout a couple traces only: 'checkout_angle_restricted_trace_antutu_refinery': True, 'checkout_angle_restricted_trace_bubble_shooter': True, To be used in conjuction with gn args, e.g.: angle_restricted_traces=["antutu_refinery", "bubble_shooter"] Note: when need perfetto, we'd also need to add: 'checkout_angle_perfetto': True, because it defaults to checkout_angle_restricted_traces which is not being set to True in this case. Bug: b/322507257 Bug: b/322779830 Change-Id: I404e26919899c8874b570d6ffa80c86fabfd3348 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5249196 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 5a061558 2024-01-31T13:05:59 Vulkan: Update dynamic buffer size policy When allocating a dynamic buffer, it is checked if the new data can fit in an existing allocation. However, if the size of the new data exceeds that of the current buffer, a new one is allocated. To avoid using too much memory, if the data size is less than a threshold (a fraction of the current buffer size, a smaller size will be used for the new buffer. However, with a specific pattern for the new sizes, combined with the threshold value, there could be many allocations and deallocations, which can affect the performance. In this CL, the policy to update the dynamic buffer size is updated to avoid this issue. * Instead of using a smaller buffer when the required size is less than 1/4 of the current buffer size, it is done when the average required size is less than 1/8 of the current size. * Added a decaying average required size for the DynamicBuffer object. * mSizeInRecentHistory * For each new buffer allocation, the new required size is used with the average size to calculate the new average. * For each calculation, kDecayCoeffPercent is used as the weight for the existing average, and the rest is the new required size, plus rounding. * kDecayCoeffPercent is currently set to 20%. * sizeIgnoringHistory renamed to minRequiredBlockSize for more clarity. Bug: b/322216767 Change-Id: Idcabbbe50f656910fe2103925e4d6d8602ca3425 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5254218 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
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>
Chris Forbes f5f3304a 2024-02-02T16:27:38 Vulkan: Simplify handling of YUV filtering support When the requested filtering mode changes, we need to consider whether it is actually supported by the Vulkan driver. Now that we support renderable YUV textures, there are now three interesting cases: 1) The texture has a VkFormat, and so filtering support can be queried from GPDFP, as was already done. 2) The texture is imported from an opaque AHB using an external format, that format is renderable, and so we have assigned one of the EXTERNALn angle formats. This was *not* covered properly, and would lead to VVL errors or UB. 3) The texture is imported from an opaque AHB using an external format, and we have not assigned an EXTERNALn angle format to it, because the format is not renderable, or the Vulkan driver is missing the external format resolve functionality; In this case the angle format is NONE. This was similarly *not* covered properly, although the code did attempt to protect itself from querying the capabilities of format NONE. VVL errors and UB were still possible. To most simply cover all of these cases, capture whether the image has the VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER feature upfront, and forget about format lookups in the internals of the YcbcrConversionDesc. Bug: b/315387961 Change-Id: Ie140293d52c2b88bf06ef19bc54bb1c95927b8ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5259719 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi c70c329e 2024-01-31T15:59:19 Vulkan: Fix texture copy vs pre-rotation A minor error where the destination offsets were swapped based on source rotation. Bug: b/319336510 Change-Id: I5541f8d0bf0b7306b951d2601c8c27ffedb8470e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5254238 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand 82ba79ff 2024-01-08T15:22:59 OpenCL: Update CLtypes.h to cl_types.h This change/enhancement is to keep codebase more consistent since vulkan backend versions of this header use lowercase-snake_case for file name. Bug: angleproject:8501 Change-Id: I223712c72db06425d192ddfe7300e5475c341e38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5233364 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand f8c06f10 2023-11-30T17:45:35 OpenCL: Add types to cl_mem origin and region Now using cl::MemOffset and cl::Coordinate. Bug: angleproject:8439 Change-Id: Id775fe78467d3b56d2a7cc87f793221ab5e04bc5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5078244 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi ecc35205 2024-01-25T23:58:25 Move uniform block dirty bits to State When glUniformBlockBinding changes the mapping from a program uniform block to a buffer binding, all contexts in the share group need to reprocess the affected block index. Prior to this change, the dirty bits that indicated which blocks have their mapping redefined were placed in the program executable, and were reset by the first context that processed them. As a result, the other contexts in the share group where not aware of such modifications. Similarly, when a buffer changed in one context, the mapped program blocks were marked dirty, with similar cross-context issues. In this change, the dirty bits are moved to State, so every context would react to these changes. Bug: angleproject:8493 Change-Id: I5712002224cbc4a576bf2ac46e8e75f26ebc5b2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5238991 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> 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>
Liza Burakova 157088ad 2024-01-30T20:24:50 Add EGL extension for WebGPU Bug: angleproject:8476 Change-Id: Ic5aad4eb56239d9346c6ba1f812d070ce85131a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5245895 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org>
Matthew Leibowitz a70b6f56 2024-01-26T20:37:07 Add support for WinUI3/Windows App SDK Adds the necessary build args and code changes to support building ANGLE for WinUI 3 (aka Windows App SDK). To reduce the set of changes, and because it is functionally the same, a Windows App SDK build is basically a UWP build, but with an extra define so that the code can make a few changes to the namespaces and includes used. The main changes to the code are: - ICoreWindow is no longer used - Dispatcher has a few changes in naming and args - ISwapChainPanel is now in a different namespace Bug: angleproject:8490 Change-Id: Ibb298e3e86e8298dac12c2019eac7996a8185c51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5230637 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bani Singh 0640f651 2024-01-30T17:42:31 USE GCE Credentials for Chrome Bot In case of bot, use GCE instead of automatic_auth which will no longer fall back to ADC (and hence GCE). Bug: b/319246651 Change-Id: I86942c30bea911b1cc89870a748bf564584af660 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5249329 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 0ada0b7f 2024-01-29T16:36:18 Test: Add Plague Inc. trace Test: angle_trace_tests --gtest_filter="*plague_inc*" Bug: b/321562592 Change-Id: I1a68b80659517aec61315e51cacc486f44410cdf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5250428 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop 9ca81c7e 2024-01-21T13:35:06 FrameCapture: Handle zero vertex count draws Seeing the following from GLES1 (note count = 0): glDrawArrays(context = 1, mode = GL_POINTS, first = 0, count = 0) This crahes in FrameCaptureShared::captureClientArraySnapshot: 'length_error was thrown in -fno-exceptions mode with message "vector"' The function assumes vertexCount will always be greater than zero. This CL updates it to detect the empty case and simply return. Negative counts are already handled as a GL error. Test: Plague Inc MEC Bug: b/321562592 Change-Id: I3613eaac297a3471dc998b023bf2658413cb5d1b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5250427 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mike Schuchardt <mikes@lunarg.com>
Geoff Lang 98846aa8 2024-01-30T10:23:48 Metal: Temporarily disable asm injection. Some Mac11 bots started to fail after the asm injection started. Disable this path to determine if it was the root cause. Bug: chromium:1522730,chromium:1513738 Change-Id: I2580f124735f576257bb46fbf47394ff845384f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5249328 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya ab4aed3f 2024-01-29T10:59:58 Bugfix in PixelLocalStorageTest Add GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST to following tests - - PixelLocalStorageValidationTest - PixelLocalStorageCompilerTest - PixelLocalStorageTestPreES3 Bug: angleproject:7279 Change-Id: Ibd2e682be195fddff1cf638e37d12bcc740cf3a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5243831 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Mohan Maiya 5c2fc02b 2024-01-29T16:49:28 Vulkan: Bugfix in ImageFormat FixedVector::operator[] does not update FixedVector::mSize. Need to call FixedVector::push_back(...) instead. Bug: angleproject:7553 Change-Id: I544a68276d1635957a27d21c222f50f71d35a609 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5246088 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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 0c4d6446 2024-01-24T10:38:45 Rework uniform block <-> uniform buffer mapping In GLES, the shader declares which buffer binding a block (uniform, storage or atomic counter) is bound to. For example: layout(binding = 1) uniform ubo0 { ... }; layout(binding = 2) uniform ubo1 { ... }; layout(binding = 1) uniform ubo2 { ... }; In the above, ubo0 and ubo2 use data from the buffer bound to index 2 (through glBindBufferRange), while ubo1 uses data from the buffer bound to index 1. For uniform blocks in particular, omitting the binding is allowed, in which case it is implicitly bound to buffer 0. GLES allows uniform blocks (and only uniform blocks) to remap their bindings through calls to glUniformBlockBinding. This means that the mapping of uniform blocks in the program (ubo0, ubo1, ubo2) to the buffer bindings is not constant. For storage blocks and atomic counter buffers, this binding _is_ constant and is determined at link time. At link time, the mapping of blocks to buffers is determined based on values specified in the shaders. This info is stored was stored in gl::InterfaceBlock::binding (for UBOs and SSBOs), and gl::AtomicCounterBuffer::binding. For clarity, this change renames these members to ...::inShaderBinding. When glUniformBlockBinding is called, the mapping is updated. Prior to this change, gl::InterfaceBlock::binding was directly updated, trumping the mapping determined at link time. A bug here was that after a call to glProgramBinary, GL expects the mappings to reset to their original link-time values, but instead ANGLE restored the mappings to what was configured at the time the binary was retrieved. This change tracks the uniform block -> buffer binding mapping separately from the link results so that the original values can be restored during glProgramBinary. In the process, the support data structures for tracking this mapping are moved to ProgramExecutable and the algorithms are simplified. Program Pipeline Objects maintain this mapping identically to Programs and no longer require a special and more costly path when a buffer state changes. This change prepares for but does not yet fix the more fundamental bug that the dirty bits are tracked in the program executable instead of the context state, which makes changes not propagate to all contexts correctly. Bug: angleproject:8493 Change-Id: Ib0999f49be24db06ebe9a4917d06b90af899611e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5235883 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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>
Shahbaz Youssefi 0ea24ef2 2024-01-26T16:50:39 Unsuppress passing tests Bug: angleproject:3871 Bug: angleproject:3872 Bug: angleproject:3879 Bug: angleproject:4686 Bug: angleproject:4704 Bug: angleproject:4718 Bug: angleproject:4721 Bug: angleproject:4792 Bug: angleproject:5086 Bug: angleproject:5313 Bug: angleproject:6109 Change-Id: I0d0f88a388cd2f19da99a7defd0ab8d98db0e6e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5241306 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 863d4862 2024-01-27T17:42:19 Work around MSAN complaint with pool allocator - Part 2 Cache a member variable accessed after destructor so MSAN doesn't consider it having an uninitialized value. Bug: b/314793573 Change-Id: I7cb515205ed5bf3ba52d68220866009dd04f2d08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5243114 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 9318a143 2024-01-11T15:58:44 Add __asm__("") statements to loop bodies in MSL. This prevents erasure of infinite loops during optimization passes. Bug: chromium:1513738 Change-Id: I84a305b5e7fd824531d9e3ebae5496ddec030bac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5191166 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 0beed753 2024-01-26T12:42:28 Work around MSAN complaint with pool allocator Cache a member variable accessed after destructor so MSAN doesn't consider it having an uninitialized value. Bug: b/314793573 Change-Id: I45044e0801ae12a80301240b4de05e9cae03dcc1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5238220 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Forbes 6367f541 2024-01-25T10:16:04 Vulkan: supply YcbcrConversionDesc earlier Previously, the AHB import path would allow ImageHelper to build a bogus YcbcrConversionDesc (in initExternal) and then later overwrite it with what it wanted. The intermediate state was not necessarily valid, and could cause assertion failures and VVL errors. Instead, have ImageHelper clients provide the conversion they want upfront. In the non-external case, build an appropriate conversion for formats which need them, before delegating to initExternal. Bug: b/315387961 Change-Id: Icc8f561bb2de0289ceec56d41978b8c4651a47a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5232769 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Chris Forbes <chrisforbes@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bani Singh 66517b0b 2024-01-26T18:18:05 Revert "Use ADC for GCE VM" This reverts commit 2dfbedee7d4f9c84f278818217a1fa0908d6cbee. Reason for revert: May be causing credentials errors Original change's description: > Use ADC for GCE VM > > In case of bot, use ADC instead of automatic_auth which will in the > future be done through credshelper and will not support ADC. > > Test: Locally ran script with no errors, and tested that running > autoninja respects environment variables > > Bug: b/319246651 > Change-Id: I58a282047d387ef54659dbb195cc117b3459d2e8 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5212967 > Reviewed-by: Roman Lavrov <romanl@google.com> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Commit-Queue: Cody Northrop <cnorthrop@google.com> Bug: b/319246651 Change-Id: I315651d99e937c331183b28ea7d7d665b43fc6d9 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5236466 Auto-Submit: Bani Singh <banisingh@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Geoff Lang f405b999 2024-01-19T11:18:49 Make RefCountObject use atomics for the reference count When the context share lock is disabled it is possible for races with EGL Image reference counting causing the EGL Image to be deleted. egl::Image already protects its members with a mutex but the siblings also hold a reference to the egl::Image, if siblings are added and removed at the same time, writing to the ref count races and the egl::Image can be deleted while still being referenced. Bug: angleproject:6957 Change-Id: I3da8691136b6dbcffb2094187c81cafda077e50d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5214270 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 6c23a423 2024-01-26T08:37:12 Tests: skip one of dEQP texture_border_clamp tests on SwS dEQP-GLES31.functional.texture.border_clamp.range_clamp.linear_float_color Bug: angleproject:8507 Change-Id: Ie332c086ca9b145187f4461f646a5e534d323054 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5238216 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Alexey Knyazev 02aa605a 2024-01-25T00:00:00 Metal: Include only the <metal_stdlib> header Removed the logic for generating individual include macros as <metal_stdlib> provides all functions. Fixed: angleproject:8504 Change-Id: I8c83ca8cc2443a4b64e4e022a3a694c7643be569 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5237274 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Matthew Leibowitz 36013d99 2024-01-24T01:21:10 Improve build for UWP/Windows 10 These changes update the code for more modern compilers. The changes include: A) Not using deprecated APIs When Windows 8.1 was removed in commit 39b110184e2675afbfda1fd70b10ca112127ae74 the code was not updated to use the new APIs and still use the things that should not be used: > DisplayProperties may be altered or unavailable > for releases after Windows 8.1. Instead, use > DisplayInformation. B) Use correct casting There was also some changes in commit 5eadaf85b42ab1cbb1efcda558db58a3fe5a446a to properly cast from EGLNativeWindowType to IInspectable*, but this was not all of the cases. C) Prepare for WinUI3 There is another change that moves types into a using to reduce verbosity as well as make it easier/cleaner to build for WinUI/Windows App SDK. Bug: angleproject:8496 Change-Id: Ia11b7f92cb4abc524ab8316125e80a22898a8f6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5232157 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov cbdbe3bd 2024-01-26T10:05:41 deqp: Unused test expectations do not cause failure, only log deqp is the only suite that appears to be handling unused expectations this way. This causes an inconvenience where a test cannot be pre-emptively added to the expectations file. For example, a VK-GL-CTS roll might be adding a new test that is failing in some configurations. The expectation cannot be added to the expectations file pre-emptively because of the failure due to the unused expectation, but that is the more convenient way to solve this problem than patching the roll manually. Bug: angleproject:8507 Change-Id: If2ee65d9119043c42e8ca0705a1cc8c40827fae3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5238992 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
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>
Mohan Maiya d0f5a662 2024-01-25T13:01:24 Bugfix in entry points for QCOM foveated extensions Change framebuffer and texture parameter type from GLuint to FramebufferID and TextureID types respectively. Bug: angleproject:8484 Change-Id: I822897b268f2dab56cee3f5776c07ad46a6dd052 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5238212 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bani Singh 2dfbedee 2024-01-18T16:52:10 Use ADC for GCE VM In case of bot, use ADC instead of automatic_auth which will in the future be done through credshelper and will not support ADC. Test: Locally ran script with no errors, and tested that running autoninja respects environment variables Bug: b/319246651 Change-Id: I58a282047d387ef54659dbb195cc117b3459d2e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5212967 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 7d30cf9f 2024-01-22T00:00:00 Metal: Simplify sign function translation Check whether a float or an integer variant is needed and emit only what is necessary. Fixed: angleproject:8502 Change-Id: I7061a5faa7cf09519b30e64ff90c42bbe392908a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5234350 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mohan Maiya ac71a592 2024-01-23T11:56:42 Vulkan: updates to pipeline cache graph dumping logic 1. To dump pipeline cache graph you need to - 1. add "angle_dump_pipeline_cache_graph" compile time flag to args.gn 2. set Android property "angle.dump_pipeline_cache_graph" or envvar ANGLE_DUMP_PIPELINE_CACHE_GRAPH on non-Android platforms before app start 2. Default path for dump on Android is "/data/local/tmp/angle_dumps/" 3. "angle.pipeline_cache_graph_dump_path" Android property or envvar ANGLE_PIPELINE_CACHE_GRAPH_DUMP_PATH on non-Android platforms can be used to configure the dump path Bug: angleproject:6565 Change-Id: I38848aff58f413dd7bdffc9083116bd4b95e4960 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5226054 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Hailin Zhang 2978450a 2024-01-12T14:32:19 Vulkan: add etc to bc transcoding perf test. test case for testing etc to bc texture transcoding. Bug: b/319117463 Change-Id: If663fad689a4e6886bc76145c296e8fbfe21b354 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5194408 Commit-Queue: Hailin Zhang <hailinzhang@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi b007c74d 2024-01-23T14:17:54 GL: Separate dirty bits leading to glUniformBlockBinding The GL backend is special in that it needs to make actual calls (native glUniformBlockBinding) in response to (application) glUniformBlockBinding calls. The other backends just remap the bindings based on that information when creating descriptor sets. Previously, an optimization to track which bindings have changed used the same dirty bits that were used to signify when the GL backend needs to make these native calls. That ended up as a source of bugs. In a previous change [1], the context DIRTY_BIT_UNIFORM_BUFFER_BINDINGS is set when these mappings change, which fixes some of these issues. That change obviates the need for an actual backend sync of programs, except for GL programs that need to make these native calls. This change splits the dirty bits maintained for the purposes of the GL backend, moves them to that backend and removes the program backend sync. [1]: https://chromium-review.googlesource.com/c/angle/angle/+/5228599 Bug: angleproject:8493 Bug: b/318806125 Change-Id: I73c6514e88a116f1cd701cb06da0d8c38f07f7f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5230137 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 66de8492 2024-01-23T12:56:30 GL: Fix UBO binding mapping change In the absence of any other state change, the GL backend did not bind buffers (previously unused) that are used after a UBO binding mapping change. This also triggered assertion errors in the Vulkan backend. Additionally, this change improves cross-context programs, though the Vulkan backend is still affected by some bugs. A follow up change will rework the dirty bits for this change to fix that. Bug: angleproject:8493 Bug: b/318806125 Change-Id: I8f0ed4b5f666818f4fda9ec272c6b66419d64638 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5228599 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev 5857e0d6 2024-01-22T00:00:00 Metal: Adjust raster order groups AMD workaround condition Ensured that the raster order groups AMD workaround is used not only when there is no attachment on slot 0 but also when an existing attachment on slot 0 is disabled. Bug: angleproject:8263 Change-Id: I62352eb5d6fb1cce4b6a4723d41862c6c213b9d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5230638 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
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>
Alexey Knyazev 600a1a80 2024-01-22T00:00:00 Metal: Clamp vector element index references Ensured that vector elements passed by reference are within the number of vector components. Fixed: angleproject:8492 Change-Id: I2defbd8dfd418256ddb87f8ce1a74ac09a8a1b7b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5229957 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 1100cc5c 2024-01-23T16:18:52 Rename ShaderVariableBuffer It was only ever aliased to AtomicCounterBuffer after refactorings that made other buffers not use this class anymore. Bug: b/275102061 Change-Id: I09079d52bd107ed656c4c59a11e8a8027554a5ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5230141 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Roman Lavrov 81a43bd7 2024-01-23T17:15:54 Tests: skip TexelFetchLodOutOfBounds on SwS Shabi says it might after SwS rolls into Chromium But SwS is currently blocked by another issue Bug: angleproject:8495 Change-Id: I2aba1d652e868de28b258e79c74d2bd252e41f86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5230142 Commit-Queue: Roman Lavrov <romanl@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Roman Lavrov 4cda949b 2024-01-22T10:21:25 Trace tests: extend warmup to at least 1.5s Some traces are very short (e.g. 10 frames) finishing the first loop very quickly. There appears to be some delayed activity within ~1s after this first loop, so make this part of warmup as well. Example log after this change: Warmup: 10 steps Stopping test after 10 trial steps. Warmup: Looping for remaining warmup time (1.38 seconds). Stopping test after 1.38 seconds. Warmup took 1.50 seconds. Bug: b/308975999 Change-Id: If861f275f280fcb61d839e34d672e6c948317f4c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5224902 Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 755372c8 2024-01-23T13:41:01 Tests: skip UniformUsageCombinations test on SwS Failing on swangle builders: https://crrev.com/c/5228780 Bug: angleproject:5792 Change-Id: Id3cb22641b3b5a5ce1fee96f59111c6e48bc1742 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5228602 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi f794c9c2 2024-01-22T09:56:08 Tests for out-of-bounds LOD in texelFetch Bug: chromium:1504556 Change-Id: I3a92da00d9a8781122c7218f22a681839783dc7e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5225080 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@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>
Alexey Knyazev 2431d4df 2024-01-18T00:00:00 Metal: Skip array index clamp for constant values Do not wrap constant array indices with ANGLE_int_clamp when their values could be statically validated. Fixed: angleproject:8488 Change-Id: I3ad183475e1847cb7db1a07df3598c7d39767d7e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5220233 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 2ba5bb12 2024-01-22T15:16:55 android_helper: fix corner-case byte/string mismatch When --isolated-script-test-output is provided and --list-tests is added, the string gets written to a file in binary mode raising an exception. Bug: None Change-Id: Id73ae49f849e0c1bd609d4b37ad39f5515e1f02b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5225485 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi c6fbf93d 2024-01-19T09:57:12 Vulkan: Fix input attachments leaking into uniform list To communicate the existence of input attachments added to the shader, the translator was adding `ShaderVariable`s for each to the list of uniforms exported from the shader. This was incorrect, as this list is visible to the application through `glGetActiveUniform`. Additionally, this was unnecessarily causing these uniforms to go through program link. Reserving SPIR-V ids for these uniforms, all that is needed from the translator is the mere existence of these input attachments. This change removes the addition of uniforms, and instead exports a bitset. Elsewhere, that bitset is consulted and reserved SPIR-V ids are used. Bug: b/320563594 Bug: angleproject:5792 Change-Id: Id93846cbc3996248f391fd2d5a65af1e48d6d46e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5215089 Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade 317108d6 2024-01-18T17:59:51 Vulkan: Enable recordable bit for RGBA8 and RGB10_A2 Enable the recordable flag to be enabled for the RGBA8 and RGB10_A2 configs. Test: CtsMediaV2TestCases android.mediav2.cts.EncoderColorAspectsTest Bug: angleproject:6612 Change-Id: I2afaedde4751c5ca651d0d80ae1a8d14662c2f0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5214887 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade f43db42c 2024-01-17T15:18:41 Enable LogGles32Capabilities test for vulkan backend Allow for LogGles32Capabilities test to no longer be skipped for the vulkan backend. Test: angle_end2end_tests.exe --gtest_filter=*PrintGLESCapabilities* Bug: angleproject:4093 Change-Id: I1711f016f63fa58ce3521cc8d2a2e75f189fb877 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5214007 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> 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>
Amirali Abdolrashidi 151c1571 2024-01-12T16:40:38 Vulkan: Clean up RGB8-to-RGBA8 ubyte function Some platforms encounter issues in this function, possibly when the dest pointer is accessed directly when it is cast to uint32_t. * Coalesced the 32-bit accesses into memcpy(). * Simplified the implementation to contain less variables and indices. * The function updates the source and dest pointers directly instead of using separate indices. After this, the next pixel components would be accessible using constant offsets (0-3). * It does not seem to have an impact performance-wise. * Tested on Windows, which showed the most improvement in the first CL. Bug: b/308177124 Bug: b/319128304 Change-Id: I9807fd5331db487f9f0a03faa457ee0a8343d59c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5195125 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev fc742305 2024-01-18T00:00:00 Metal: Simplify geometry functions translation Check whether a vector or a scalar variant is needed and emit only what is necessary. Reduced the generated MSL for: - atan/atan2 - length - distance - dot - normalize - faceforward - reflect - refract Fixed: angleproject:8487 Fixed: angleproject:8489 Change-Id: I3be39e55997062136aae2782269a65c0c738d6cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5217532 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 175514c6 2024-01-12T14:43:33 Translator: Bundle metadata flags coming out of the translator In preparation for a follow up change that adds more such metadata. Bundling them together makes it convenient to retrieve, save and load all those flags. Bug: b/320563594 Change-Id: I4f95b32acfb0842cc5d9e72c1788a827bee2c760 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5209450 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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>
Liza Burakova f2c00e8c 2024-01-18T18:36:33 Adding Dawn stub backend to ANGLE Bug: angleproject:8473 Change-Id: I81ea83986e4e566169aa82250b5cfb727985ed01 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5201413 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi fad2adb2 2024-01-12T14:43:33 Vulkan: Fix importing external object and using as storage image The create flags used to create the imported object was 0. Later, when the texture was used as a storage image, TextureVk::syncState would recreate the image (losing connection to external object). This change makes sure the create flags include all the necessary create flags such that the texture can be correctly used as storage image. Bug: angleproject:8464 Change-Id: I6587b53b1c2819a11dec8f2d5a3a30c889a4c63f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5194064 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang f1150231 2024-01-16T16:28:36 Track WebGL buffer type in gl::Buffer state. WebGL has special validation that disallows buffers from changing "WebGL buffer type". Once a buffer is marked as having index data it cannot be bound as any other type of buffer except the copy binding points to copy to other index buffers. This disallows any GPU writes to buffers used for index data. Use this rule to shadow index buffer data when the driver is unable to give us robust access. Index range computation can be done much faster when the buffer does not need to be read back. Bug: angleproject:8434 Change-Id: I059eff732bb2f43234f61d9ef5528289f7698b38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5200242 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mohan Maiya d093c3d3 2024-01-17T11:33:46 Add entry points for QCOM foveated extensions Add entry points for GL_QCOM_framebuffer_foveated and GL_QCOM_texture_foveated extensions Bug: angleproject:8484 Change-Id: I59053f9be76fbb8eaed344aa460ecb1e178ce7db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5206990 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 42d75c7e 2024-01-17T00:00:00 Metal: Fix raster order group AMD workaround The AMD-specific raster order group workaround relied on disabled framebuffer attachments being implemented via all-disabled color masks. Metal backend no longer includes disabled framebuffer attachments in render pass descriptors. Updated the workaround to keep the placeholder attachment enabled and to set its color mask explicitly. Fixed: angleproject:8263 Change-Id: I815ceede84e6ea89eefc10c445768d9d569d0d82 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5208110 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi ed2a8ef8 2023-12-20T00:06:10 Vulkan: Defer QFOT when acquiring texture with GL_NONE layout Instead of issuing a queue family ownership transfer with the UNDEFINED layout (and then hack its dst layout to be GENERAL), this change simply lets the queue family be changed when the image is next accessed (at which point a layout transition is necessary anyway). Bug: angleproject:8464 Change-Id: Iab36af0c641bd04029bdc0d9097e766e8a0f4145 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5138657 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>