src


Log

Author Commit Date CI Message
Shahbaz Youssefi b7a42c88 2021-12-13T15:53:07 Vulkan: Remove VK_EXT_swapchain_colorspace check We don't make use of this extension since https://chromium-review.googlesource.com/c/angle/angle/+/3208689. Bug: angleproject:2514 Change-Id: I8b8edf5006ac1c3eeeefcadbe77249a5a6a5dda7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335070 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill f40e83cb 2021-09-10T19:15:17 Reduced "rx::vk::kInFlightCommandsLimit" from "100" to "50". The "100" value is too high and causes "S21 Adreno" block in "vkQueueSubmit()". This is a temp solution. Patch authored by Igor Nazarov <i.nazarov@samsung.com> Bug: angleproject:6401 Change-Id: Ie7f9c8ef5311b17325640cae0f613ece768c0fa3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3165666 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lingfeng Yang ea03bf47 2021-12-03T08:48:50 Vulkan: fix crash when clearing stencil Previously, we cast the originally-32-bit mask to 8 bits, and then crashed ourselves in the assert. Also optimize away the stencil based on 8 bit explicitly in the frontend. Bug: chromium:1275858 Change-Id: I0b03a17e72f5a4540b5c4605353eb1fde898057d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315158 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com>
Yuly Novikov a27be084 2021-12-13T14:18:33 Skip GLSLTest_ES31.StructAndArrayEqualOperator on Pixel 4 Flaky OOM. Bug: angleproject:6805 Change-Id: I50f42c6ce486f68563c08c4e9b3aab1b4876ca0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3334877 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill e8b186c9 2021-12-09T09:45:20 Frame Capture: Don't unmap regenned buffers in reset. These buffers are deleted and recreated, so unmapping them gives a "resource not mapped" error during replay. Found when working on the "world_war_doh" trace. Bug: angleproject:5133 Change-Id: Id1e6318c44a2a09fa643ef0a72f1d03d8396e5fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327862 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill a24919e7 2021-12-09T10:04:25 Frame Capture: Clear array buffer binding in MEC. This should allow us to properly reset buffer state when capturing vertex attribute pointer state in the per-context (not shared) setup function. Also adds a missing replay state buffer binding update. Fixes a state serialization difference in "badland". Bug: angleproject:5133 Change-Id: I8509dbf7211726ff47f4e7e5ff86a0eb8726d75c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327861 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brian Sheedy a1e066db 2021-12-10T12:26:01 Suppress Mac 12 failure Suppresses a failure in PointSpritesTest.PointSizeAboveMaxIsClamped on Metal with Mac 12. Bug: angleproject:6800 Change-Id: Ib6646b31e7d0231e2cd1284301792216bd5c70d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331200 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gregg Tavares a1b9eb68 2021-12-10T16:36:46 Replace IOSurfaceSurfaceEAGL.mm table with less strict padding Bug: angleproject:6783 Change-Id: Id67f581af0742b47fc5ea38de616391e57b763de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331641 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Kyle Piddington 194687e7 2021-12-06T13:40:24 Metal: Fix M1 and iOS synchronization for readPixels ReadPixels does not implicitly flush context before reading on iOS and macOS hardware due to shared memory. look for any pending GPU Work, and flush the command buffer if needed. Bug: angleproject:6803 Change-Id: I5688b031ecffcd7427263041d4e33ae256f68af6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3318592 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Gregg Tavares 2d6caae4 2021-12-10T17:25:58 Metal: Add maximum render target size validation Bug: angleproject:6790 Change-Id: I4a7e7285e040cc68e4fc16bb653f6d1512f541c9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331671 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares cf9ab647 2021-12-10T15:42:36 Add early out validation in drawArraysCommon Bug: angleproject:6791 Change-Id: I60de6806dae9c917c6db24a18f586e3b0aa2154e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331414 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares d97b1c4a 2021-12-10T16:27:08 Metal: Refactor restartRange cache Bug: angleproject:6784 Change-Id: I8a2e1df2ac621415d75708c0bba16f8ca17b0ce6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331675 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares 1642b4a3 2021-12-10T16:01:10 Metal: Fix Instanced Draw feature support on Simulator Bug: angleproject:6786 Change-Id: I4c567bf2ec61df581ae0e8eeb1c36c7d37e15d04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3331637 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares 2e669566 2021-12-09T18:21:02 Metal: Refactors from Webkit Mostly renaming, typos, cleanup bug: angleproject:6787 Change-Id: Ic71c296d7849244cae2ca29b264a10cb96bca612 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329261 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares 5068c040 2021-12-09T17:55:01 Metal: Merge changes to mtlPixelFormatTable Bug: angleproject:6789 Change-Id: I9893093fdff1138fc8ae35ac4363201fa1e0b825 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329206 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Lubosz Sarnecki 56aee5d6 2021-12-10T12:32:58 Reland "system_utils: Add memory protection functionality." This is a reland of b1c703e5f5e44514e8db958a5fb39ff16e514fd8 that was reverted in 663831aa676c59829cc3d822340812f016bf77f6. Skip PageFaultHandlerProtect and PageFaultHandlerDefaultHandler on macOS and Fuchsia. Original change's description: > Reland "system_utils: Add memory protection functionality." > > This is a reland of ab75a90ff4ecb9d99b5c72bde92222b07c285401 > that was reverted in b007e667a8f94b47788a5ba0b2e61c9ac2d1285f. > > Implement PageFaultHandler and memory protection functions. > Uses mprotect and sigaction on POSIX and equivalent Win API functions on > win32. > > Add tests to system_utils_unittests. > > Add stubs for winuwp. > > Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler > test to make it succeed on release builds, as the code was optimized > out. Furthermore the test did not correctly remove protection from the > whole area it protected, which caused a hang after deinitialization on > some build configurations, since the custom page fault handler was also > still in place. The test now correclty removes protection from the whole > area and sets back the original page fault handler. > > Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" > Bug: angleproject:5857 > Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" Bug: angleproject:5857 Change-Id: Ifaa966a7c569aa9ff0112897a02fa8f873cd52dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329610 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Jamie Madill 66e1fb86 2021-12-09T11:52:24 Trace Tests: Ensure zillow runs on SwiftShader. This trace was being skipped based on incorrect GPU detection. Bug: angleproject:5133 Change-Id: I15e36e099aa2443153184f95b360a8afec278019 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3330575 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Amirali Abdolrashidi 4d0de3d2 2021-12-03T17:09:06 Update the arg types for glMultiDraw*IndirectEXT() * Updated the auto-generated types for arguments "mode" and "type" for glMultiDraw*Indirect and glMultiDrawIndirectEXT functions to PrimitiveMode and DrawElementsType, similar to the other glMultiDraw* functions. Bug: angleproject:6770 Change-Id: If02a66b6fb2f81848ab6e43a6cd406d5956bf331 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3321792 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexis Hetu f7d92a32 2021-12-10T10:23:32 Add debug info when loading EGL entry points fails Mac11 bots are often failing with the: "Error loading EGL entry points" error for an unknown reason. This CL adds the library path to the error message to see if it's trying to open the correct file. Bug: chromium:1277690 Change-Id: Ieb73a3097702933a89794d92c19ee44a6301c169 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3330576 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Peng Huang 933f066e 2021-12-10T15:04:53 Enable GL_ANGLE_texture_usage extension This extension doesn't change ANGLE behavior with Vulkan backend, since it is just a hint for ANGLE to optimize texture allocation. Bug: angleproject:6771,chromium:1264439 Change-Id: Ie2411894a02bbcb0a5304c635f1f5648520ad22a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329694 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Peng Huang cc516f97 2021-12-10T02:48:54 Use STL container for vulkan memory allocator There is a crash related to VMA containers, so switch to STL containers to see if it can workaround the issue. Bug: chromium:1266412 Change-Id: I8416e4b4a27588ac2d710a4ef7600cd91b080535 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327744 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Hailin Zhang 3be551d7 2021-12-08T16:44:56 fix directUpdate buffer pointer issue. inside mapWithOffset already add the mBufferOffset Signed-off-by: Hailin Zhang<hailinzhang@google.com> Bug: b/207714894 Change-Id: Ia400bccbef1abc756cd8155e93a775338a30e8b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3325025 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Jamie Madill 663831aa 2021-12-09T18:08:28 Revert "Reland "system_utils: Add memory protection functionality."" This reverts commit b1c703e5f5e44514e8db958a5fb39ff16e514fd8. Reason for revert: Fails on fuchsia bots: https://ci.chromium.org/ui/p/chromium/builders/try/fuchsia_arm64/1020498/overview mprotect failed: Not supported Original change's description: > Reland "system_utils: Add memory protection functionality." > > This is a reland of ab75a90ff4ecb9d99b5c72bde92222b07c285401 > that was reverted in b007e667a8f94b47788a5ba0b2e61c9ac2d1285f. > > Implement PageFaultHandler and memory protection functions. > Uses mprotect and sigaction on POSIX and equivalent Win API functions on > win32. > > Add tests to system_utils_unittests. > > Add stubs for winuwp. > > Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler > test to make it succeed on release builds, as the code was optimized > out. Furthermore the test did not correctly remove protection from the > whole area it protected, which caused a hang after deinitialization on > some build configurations, since the custom page fault handler was also > still in place. The test now correclty removes protection from the whole > area and sets back the original page fault handler. > > Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" > Bug: angleproject:5857 > Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Bug: angleproject:5857 Change-Id: Iaab4067a7ec9240bb6c64b810ac6d3ea7bd86fe1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327743 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gregg Tavares 04110e4e 2021-12-01T14:06:03 Metal: Fix Intel backend fails with tall texture Copied test from the WebGL conformance suite. A 1x<MAX_TEXTURE_SIZE> texture fails on Intel in the Metal backend. This was fixed in WebKit so just applying that fix. Bug: angleproject:6754 Change-Id: Id1cafb3b560f14630684d55b0e61cea4c7f33a6d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311941 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Gregg Tavares <gman@chromium.org>
Charlie Lao 494a0ec2 2021-12-08T16:07:50 Vulkan: Append the actual buffer size when binding's size is 0 When app calls glBindBufferBase, the size of binding is set to 0. The spec says the actual size should be size of buffer when buffer is been referenced. But when we generate ShaderBuffersDescriptorDesc, we are directly using binding's size. But the actual descriptor set has the buffer's actual size. This causing the ShaderBuffersDescriptorDesc have a false cache hit (because size is always 0) when the actual descriptor set should be different. This CL checks bindging.getSize() and if it is 0, we use the actual buffer size. Bug: angleproject:6792 Change-Id: I3e044dc5ff113b4fae1b5c7d5e78645c6e98edf8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3325024 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Yuly Novikov 0e291f60 2021-12-08T19:40:32 Skip couple flaky end2end tests on Pixel 4 UniformTest.UnusedStructInlineUniformWithSampler GLES MatrixTest31.Mat3x4StructVarying Vulkan Bug: angleproject:6793, angleproject:6794 Change-Id: I8edc4f7ddc9bbbfcc2142f5724462184f25145b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3324324 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 9b23be91 2021-12-08T13:55:22 Frame Capture: Fix client buffers in MEC. In some cases we would neglect to reset the currently bound array buffer to "null" before capturing a client array buffer in MEC. Noticed in the "badland" trace context setup. Bug: angleproject:5133 Change-Id: I693edce763b449720a7f2123dcaf460854142e91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3323683 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 16ce5226 2021-12-01T16:58:49 Vulkan: Re-enable RGB8 for pbuffers. pbuffers support was removed from RGB8 EGL configs to prevent mismatched surface formats for surfaces backed by external memory, since ANGLE overrides RGB8->RGBA8 for all surfaces. However, ANGLE no longer supports surfaces backed by external memory with the Vulkan backend, so we can re-enable RGB8 for pbuffers. Bug: angleproject:6651 Change-Id: I7d8b666ed5e3226f067479758f44d9041dcb67b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3312361 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 55840e90 2021-12-03T15:24:00 Vulkan: Fix deferred flush vs UtilsVk Take the following scenario: 1. Draw 2. Flush (this is deferred) 3. Get image view (this is retain()ed) 4. Pass view to a draw-based UtilsVk function 5. Flush 6. Delete image view At step 4, UtilsVk may start a new render pass and use the image view from step 3. Since the flush at step 2 is deferred, it will be performed at this step, and so the serial of the image view is set to the previous submission. When step 4 uses this view, it doesn't retain it. Step 5 submits the new command buffer using this image view. At step 6, if the previous submission has finished, it will destroy the view immediately even though it's in use by the new submission. One solution could have been to make sure render pass closure originating from UtilsVk doesn't incur a flush. However, due to the current design where the render pass is immediately recorded in RendererVk's primary command buffer, it's possible that an unrelated context would perform the flush anyway. This change makes sure instead that the render pass is closed before any views are allocated/retained to be used by UtilsVk. Bug: chromium:1272266 Change-Id: I5bdefb34e03c368511c4c174cf7965fda158d2b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315976 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki b1c703e5 2021-12-08T14:53:46 Reland "system_utils: Add memory protection functionality." This is a reland of ab75a90ff4ecb9d99b5c72bde92222b07c285401 that was reverted in b007e667a8f94b47788a5ba0b2e61c9ac2d1285f. Implement PageFaultHandler and memory protection functions. Uses mprotect and sigaction on POSIX and equivalent Win API functions on win32. Add tests to system_utils_unittests. Add stubs for winuwp. Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler test to make it succeed on release builds, as the code was optimized out. Furthermore the test did not correctly remove protection from the whole area it protected, which caused a hang after deinitialization on some build configurations, since the custom page fault handler was also still in place. The test now correclty removes protection from the whole area and sets back the original page fault handler. Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" Bug: angleproject:5857 Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Tim Van Patten 4f42a4d3 2021-12-01T18:57:48 Add more support for GL_RGBX8_ANGLE Update EquivalentBlitInternalFormat(), ValidReadPixelsFormatEnum(), and ValidReadPixelsFormatType() to support GL_RGBX8_ANGLE. Also update ANGLE_rgbx_internal_format.txt to indicate the new support in glBlitFramebuffer() and glReadPixels() for GL_RGBX8_ANGLE. Bug: angleproject:6690 Test: BlitFramebufferTestES31.BlitMultisampledRGBX8ToRGB8 Test: WebGL2CompatibilityTest.ReadPixelsRgbx8AngleUnsignedByte Change-Id: I75b6d5cb46eebbc904b86cc8e6bd18aca5403684 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3312367 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill d02d6a40 2021-12-06T09:26:14 Frame Capture: Track written files in ReplayWriter. This means we don't need to recreate the list of written files in the JSON where we list the trace files. It will allow for more flexibility when we change what trace files we output. Bug: angleproject:5133 Change-Id: I651b6a281c50040d32361a5a020ba3eaa4241bf0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3316199 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0f09d378 2021-12-07T13:32:39 Frame Capture: Track return value in max resource IDs. This adds handling for return value processing when it comes to maximum resource IDs. Specifically for glCreateShader and glCreateProgram. Fixes MEC with re-capture with the blockman_go and probably other traces that call CreateShader as the final operations during setup. Bug: angleproject:5133 Change-Id: I799dfec776ca8c80a0b89c7f0c7c23423ef3896a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3320887 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Kai Ninomiya b007e667 2021-12-08T01:00:54 Revert "system_utils: Add memory protection functionality." This reverts commit ab75a90ff4ecb9d99b5c72bde92222b07c285401. Reason for revert: Causes angle_unittests to hang on many Linux FYI bots and likely Android. First known failures on Linux: https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(AMD%20RX%205500%20XT)/7318/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(Intel%20HD%20630)/30297/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Experimental%20Release%20(Intel%20HD%20630)/43446/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(Intel%20UHD%20630)/4720/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(NVIDIA)/29040/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Experimental%20Release%20(NVIDIA)/45374/overview And Android: https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(Nexus%209)/35989/overview https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(NVIDIA%20Shield%20TV)/33490/overview Original change's description: > system_utils: Add memory protection functionality. > > Implement PageFaultHandler and memory protection functions. > Uses mprotect and sigaction on POSIX and equivalent Win API functions on > win32. > > Add tests to system_utils_unittests. > > Add stubs for winuwp. > > Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" > Bug: angleproject:5857 > Change-Id: Ia6d2e87c409e6139ccaebc8c7186cd4cd844fd28 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236998 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Bug: angleproject:5857 Change-Id: I7df73a3ee3f5fa87f002045dfa87d8ca2747f60f No-Tree-Checks: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322104 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Yuly Novikov f64f9546 2021-12-07T20:17:32 Reland "Decouple gl_BaseVertex/gl_BaseInstance uniforms" This reverts commit 10e5f34d1439f0bcd5b30bea5bfbf6bdaafd4935. Reason for revert: exonerated from flaky crash suspect Original change's description: > Revert "Decouple gl_BaseVertex/gl_BaseInstance uniforms" > > This reverts commit 36bf1ebe5e9500704dd235254bd22a1f2bbd7059. > > Reason for revert: suspect causing flaky crashes > > Bug: angleproject:6763 > > Original change's description: > > Decouple gl_BaseVertex/gl_BaseInstance uniforms > > > > These are builtin uniforms removed in > > https://github.com/KhronosGroup/WebGL/pull/3278 > > > > Decouple them from the original ANGLE_base_vertex_base_instance > > extension. > > > > Make a new ANGLE_base_vertex_base_instance_shader_builtin > > extension for these builtin uniforms. > > > > Bug: angleproject:3402 > > Change-Id: I77b93917976ce435db9c578c0ade37bff18a42b0 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3290304 > > Commit-Queue: Shrek Shao <shrekshao@google.com> > > Reviewed-by: Geoff Lang <geofflang@chromium.org> > > Reviewed-by: Kenneth Russell <kbr@chromium.org> > > Bug: angleproject:3402 > Change-Id: I75830baa14cf4e7c53750fd14ff76501145b4823 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315610 > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Commit-Queue: Shrek Shao <shrekshao@google.com> Bug: angleproject:6763 Bug: angleproject:3402 Change-Id: Ie436dc5d55364e464897d407a53b793941cd5d0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3321703 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Lubosz Sarnecki 333e61d3 2021-10-19T16:06:14 trace_fixture: Add UpdateClientBufferData2WithOffset. Adds a function to update buffers with an offset. Bug: angleproject:5857 Change-Id: Iddc0dbcdd123866f31c1382e1eb6fc7e7cb922b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236997 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Jamie Madill dcadfa87 2021-12-07T10:34:56 Frame Capture: Fix missing header include in shared setup. This could produce undefined string errors in some traces. Bug: angleproject:5133 Bug: angleproject:6772 Change-Id: I336369a035e30fc7d73530084b5e192d60afee1b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3320865 Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki ab75a90f 2021-10-21T20:20:07 system_utils: Add memory protection functionality. Implement PageFaultHandler and memory protection functions. Uses mprotect and sigaction on POSIX and equivalent Win API functions on win32. Add tests to system_utils_unittests. Add stubs for winuwp. Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*" Bug: angleproject:5857 Change-Id: Ia6d2e87c409e6139ccaebc8c7186cd4cd844fd28 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236998 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki 3e493db2 2021-11-19T10:47:04 tests/AndroidManifest: Disable allowNativeHeapPointerTagging. In order for the mprotect tests to pass on Android, tagged pointers need to be disabled. Bug: angleproject:5857 Change-Id: I2a9703b98443a96b486581c5c5d57e40c3365555 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3291655 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Brian Sheedy 50d8a2af 2021-12-06T11:35:08 Remove Skia Gold master usage Removes _GetGitOriginMasterHeadSha1 in the Skia Gold Python code since _GetGitOriginMainHeadSha1 is now used in the base Chromium code. Bug: chromium:1276531 Change-Id: I8f5b793b21ba6ff0e4110a3259becc2aaec06443 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3318581 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 006c11d9 2021-11-20T22:12:20 Vulkan: Fix xfb query ASSERT on end It's possible for the xfb query to have never been issued, as it's deferred until a draw call with xfb active is encountered, which may never happen. Bug: chromium:1209285 Change-Id: I893f9f9a06e4b9f2f9da9406affab0be3598fcb4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294701 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lingfeng Yang 6d3435fd 2021-12-01T17:08:01 Validate SamplerFormat We weren't validating sampler formats in ProgramExecutable validation. Bug: chromium:1273661 Change-Id: Ida0c67c0c7169ea3f47ceb2d433bee17012a7e5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3312717 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Lingfeng Yang 929c8ed4 2021-12-01T18:16:14 Vulkan: remove staged updates on storage set Previously we would allow staged updates to bigger versions of a texture to go through even if the texture was redefined via glTexStorage*. Bug: chromium:1262080 Change-Id: I9d861fed68d4a1fdcd0777b97caf729cc74c595e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3312718 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Jamie Madill 8313ffe2 2021-11-29T15:46:25 FrameCapture: Add ReplayWriter helper class. This centralizes all of the replay file I/O into a single point. Each function is stored separately in this class. Right now there's some small file format changes: - the namespaces for the capture label are gone. these had no functional impact now that each trace was a separate module. - the header is cleaned up into private and public functions. this cleans up a few things like defining non-existent functions. - inline variables are tracked through the replay. they are now global instead of anonymous, and string sets get reused instead of duplicated between frames. There should be no functional changes with the naming of the trace files or the trace behaviour. This change sets the stage for the ReplayWriter buffering multiple frames into a single cpp file on disk, which can potentially reduce the number of object files in the compilation by a great deal. It could also be extended to work with buffered I/O so we don't block and hitch when we're writing large trace files. Bug: angleproject:5133 Change-Id: Ib96685e1202ac8101a4b828fa79642236af2120a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311940 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shrek Shao 10e5f34d 2021-12-04T00:10:21 Revert "Decouple gl_BaseVertex/gl_BaseInstance uniforms" This reverts commit 36bf1ebe5e9500704dd235254bd22a1f2bbd7059. Reason for revert: suspect causing flaky crashes Bug: angleproject:6763 Original change's description: > Decouple gl_BaseVertex/gl_BaseInstance uniforms > > These are builtin uniforms removed in > https://github.com/KhronosGroup/WebGL/pull/3278 > > Decouple them from the original ANGLE_base_vertex_base_instance > extension. > > Make a new ANGLE_base_vertex_base_instance_shader_builtin > extension for these builtin uniforms. > > Bug: angleproject:3402 > Change-Id: I77b93917976ce435db9c578c0ade37bff18a42b0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3290304 > Commit-Queue: Shrek Shao <shrekshao@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Kenneth Russell <kbr@chromium.org> Bug: angleproject:3402 Change-Id: I75830baa14cf4e7c53750fd14ff76501145b4823 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315610 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Shrek Shao <shrekshao@google.com>
Amirali Abdolrashidi d0287552 2021-11-15T08:51:41 Reland "Vulkan: Implement GL_EXT_multi_draw_indirect" This is a reland of 79f9d163b4227115a3e60e027ec4d7dbe0495f64 * Added drawcount > 1 as a condition to fall back to MultiDraw*IndirectGeneral(). * Expanded the tests to include cases with disabled support for multiDrawIndirect. Original change's description: > Vulkan: Implement GL_EXT_multi_draw_indirect > > * Optimized the implementations of multiDrawArraysIndirect() > and multiDrawElementsIndirect() for Vulkan > * Added helper functions to support drawArraysIndirect() and > drawElementsIndirect() as special cases of multiDraw*Indirect > functions. > * Added the flag to enable the multiDrawIndirect feature > (drawCount > 1). The generic implementation is used if the > flag is disabled. > > Bug: angleproject:6439 > Change-Id: Ibc653d93d355657f828de9c33da22428629e450f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276044 > Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6439 Change-Id: I96c015855fabc8abbb87320a5ca71a8d92d61954 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313412 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Ian Elliott 5f1a0f32 2021-12-03T15:36:42 Vulkan: Resize deviceExtensionProps to deviceExtensionCount This is a follow-on to a previous commit that worked around an Android platform bug (see angleproject:6715 and b/206733351). In the second call of vkEnumerateDeviceExtensionProperties, ANGLE asks for one more extension than was returned by the first call (because sometimes one more is suddenly available). After the second call, ANGLE will now resize deviceExtensionProps to deviceExtensionCount elements to avoid any possible use of a potentially-empty element. Bug: b/208937840 Bug: angleproject:6715 Bug: b/206733351 Change-Id: I2195ddda4619dd1a72b2cf5bff2395d061d7780d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3315599 Reviewed-by: Jason Macnak <natsu@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott 24241724 2021-11-22T13:26:53 Reland: Vulkan: Use vkResetQueryPoolEXT when available This is a reland of 97aa5187ed164f1e9a22b64c966f2a747f651bfb Original change's description: > ANGLE currently uses vkCmdResetQueryPool to reset a query pool. As > reported by Arm, this can cause GPU bubbles. It is better to use > vkResetQueryPoolEXT() when available (either by Vulkan 1.2 or by the > VK_EXT_host_query_reset extension). > > Bug: angleproject:6692 > Change-Id: I650d7d0f55bdf6587b75be43cc7bed2dc3eb935a > Reviewed-on: > https://chromium-review.googlesource.com/c/angle/angle/+/3294061 > Commit-Queue: Ian Elliott <ianelliott@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> Bug: angleproject:6692 Change-Id: Idff87977bd39ccd1d05684e48929f4cd3fa733c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313382 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Brian Sheedy 9408adce 2021-12-03T13:01:09 Add Gold git main method Adds _GetGitOriginMainHeadSha1 to the Skia Gold code, which is equivalent to the existing _GetGitOriginMasterHeadSha1 except that it checks against origin/main. The former will be used and the latter removed once Chromium is able to safely update which version it calls. Bug: chromium:1276531 Change-Id: I23b2da0aac91a182fde934b7c7396e41fe6bf07c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3314883 Commit-Queue: Brian Sheedy <bsheedy@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 6a699d5d 2021-12-03T08:38:25 Vulkan: Allow nonconformant EXT_gpu_shader5 ANGLE can't create an ES 3.2 context on SwiftShader due to lack of shaderImageGatherExtended, which is required for EXT_gpu_shader5. This CL extends the exposeNonConformantExtensionsAndVersions check to enable EXT_gpu_shader5 in the Vulkan backend. Test: ES 3.2 traces on SwiftShader (Asphalt 9, Fortnite, etc) Bug: angleproject:5652 Bug: angleproject:5658 Bug: angleproject:5883 Bug: angleproject:6613 Bug: angleproject:6749 Bug: b/197731391 Change-Id: I1a1ef0dd1983de39996179d27ae0399f1ef43de9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3314512 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 1047af38 2021-12-02T14:30:42 Fix changing attached renderbuffer from MSRTT to non-MSRTT FramebufferAttachment::mRenderToTextureSamples was never updated if the renderbuffer storage was changed after attaching to framebuffer. Bug: chromium:1272068 Change-Id: Ib0cfde53c3453c0df4b0aea32ab0a246aa2ade7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313414 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Lingfeng Yang c88a73c8 2021-12-02T12:49:00 Fix flakiness in CpuTimeSleepy Looks like we can't really rely on the direct wall comparison---probably different resolutions are tripping us up here. Bug: chromium:1272977 Change-Id: Ie3691c59eb5b3765b79f1861200436d9c5acd609 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313481 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 6f96a189 2021-12-01T11:14:33 FrameCapture: Clean up 'WriteCppReplayFunctionWithParts'. This function was using two extra temporary streams that it didn't need. Clean this up and remove the extra streams and repeated code. Bug: angleproject:5133 Change-Id: I8065a189211ba9030fee523dc7145dc5daf71d92 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311577 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jeff Vigil fe42ac4d 2021-11-29T15:45:40 EGL: deferredFlush fix for PRESENT_MODE_SHARED Add work around to deferredFlush for SINGLE_BUFFER Fixes issue with EGL_KHR_mutable_render_buffer and deferredFlush feature. Bug: angleproject:6739 Change-Id: I81f87899f2c92a7e001b6aee2f88ecf7ba0d40a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3308224 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 8e6f38e5 2021-12-02T17:24:32 Revert "Vulkan: Implement GL_EXT_multi_draw_indirect" This reverts commit 79f9d163b4227115a3e60e027ec4d7dbe0495f64. Reason for revert: Breaks dEQP-GLES31.functional.draw_indirect* on Pixel devices: https://blackbox.googleplex.com/dashboard/cts-graphics/target/git_master/oriole-userdebug/3/cts-angle-host-test-arm64-v8a/4 Original change's description: > Vulkan: Implement GL_EXT_multi_draw_indirect > > * Optimized the implementations of multiDrawArraysIndirect() > and multiDrawElementsIndirect() for Vulkan > * Added helper functions to support drawArraysIndirect() and > drawElementsIndirect() as special cases of multiDraw*Indirect > functions. > * Added the flag to enable the multiDrawIndirect feature > (drawCount > 1). The generic implementation is used if the > flag is disabled. > > Bug: angleproject:6439 > Change-Id: Ibc653d93d355657f828de9c33da22428629e450f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276044 > Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6439 Change-Id: Ia4d54ef3e7652febf4d77fdaf6809f57e8e29127 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3312829 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Shrek Shao 36bf1ebe 2021-11-17T13:31:17 Decouple gl_BaseVertex/gl_BaseInstance uniforms These are builtin uniforms removed in https://github.com/KhronosGroup/WebGL/pull/3278 Decouple them from the original ANGLE_base_vertex_base_instance extension. Make a new ANGLE_base_vertex_base_instance_shader_builtin extension for these builtin uniforms. Bug: angleproject:3402 Change-Id: I77b93917976ce435db9c578c0ade37bff18a42b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3290304 Commit-Queue: Shrek Shao <shrekshao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Lingfeng Yang 8815245a 2021-12-01T08:58:01 Vulkan: Don't retain in buffer/imageRead unnecessarily mUsedBuffers/images already tracks whether a buffer/image is used in a render pass, so we can add to ContextVk's resource use list only once. Bug: angleproject:6717 Change-Id: Idd528c7f0f3fcb4d8d8879ab6cc7055260ecb45d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3310523 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 2d41e0f7 2021-11-30T16:14:03 Rework compressed texture pixel unpack state handling. Compressed images do not use the pixel unpack parameters. Instead of handling this in Context, move this to formatutils, where it's already handled for the 2D case. Also, update the test to generate an ASAN error if not ignored for the 2D case. Bug: chromium:1267496 Change-Id: Ib93bae00a2b0b75eafd74c267f737da225afd993 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3308825 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 8f6f5a4b 2021-11-30T23:48:30 Vulkan: Fix image respecify's usage tracking When respecifying an image due to mip level count changes, the previous image is staged as an update to the new image. The resource usage info was not being transferred to the image being staged as an update, causing it to be prematurely deleted. Test based on one authored by sugoi@google.com. Bug: chromium:1270658 Bug: angleproject:4835 Change-Id: I215c65ba700d7be608d0910d3cb37fcfdf297a2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3308921 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 609eb31a 2021-12-01T10:24:59 Skip MultithreadingTestES3.MultithreadFenceTexImage on TSAN Bug: angleproject:6718 Change-Id: If67662dfb2ade1c87e9b4ba22e65efabf17f096c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3310485 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill f84dc44f 2021-11-30T12:22:21 Add a test for changing an XFB buffer after Begin. Bug: chromium:1274316 Change-Id: I4ba240ff4cc383b157a64a0c92e8ce8ab2d8061e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3309101 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 3b6f80b7 2021-11-23T10:07:43 Capture/Replay: eliminate redundant parameters in GenOnBind The template parameter already defines the parameter value name and the parameter value type, so add some traits to simplify the call interface of the function. Bug: angleproject:6425 Change-Id: I037bed8e5cc2e7367d8faa3af5d4fba2bfbb52c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3295617 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuly Novikov fc860bc1 2021-11-30T17:39:42 Skip *Vulkan_AsyncQueue angle_end2end_tests on TSAN Bug: angleproject:6746 Change-Id: If8bbf8ffc4c6d5df376ebd7c3d51c98c6990ea0d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3308829 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 45028d29 2021-11-30T10:37:06 D3D11: Fix OOB access in vertex conversion code. This could happen when using certain combinations of stride and offset. Fix the issue by using checked math. Bug: chromium:1274499 Change-Id: Idba3beedad10b0c0cac2dcbecba8e420c5baa6da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3309035 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Alexis Hetu 7817761a 2021-11-23T22:47:44 Vulkan: Use the correct format when binding a pBuffer. Vulkan would get the texture format from the pBuffer's config but some pBuffer types use different formats which are queried with getBindTexImageFormat. This CL also removes nativeSizedExternalFormat. nativeSizedExternalFormat was only used when the format/type is GL_RGB/GL_UNSIGNED_BYTE. This is now obsolete since the real fix was the pBuffer fix mentioned above, so this CL cleans up the now unnecessary code. Bug: angleproject:4369 Bug: chromium:1237561 Bug: chromium:1099979 Change-Id: Ibfedea60d10856831e3a1975ac20ae5eb6a73786 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3298352 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Cody Northrop ce854632 2021-11-29T10:48:48 FrameCapture: Fix Gen on Bind for MEC The logic for detecting whether a resource has been generated was not accounting for starting resources, which would only be populated if using MEC. We also weren't tracking framebuffer creation correctly in CaptureMidExecutionSetup. Test: Asphalt 9 MEC Bug: angleproject:5883 Bug: angleproject:6425 Change-Id: I8a7dfa4736c4d735dec8cd26ffa329f051927de6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3307778 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 440e5458 2021-11-27T19:55:06 FrameCapture: Integer attribs in MEC If the component type of a vertex attribute is integer, we need to use the appropriate VertexAttribI* functions to set it up. Test: Asphalt 9 MEC Bug: angleproject:5883 Change-Id: I2ab2248e5a36cc6636b081acf6474b5dbe2484db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3305057 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Peng Huang 65720272 2021-11-26T17:42:16 Add end2end gl test for *_ANGLE_vulkan_image extensions Bug: chromium:1264439,angleproject:6741 Change-Id: I12d332995138a020ba514fba34024c3e666b8e6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3304396 Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 2020ec2b 2021-11-18T16:49:35 Capture/Replay: run tests that will crash or fail compilation These tests have to run in one-sized batches so that they do not bring down other tests run in the same batch, but it is useful to run these tests to see whether chenges to the code fix these tests. In addition, update the expectations to reflect that more tests do not crash or even pass. Mark one more test as FLAKY because a change of the batch allocation seems to change this test. Leave timeouts as skip to not burden the CI too much. Bug: angleproject:6180 Bug: angleproject:6267 Bug: angleproject:6267 Bug: angleproject:6313 Bug: angleproject:6314 Bug: angleproject:6315 Bug: angleproject:6324 Bug: angleproject:6329 Bug: angleproject:6333 Bug: angleproject:6334 Bug: angleproject:6335 Bug: angleproject:6399 Bug: angleproject:6400 Bug: angleproject:6605 Bug: angleproject:6611 Bug: angleproject:6631 Change-Id: I973ec43feff8ca51de698e0aade3d7102b193166 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3291643 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Yuly Novikov 17261f3b 2021-11-29T19:53:39 Remove not needed constexpr definitions, deprecated in C++17 Bug: angleproject:6737 Change-Id: I38ead1bd8e5eaace78750505b93a2576e19d0f83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3307535 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 949624bf 2021-11-29T16:57:35 Skip MultisampleTest on Mac Metal ContentPresevedAfterInterruption/ES2_Metal_NoFixture__NoStoreAndResolve Bug: angleproject:6702 Change-Id: Iefff376ec8f3fb140825ad239bf8a2b560c8effb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3307346 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten ef65edf2 2021-11-22T14:23:35 Add extension: ANGLE_rgbx_internal_format Add the extension ANGLE_rgbx_internal_format, which exposes the ANGLE internal format GL_RGBX8_ANGLE. The format GL_RGBX8_ANGLE enables emulating RGB8 formats with RGBA8 within ANGLE. This also renames the format GL_RGBX8_ANGLEX to GL_RGBX8_ANGLE, since it's being exposed. Bug: angleproject:6690 Test: Texture2DTestES3.TextureRGBXImplicitAlpha1 Change-Id: I5548a3578a14e2f2a4006bbf59983b01f694b7f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3296625 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 44d0ef69 2021-11-25T14:37:38 Vulkan: Enhance SamplerDesc for YUV formats In order to uniquely identify a VkSamplerYcbcrConversion, having just the format is insufficient. We need to account for conversion model and color component range. Refactor SamplerDesc by encapsulating YUV related fields into its own YcbcrConversionDesc. Bug: angleproject:6732 Test: Texture2DTestES3.*Yuv*Vulkan Change-Id: I23114c50646232dccde988a52b0649778ad72a90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3301899 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Jonah Ryan-Davis 568a350e 2021-11-29T14:17:31 Suppress Texture3dTestES3.PixelUnpackStateTex[Sub]Image3D on Mac This test was newly added in the fix for https://crbug.org/1267496 It crashes similarly on Mac. Suppress for now while I work on the fix. Bug: angleproject:6738 Change-Id: Ifbdbb790b2f60fe91362ee47d1165165cb5c5382 TBR=ynovikov@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3307478 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Peng Huang a5e391d7 2021-11-19T17:35:06 Add GL_ANGLE_vulkan_image extension glAcquireTextures & glReleaseTextures are added for sharing texture ownership with an external API. Bug: chromium:1264439 Change-Id: If46d8d230b4f611768b5ff1187674509e42f01e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3293921 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Mohan Maiya 00d0b79f 2021-11-26T14:38:20 Bug fix in BitSetArray iterator Account for gaps spanning multiple BaseBitSet while iterating. Bug: angleproject:3877 Tests: BitSetArrayTest*IterationWithGaps* Change-Id: I64a0393bf117678b0a7855904a6ac328a13bb40c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3304108 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill f893c61b 2021-11-26T14:58:28 Update capture_replay_expectations.txt. Adds expectation for new skipped test. Also consolidates expectations into just SwiftShader since we cannot yet support multiple Vulkan implementations. Bug: angleproject:6688 Change-Id: I736d28f3e452624eae4cde8058a6c1acdaae1263 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3304554 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 14f55a7f 2021-11-02T10:16:58 infra: Enable TSAN and UBSAN tests. These tests are not yet enabled on the CQ. Bug: angleproject:5795 Change-Id: I3fc58ab800ebbc0840da8221b03b4ab145d28028 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258003 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 2797227b 2021-11-26T08:48:30 dEQP: Add flaky result handling. A flaky expectation will allow the test harness to retry a failing test one extra time. If the second run passes the flaky test will be considered a passing result. Bug: angleproject:5795 Change-Id: I09fc4ed34ee09548ab14f46dfce35f900be5550f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3303712 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e0b4cf6c 2021-11-26T10:23:24 Fix Python3 usage with perf tests/gold tests. Bug: angleproject:6733 Change-Id: I9d1baf78ed182db77c6a6d8e896737413ca417f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3304012 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cheryl Wei 268653c9 2021-11-25T13:37:58 Vulkan: Update a test to triger large dirty bit handling Some traces bind one VBO to a large number of VAOs,and use glBufferData to change buffer size frequently,this will cause glBufferData spending a lot of time doing VAO dirty bit handling, which leads to high cpu load in these traces.This test could triger this issue. Bug: angleproject:6371 Change-Id: I99292825b8cb5bba58cc6b37e3baa7adcd02c780 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3301536 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Stephan Hartmann 7f1ab9be 2021-11-25T21:59:51 Vulkan: add explicit template specialization for barrierImpl ImageHelper::barrierImpl with primary command buffer is used in other translation units (SurfaceVk::acquireNextSwapchainImage()). Linking fails if compiler has optimized out symbol for primary command buffer. Bug: chromium:819294 Change-Id: I91d79788ae51d24472e8bd1d20cdb1a375e86300 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3301705 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Stephan Hartmann 43ae7834 2021-11-25T21:52:45 GCC: fix type conversion in FramebufferGL GCC has some problems deducing template argument. Help with assigning the value to a new const variable before using it. Error message: ../../third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.cpp:308:70: error: default type conversion cannot deduce template argument for 'template<class Dst, typename std::enable_if<angle::base::internal:: IsNumericRangeContained<Dst, unsigned int, void>::value, void>::type* <anonymous> > constexpr angle::base::internal::StrictNumeric<T>::operator Dst() const [with Dst = Dst; typename std::enable_if<angle::base::internal:: IsNumericRangeContained<Dst, T>:: value>::type* <anonymous> = <anonymous>; T = unsigned int]' 308 | tmpPixels = new GLubyte[checkedAllocatedBytes. ValueOrDie()]; | Bug: chromium:819294 Change-Id: I3e720fea4a8e24aab0a9a9b3dedf9abdebaa44a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3301704 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 870f458f 2021-11-22T14:30:52 Ignore the pixel unpack state for compressed textures. From OpenGL ES 3 spec: All pixel storage modes are ignored when decoding a compressed texture image This was causing a bad access when calling compressedTexImage3D with GL_UNPACK_IMAGE_HEIGHT greater than the image height. Bug: chromium:1267496 Change-Id: I9b1f4c645548af64f2695fd23262225a1ad07cd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3296622 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang e00ad443 2021-11-15T20:16:16 Add EGL_ANGLE_vulkan_image extension This extension is for exporting VkImage from EGLImage. The VkImage must be used with the same VkDevice used by ANGLE Vulkan backend. Bug: chromium:1264439 Change-Id: I222d900465cf2716d94fc64f06e240390ec518ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285025 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Gregg Tavares a0924015 2021-11-22T19:44:05 Metal:Fix GLSLTest_ES3.GLVertexIDIntegerTextureDrawElements Metal The test was failing if the "first" argument to glDrawElements was odd. When odd the offset was not a multiple of 2 bytes and the code was going down a different path than when the offset was event. The fix for that just removes a check for alignment to 4 bytes. Checking with UNSIGNED_BYTE indices though and it still failed. That was because it was encoding the index conversion path on one command buffer and the provoking index prep on another and so they were happening out of order. Putting both on the same command buffer fixes that. Bug: angleproject:6688 Change-Id: I89b68ba965d073e0fa70b6d5b444dc743b5e34a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3296631 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 110ac03a 2021-11-23T09:36:08 Vulkan: Revert change to sRGB override support. An accidental testing change slipped into a fix for base/max level updates. This reverts the unintended change. Bug: angleproject:6728 Change-Id: I61e371149be590ce506cfc88165c4391538e54b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3298428 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Ian Elliott 2fa1adf0 2021-11-24T18:29:13 Revert "Vulkan: Use vkResetQueryPoolEXT when available" This reverts commit 97aa5187ed164f1e9a22b64c966f2a747f651bfb. Reason for revert: This apparently caused crbug.com/1273344 Original change's description: > Vulkan: Use vkResetQueryPoolEXT when available > > ANGLE currently uses vkCmdResetQueryPool to reset a query pool. As > reported by Arm, this can cause GPU bubbles. It is better to use > vkResetQueryPoolEXT() when available (either by Vulkan 1.2 or by the > VK_EXT_host_query_reset extension). > > Bug: angleproject:6692 > Change-Id: I650d7d0f55bdf6587b75be43cc7bed2dc3eb935a > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294061 > Commit-Queue: Ian Elliott <ianelliott@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> Bug: angleproject:6692 Change-Id: I70d5eeb0b98f016fd262935194f8f4abee2a72b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3300309 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Mohan Maiya 6c172e4b 2021-11-20T16:27:14 Add support for memory cleanup on process exit This patch adds a callback to cleanup memory on process exit. Bug: angleproject:6723 Test: Android CTS WrapperTest.testThreadCleanup Change-Id: Ia517d4c6ae280ddc1f17a3b6f77d437aaaad0678 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294581 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Amirali Abdolrashidi 79f9d163 2021-11-15T08:51:41 Vulkan: Implement GL_EXT_multi_draw_indirect * Optimized the implementations of multiDrawArraysIndirect() and multiDrawElementsIndirect() for Vulkan * Added helper functions to support drawArraysIndirect() and drawElementsIndirect() as special cases of multiDraw*Indirect functions. * Added the flag to enable the multiDrawIndirect feature (drawCount > 1). The generic implementation is used if the flag is disabled. Bug: angleproject:6439 Change-Id: Ibc653d93d355657f828de9c33da22428629e450f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276044 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 924c8d8a 2021-11-18T22:58:04 Vulkan: Fix image tiling when DRM format modifiers are specified Bug: angleproject:6679 Change-Id: I5198a180608535131b127c135423fb80c6478140 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3292027 Reviewed-by: Craig Stout <cstout@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 17bf6e98 2021-11-11T20:53:31 Implement GL_EXT_multi_draw_indirect * Added the validation functions for multiDrawArraysIndirect() and multiDrawElementsIndirect() according to the specs. * Added generic implementation for the two functions that can be called by back-ends. * Added unit tests for the multiDrawIndirect functions. * Added flags for back-ends so they can enable the extension. * Minor cleanup in MultiDrawTest.cpp Bug: angleproject:6439 Change-Id: I4e5f1cab05c6de330aef82d115492dcc9d2fad44 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276043 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jeff Vigil 8b60855b 2021-09-15T15:16:10 EGL: implement EGL_KHR_mutable_render_buffer Pass render buffer mode change to WindowSurfaceVk. On mode change trigger OUT_OF_DATE. Then in CreateSwapchain, if new mode, set the Presentation mode and the Image count. OffscreenSurfaceVk ignores mode change. Add MUTABLE_RENDER_BUFFER_BIT to GenerateDefaultConfig. Test: dEQP-EGL.functional.mutable_render_buffer.* Bug: angleproject:3966 Change-Id: I7b59708514bcda10f8d45ce5f9528aa840fcccfa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3171822 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott 97aa5187 2021-11-22T13:26:53 Vulkan: Use vkResetQueryPoolEXT when available ANGLE currently uses vkCmdResetQueryPool to reset a query pool. As reported by Arm, this can cause GPU bubbles. It is better to use vkResetQueryPoolEXT() when available (either by Vulkan 1.2 or by the VK_EXT_host_query_reset extension). Bug: angleproject:6692 Change-Id: I650d7d0f55bdf6587b75be43cc7bed2dc3eb935a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294061 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 4ae30a63 2021-11-22T16:25:11 Vulkan: Don't attempt to convert vertices in empty buffers Bug: chromium:1271671 Change-Id: I869f30fd9c8a52c07263bb7a72978a31f2aceb9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3297026 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill ce6f9c8f 2021-11-19T14:52:48 Update checked numerics library. This library hadn't been updated in quite some time and had bugs which affected UBSAN in some operators. Bug: angleproject:5795 Change-Id: I40f658655034ce03df29cf4c71acb3f6fe96bef0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3289941 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Sergey Ulanov 6e2e36cc 2021-11-19T00:57:29 [Fuchsia] Fix SwiftShader ICD discovery ANGLE needs to set VK_ICD_FILENAMES for the Vulkan loader to discover SwiftShader's ICD. Enable this logic on Fuchsia. Also updated ConcatenatePath() to handle absolute paths correctly. Bug: chromium:1225002 Change-Id: Ib69be0d7dcaef09f1da9d411023e90a3b7b4fca2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3292347 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 1d555687 2021-11-09T11:16:24 Capture/Replay: Set FBO ID when generated on bind GLES allows FBO ID's to be reserved on bind, so if a FBO is bound with and ID that was not yet reserved by a glGenFramebuffers call, update the resource tracking and the resource map to account for this resources that was created on bind. Bug: angleproject:6425 Change-Id: I343fc17bfbbfd9c8c47d6fe207a4f3817acb835d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3190970 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
shrekshao 5859bb10 2021-11-19T13:25:38 Make D3D11 non instanced draw path explict To make sure instanceCount == 0 is no-op according to OpenGL ES 3.2 spec section 10.5. Before the fix the behavior on linux (gl) and win (d3d) are inconsistent. Bug: angleproject:3402 Change-Id: I70ec215d8b65c1591b4c816f76c92e88e9f0dc61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3293749 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shrek Shao <shrekshao@google.com>
Yuxin Hu ef637366 2021-11-19T22:38:56 Revert the order of texture sync and frame buffer object sync This change reverts the sync order swap done in CL a280c671f178daf73da447d1030773b58b534998, to address a performance issue in TRex. The crash that sync order swap was trying to resolve was addressed by another CL 0fcad6260a3e3943fb84657a3a7f488d1e155fb7. Bug: angleproject:6014 Change-Id: Ie49628295b6dcd5d012dc795bf123865b1a7f893 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3292636 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>