src


Log

Author Commit Date CI Message
Jonah Ryan-Davis e981675a 2021-03-31T21:03:24 Revert "Reland "Add support for Linux GPU info with Vulkan backend"" This reverts commit 9a8397327f9aac278f4bd1f5ab9094eec7e7798b. Reason for revert: Crashes when libpci path fails on some desktop platforms and the fallback path to Vulkan is taken. Original change's description: > Reland "Add support for Linux GPU info with Vulkan backend" > > This is a reland of 5c09c1f882f15e1a77577f1a62d861355aac90a4 > > Extra change: Add new ANGLE_HAS_VULKAN_SYSTEM_INFO compile > variable for GetSystemInfoVulkan() in linux platform. > > Original change's description: > > Add support for Linux GPU info with Vulkan backend > > > > 1. Add support for Linux GPU info with vulkan backend: for > > dev board without PCI support, try vulkan backend to get > > GPU info. > > 2. Fix getVulkanInstance() issue when loading non-exist lib: > > return NULL instance if open lib failed. > > > > Bug: angleproject:5717 > > Change-Id: I03c11da25a8787496d098f6c9d6b4c53701383e4 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2734375 > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Jamie Madill <jmadill@chromium.org> > > Bug: angleproject:5717 > Change-Id: Iaaab8f512b6ec1d524d7ebb3b4252fec3cfe7dc3 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739097 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5717 Bug: chromium:1192586 Change-Id: I04f13fd4bf1d57a3ed510cd3bdf743066de96523 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798394 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Le Hoang Quyen 4ac6ea2a 2020-07-18T21:05:37 Metal: implement ANGLE_device_metal extension. Allow user to query internal MTLDevice used by Metal back-end. Bug: angleproject:2634 Change-Id: I9b0a6eaad8c634069f43e47d5f4f88f61da35f74 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757810 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 3c98bb6a 2021-03-31T21:32:42 Reland "Link angle_util statically into angle_system_info_test" This reverts commit 91b6c3b1a2b12f6c834238ed680d82c3de741cd0. Reason for revert: fixing compilation on android-archive-dbg Original change's description: > Revert "Link angle_util statically into angle_system_info_test" > > This reverts commit 804226dffd9b35f88c4a64672fea2cd29c2bc6e8. > > Reason for revert: breaks compilation on android-archive-dbg. > See https://ci.chromium.org/ui/p/chromium/builders/ci/android-archive-dbg/7802/overview (seems the egl symbols can't be found?) > > Original change's description: > > Link angle_util statically into angle_system_info_test > > > > Otherwise ANativeActivity_onCreate is not found in component build. > > > > Bug: angleproject:4483 > > Change-Id: Ic4a9f66e5b7d150a3740529f866de9995550ea68 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2689370 > > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > TBR=ynovikov@chromium.org,jmadill@chromium.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > TBR=ynovikov@chromium.org > Bug: angleproject:4483 > Change-Id: I7f16f77979f7d8b1e5e5f61e48b379b910f3a743 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2697067 > Reviewed-by: Corentin Wallez <cwallez@chromium.org> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bug: angleproject:4483 Change-Id: I9e6621a2f10041cc8f191d877e48710d977e8237 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798399 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jonah Ryan-Davis e1ff28d4 2021-03-12T13:35:42 GLX: Always call XSync on creation/destruction of WindowSurfaces ANGLE was checking that it had opened the connection before calling XSync upon initialization. However, clients may pass in a connection and ANGLE must sync after creating a GLXWindow with the connection. This wasn't happening and was causing issues in Chrome. Bug: chromium:1172803 Change-Id: Ieb2cbfaa226f6d066030f42d8e25b1d9c34779f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757507 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 0973dd68 2021-03-31T11:11:26 Add a gl-d3d-only target for the translator Chrome's validating command decoder links statically with the ANGLE translator. This change adds a target that builds the translator with only gl and d3d support for this purpose. This will prevent chrome from linking against glslang because of the Vulkan backend. As a bonus, it will reduce the binary size of Chrome by stipping the Vulkan and Metal translation and transformation codes. Bug: angleproject:5810 Change-Id: I5673bad53817ff2aa8486622ff2c64b44c77240f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797511 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao fd3b8faf 2021-03-30T11:55:49 Vulkan: Split fragment shader from ColorAttachmentAndAllShadersRead Even though it is not common usage case that the same texture is used as attachment and texture, but aztec ruins is using it. And earlier version of gfxbench's T-Rex also running into this. So performance is still important. This CL splits the texture from fragment shader usage case out so we can have lighter barrier. Bug: angleproject:5780 Change-Id: Ifdcbfe24488fdac62826c5af6ecfbb05f87c0499 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2795269 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 259ead0d 2021-03-30T19:41:33 Enable messenger_lite trace on SwiftShader. For re-tracing. Bug: angleproject:5811 Change-Id: I1b58b33e0641cbd6a6aba10f936b76b5a9eca589 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797831 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi aac1b494 2021-03-26T21:52:30 Vulkan: Remove spam output regarding pipeline cache The warning regarding pipeline cache not having been found in the blob cache is of little utility. Between emitting it once and not at all, concensus was on the latter. Bug: angleproject:4722 Change-Id: I6d6b2758035e8c5e880b77c5f5be84772cb58a18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2788812 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chong Gu be52ca8a 2021-03-31T01:52:56 [Fuchsia] Use manifest fragments for Cr-Fuchsia binaries Bug: chromium:1180168 Change-Id: Ie3f2bd6bb79d971549b0422a9f1da7e713a54cc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2796542 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten ae937aae 2021-03-19T20:10:42 Detach separable shaders This effectively reverts the following CL: Vulkan: Don't detach separable shaders in Program::detachShader() https://chromium-review.googlesource.com/c/angle/angle/+/2084399 Bug: angleproject:3570 Bug: b/182409935 Test: ProgramPipelineTest31.DetachAndModifyShader Change-Id: Id69f732d1d4f3eea70b2de8c008452878eaf1682 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2776267 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten fe3a9ffb 2021-03-17T18:05:40 Support linking PPOs without attached Shaders The application "Command & Conquer: Rivals" uses the following pattern: // Create and link VS, save binary data glCreateProgram() glAttachShader() glLinkProgram() glGetProgramBinary() // Create and link FS, save binary data glCreateProgram() glAttachShader() glLinkProgram() glGetProgramBinary() ... // Create VS, load binary data glCreateProgram() glProgramBinary() // Create FS, load binary data glCreateProgram() glProgramBinary() ... glUseProgramStages(GL_VERTEX_SHADER_BIT) glUseProgramStages(GL_FRAGMENT_SHADER_BIT) glBindProgramPipeline() Later, when issuing the draw command that uses the PPO, the PPO must be linked with the Programs that were loaded via binary data. Those Programs don't have any Shaders attached, just linked. This CL adds support for linking Programs without attached Shaders. Bug: b/182409935 Test: ProgramPipelineTest31.ProgramBinary Change-Id: Ic5a4776e1374322665f45fbbcbf955838d093d02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770685 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 86a86a7d 2021-03-30T11:57:44 Vulkan: Temporarily use GOOGLEX instead of EXT for MSRTSS Until the driver implementation completes, use a different name for the unreleased extension (tagged with GOOGLEX instead of EXT). Bug: chromium:1088005 Change-Id: I0b948c9c82825681ab130ae3dd91026ea6cb57cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2795041 Reviewed-by: David Reveman <reveman@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Rafael Cintron 416eb8a3 2021-03-25T13:27:33 Check return value of allocateResource instead of asserting allocateResource can fail if the device has been removed or there is no more video memory. Hence, the return value needs to checked for errors instead of simply asserting that the result doesn't equal angle::Result::Stop. Bug: chromium:1192771 Change-Id: I794f288f16917ef50e45f6f3ab60ee3ebc5941d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2787249 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Tim Van Patten e3b9dbef 2021-03-17T18:01:02 Update PPO's executable when attached program is re-linked When a program that's being used by a PPO is successfully re-linked, the PPO's ProgramExecutable needs to be updated. This takes advantage of the subject/observer pattern that's already established between programs and PPOs to ensure only the PPOs that the program is a part of are updated. Bug: b/182409935 Test: ProgramPipelineTest31.ModifyAndRelinkShader Change-Id: Idcc11e7e819b4a9bef02bdd71afc8ea58111acc6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770684 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 0af8cfa7 2021-03-17T17:43:03 Reland "Save/Load missing members" This is a reland of b2e76cf58fc012b068aab4716a432bb8951e93e3 Always call saveLinkedStateInfo() so we fill in the necessary values with valid data for monolithic programs also. Original change's description: > Save/Load missing members > > There are several class/struct members that are missing when a program > is serialized/deserialized. This leads to errors when attempting to link > programs that have been deserialized. For example, when drawing with a > PPO that contains programs which were created with glProgramBinary(). > > This CL adds saving/loading the missing members. > > Bug: b/182409935 > Change-Id: I637c6cd8c174acd6da8d51433893323a32e5d7c0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770683 > Commit-Queue: Tim Van Patten <timvp@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> Bug: b/182409935 Bug: angleproject:5793 Change-Id: I07ca8f5dfed8c0a9eac3a0defb1602d2ba021c5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2782189 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny cee0bfd6 2021-03-15T14:39:30 Capture/Replay: serialize context to JSON Bug: angleproject:5715 Change-Id: Ibc6897d7567fedab4a2ba7bf8d2bd5a7e496bd4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2760325 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny d00bd105 2021-03-15T11:13:34 Capture/Replay: Enable GetTexImage tests Bug: angleproject:5646 Change-Id: Ic3ffc08edb2504b3f5cf6913e3995f8da8b7a94a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2791443 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny b88fade2 2021-02-23T22:10:55 capture/replay: impl CaptureGetRenderbufferImageANGLE_pixels Bug: angleproject:5646 Change-Id: I378a72dc944f8b8ef3d61a724eedecdbb725ee2e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2718173 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Peng Huang f16fd9ea 2021-03-25T21:33:31 Only enable framebufferMultisample with framebufferBlitANGLE Based on [1], GL_ANGLE_framebuffer_multisample requires GL_ANGLE_framebuffer_blit, so only enable framebufferMultisample with framebufferBlitANGLE. [1] https://www.khronos.org/registry/OpenGL/extensions/ANGLE/ANGLE_framebuffer_multisample.txt Bug: chromium:1192060 Change-Id: I44e8310d5a94578c0bb7e1d30a7276657965366c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2785394 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Gert Wollny 37d9a2f4 2021-02-23T21:08:01 capture/replay: implement CaptureGetTexImageANGLE_pixels Bug: angleproject:5646 Change-Id: Ia4ae0fc76eae4f9c8c133b0501eb792e794c4cfc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2718172 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9a025fd4 2021-03-13T22:48:13 Capture/Replay: add frontend feature to force capture limits Some of the limits set when FrameCapture is enabled are reflected in the serialized context. In order for capture/replay tests to pass these limits may also be needed to be enforced when replaying. Add a fronten feature enable_capture_limits for this and use it in the capture replay test script. Patch authored by gert.wollny@collabora.com. Bug: angleproject:5750 Change-Id: I3d333d22fe65c12dd5aa5f263d19a2c1568541c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2790301 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny e0b9d4f7 2021-03-15T11:25:39 libAngle: Add Json context serializer library Bug: angleproject:5715 Change-Id: I42319fe30e42d49d7e817b14c211b5ba82a94a42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2760324 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 51886f57 2021-03-17T12:41:10 context: Remove endl, since INFO already adds them. Removes redundant std::endl. Bug: angleproject:5751 Change-Id: Ia7e0d7c4550c2565a3787d433ea245db95856b30 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2773291 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 8d110222 2021-03-05T18:13:40 capture_replay_expectations: Don't skip passing. Several tests now pass the comparision and do not need to be skipped. Replace the wildcard with specific tests if only one test is failing. Bug: angleproject:5721 Change-Id: I70172965d6e0df9d2c3ac43c391c377f7da12a6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739727 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 8114ca19 2021-03-09T15:50:22 capture_gles_3_2: Set read buffer for glGetPointerv. As required by the GLES1 VertexPointerTest. Bug: angleproject:5751 Change-Id: I889d136a2f76b0b9c256ffc9176c08a8c2b03a08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2756534 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki 58502aa5 2021-03-04T20:31:31 capture_gles_1_0: Implement capture functions. Implement various capture functions as required by the GLES1 tests and GLES1 applications like Dr. Driving. Implements glMultMatrixf, glTexEnvxv, glLightxv, glLoadMatrixf and glGetFixedv. Bug: angleproject:5751 Change-Id: Id22899d755a9126f91b37eeea4619d6a03636f8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2756533 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 776c6015 2021-02-26T00:00:57 Vulkan: Call glslang at compile time With this change, the ANGLE translator immediately compiles the generated GLSL into SPIR-V with glslang and discards the source. This is in preparation for generating SPIR-V directly, by making the frontend and backend already able to digest it. This change also allows the expensive glslang calls to be parallelized, improving the following perf test by about 20%: LinkProgramBenchmark.Run/vulkan_compile_and_link_multi_thread Previously, the test was run as such in the Vulkan backend: Main Thread 1 Thread 2 Compile1 ---> Compile2 ---------------------> Translator Translator <--- <--------------------- Link glslang for shader1 glslang for shader2 Done With this change, it is run as such: Main Thread 1 Thread 2 Compile1 ---> Compile2 ---------------------> Translator Translator glslang glslang <--- <--------------------- Link Done glslang_wrapper_utils no longer interacts with glslang! A rename will follow. Bug: angleproject:4889 Change-Id: If4303e8ba0ba43b1a2f47f8c0a9133d0bee1a19a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2721195 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill eac2397b 2021-03-25T13:36:50 Trace Tests: Work around autoninja.bat change on Win. A breaking change to autoninja.bat was causing the script to fail to find 'python3.bat' in this configuration. Work around the issue by instead invoking 'ninja.exe' directly with the correct '-j' argument. Bug: angleproject:5766 Change-Id: Ie01d7e8c4caf80661f420ccfc55a8d951a4e1b4f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2787186 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya f28d63e9 2021-03-24T11:14:24 Vulkan: Enable glBlitFramebuffer for EXT_sRGB_write_control Implements support for the glBlitFramebuffer edge case in the EXT_sRGB_write_control spec, and fully exposes this extension. Bug: angleproject:5075 Test: SRGBFramebufferTest*.*Vulkan* Change-Id: I05f044abbc5cb272825d1fc4b9028217f18e63c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2785641 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Yuly Novikov 3d6cedb1 2021-03-24T18:29:02 Leave Android devices in portrait orientation after test EGLPreRotationSurfaceTest.ChangeRotationWithDraw alternates between landscape and portrait orientations. The last one needs to be portrait, since this is the default state that other tests expect. Since changing orientation takes 1 second, it's more efficient to do it in this one place instead of before every test. Bug: angleproject:5781 Change-Id: I63c2eeb77663ea7de6679385c9deb089b16e74f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2785433 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Charlie Lao 9a79ee78 2021-03-22T17:56:28 Vulkan: Add A few other *-None-04584 VVL error to skip list If app uses textureLoad to fetch a texture level and mean time renders to the same texture but with different level, this will generate vulkan validation errors. Previously we are only skipping VUID-vkCmdDraw-None-04584, but it is necessary to skip all other-04584 VVL error that stem from other draw calls as well. Aztec ruins can run into VUID-vkCmdDrawIndexed-None-04584 on QComm GPU, for example. Bug: b/175584609 Change-Id: I2da6945415975350e36f533f007ae1e2a5feddfd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2780563 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Stephen White ac8e1196 2021-03-20T11:29:50 SSBO handling rewrite. The basic idea is to replace the current SSBO output traversal by build a new AST for the Load and Store subtrees, then traverse that AST with the regular OutputHLSL traversal. This way, all the paren balancing and state management can go away. BUG: angleproject:5734 Change-Id: I14d2fecd724d7419fbc9315fad4e9202a741b03f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2773401 Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Doug Horn 525fde75 2021-03-22T14:55:21 Fix potential mod by 0 with invalid formats. If the format passed to MakeValidSize is invalid, there is potential for a mod by 0 which can result in a crash. Test: Verify no crash when format is invalid. Bug: b/182823289 Change-Id: I7f538be5d984070984f5581a5cc7ea47264109f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2780557 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Doug Horn <doughorn@google.com>
Jamie Madill 010d61f2 2021-03-24T13:08:38 Disable Framebuffer Fetch test. See issue for more details. Bug: angleproject:5792 Change-Id: I7a72dfe75a85f2bf69e3528f35c01ca69c67f8f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2785420 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya dd5705e7 2021-03-24T08:18:24 Add missing qualifier type handling in translator Translator checks tessellation shader unsized array type qualifier. sample in/sample out were missing in handling qualifier type. Bug: angleproject:5557 Test: GLSLTest_ES31.VaryingTessellationSampleInAndOut* Change-Id: I8a2f2c4c4fcc9cc88000d3b2d448ab51fb9e5d38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2776263 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Amy Liu 1fb7f648 2021-03-18T16:17:25 Compression of the data from vkGetPipelineCacheData. The size of pipelineCacheData sometimes is greater than 64k which cannot be saved because of the Android blob cache limitation (single cache data size should be < 64k). Implement the compression to store more cache data. Re-land this patch before fixing the performance regression of big pipeline cache. Bug: angleproject:4722 Change-Id: I4bc05a88334c3e7e9e945d1a0877429db1750422 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2771840 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Xiaoxuan Liu 9f796506 2021-03-23T10:58:12 Vulkan: Fix gl_SamplePosition XY-flip and rotation. In multi sample scenario, gl_SamplePosition is not handled with XY-flip and rotation, add codes for flip and rotation. Bug: angleproject:5637 Test: dEQP-GLES31.functional.shaders.multisample_interpolation. interpolate_at_offset.at_sample_position.default_framebuffer --deqp-gl-config-name=rgba8888d24s8ms4 Test: dEQP-GLES31.functional.shaders.sample_variables.sample_pos. correctness.default_framebuffer --deqp-gl-config-name=rgba8888d24s8ms4 Change-Id: I7ba2227e85c62d2ca7bf534a841a1c3a5c9beb5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2781124 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
David Reveman 3fd439c2 2021-03-23T21:40:11 [Fuchsia] Add ifndefs to vulkan_fuchsia_ext.h This allows chromium to build with upstream headers that include these extension. The old TEMP enums and structure types are used until drivers have been updated to support upstream header values. Bug: chromium:1191605 Change-Id: I25d2991204ca34956298013138af8f48e0aaefaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2782765 Commit-Queue: David Reveman <reveman@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d1462228 2021-03-09T11:25:36 Vulkan: Use VK_EXT_multisampled_render_to_single_sampled Additionally, makes the emulation path not require independentResolveNone. This was only used to select the NONE resolve mode when the attachment format doesn't have either of depth or stencil aspects, but it's ok to specify the same resolve mode for both aspects even if one aspect is missing. Bug: chromium:1088005 Change-Id: Ifc37cbf5331145179c5927853b996a0d62b871ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743666 Reviewed-by: David Reveman <reveman@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Rafael Cintron d809147f 2021-03-22T18:00:00 Enable D3D11 debug names in ANGLE release builds Previously, D3D11 debug names were only output in debug builds. This change enables them in release builds so we can debug GPU memory consumption given traces or full memory dumps. Where it made sense, existing names were shortened for brevity. A future CL can shorten the names further by removing the words texture, SRV, DSV, etc since D3D already outputs this type information. Bug: chromium:1164111 Change-Id: Iadd6222c29dd945115e844ec28ee395ce16c139f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2780564 Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Peng Huang 90e3d86c 2021-03-22T12:49:26 Disable timestamp queries for Mali-G31 and older GPUs Bug: chromium:1178333 Change-Id: I8f21cd1c8f815a5cd7344778d2d1b28710dc6763 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2779211 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Jamie Madill 2a43f43a 2021-03-23T15:35:30 Revert "Save/Load missing members" This reverts commit b2e76cf58fc012b068aab4716a432bb8951e93e3. Reason for revert: Causing MSan failures on Linux. See bug. Bug: chromium:1191344 Original change's description: > Save/Load missing members > > There are several class/struct members that are missing when a program > is serialized/deserialized. This leads to errors when attempting to link > programs that have been deserialized. For example, when drawing with a > PPO that contains programs which were created with glProgramBinary(). > > This CL adds saving/loading the missing members. > > Bug: b/182409935 > Change-Id: I637c6cd8c174acd6da8d51433893323a32e5d7c0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770683 > Commit-Queue: Tim Van Patten <timvp@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> Bug: b/182409935 Change-Id: I1209257ed6bb55ba2d01d92bd3305d5e3ad6ee28 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2780015 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 572fd801 2021-03-22T16:14:34 Vulkan: Rename Uniforms/XFB descriptor desc. The new name is more consistent with the other names. Refactoring change only. Bug: angleproject:5736 Change-Id: Idc47fef29040e3a422267795c4536163a6f8eb4e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2779953 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 48560f67 2021-03-19T16:56:44 Tests: Add Real Cricket 20 trace Test: angle_perftests --gtest_filter="*real_cricket_20*" Bug: b/183165790 Bug: angleproject:5777 Change-Id: I1f350e3ea458a599396412e2c5ca80d6c7887d73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2776554 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott c4b1f366 2021-03-22T17:56:54 Fix copyright dates of new test files per Shabi Bug: b/181711029 Change-Id: Ie619ba90f699dd8234cf185198cb6eeac9142758 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2780560 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Charlie Lao ef17c650 2021-03-08T18:50:53 Vulkan: Add test for filament gltf usage case filament gltf sample code is rendering to a level that is excluded from [base_level, max_level]. This is allowed by OpenGL spec. We are crashing right not. This CL adds tests for the exact usage pattern for filament. Bug: b/181800403 Test: FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithBeyondMaxLevel Test: FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithSubImageWithBeyondMaxLevel Test: FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithBellowBaseLevelLOD Change-Id: I69bab8bc3961bbc2dcc78ba2db3c8759f277416b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2752897 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Tim Van Patten b2e76cf5 2021-03-17T17:43:03 Save/Load missing members There are several class/struct members that are missing when a program is serialized/deserialized. This leads to errors when attempting to link programs that have been deserialized. For example, when drawing with a PPO that contains programs which were created with glProgramBinary(). This CL adds saving/loading the missing members. Bug: b/182409935 Change-Id: I637c6cd8c174acd6da8d51433893323a32e5d7c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770683 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 4386840c 2021-03-19T16:54:41 Tests: Add android log library to traces This is required in order to call __android_log_print, which can be sprinkled into the trace for debugging. Bug: b/183165790 Change-Id: I717f2ac7809172f22b7badee6f1096394a02bc14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2776553 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mohan Maiya 2be71410 2021-03-19T14:07:02 Handle inactive structure type varyings correctly Correctly handle inactive varyings of structure type when collecting transform feedback varyings. Previously, all varyings of structure type were marked as active by mistake. Bug: angleproject:5557 Test: TransformFeedbackTest.InactiveStructureVarying* Change-Id: Ica1cbce5c551cdbb97999eeac59d09a961937615 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770680 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 570970f9 2021-03-19T13:43:35 Vulkan: Handle compilation error involving gl_InvocationID We need to generate a compiler error only when the vertex index of an output variable as an l-value, in a tessellation control shader, is not the indentifier gl_InvocationID. Bug: angleproject:5557 Tests: dEQP-GLES31.functional.tessellation.shader_input_output.barrier Change-Id: Ica075b8d85916caa228f057b203ae81b27f65e2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2758915 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Charlie Lao 81432c24 2021-03-19T14:03:02 Vulkan: Rename onImageHelperRelease to finalizeImageLayout Make the API name reflect what it does. With recent changes, this get called from places that are not releasing ImageHelper object, but is try to reference the current layout. This new name makes more sense than onImageHelperRelease (at that time when this API was introduced, it was only called when ImageHelper is being released). Bug: b/175584609 Change-Id: Ie5f5fcdbd97436724d7eb016374d8b4178e7ba1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2776261 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 02acc5ee 2021-03-18T16:08:59 Vulkan: More cleanups to perf counters. This refactors the pipeline type in the ContextVk class to also use a packed enum map. It also expands the object perf counters to store both a specific and cumulative version for use in different cases. Bug: angleproject:5736 Change-Id: I6ff78e38065eb577f2b95b1d9c4f9cc31d7f325f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2774184 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop ecbd870f 2021-03-21T22:54:24 Tests: Add Avakin Life - 3D Virtual World trace Test: angle_perftest --gtest_filter="*avakin_life*" TBR: jmadill@google.com,timvp@google.com Bug: b/183344915 Bug: angleproject:5779 Change-Id: Iaf2d8341055d5b7c6f3c8a7a7a1fb3d1399fabc5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2776746 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cheryl Wei 0380f115 2021-03-18T09:56:14 Skip ResizeWindow test on Linux. ARM Linux doesn't support window surface resize. Bug: angleproject:4453 Change-Id: Ia8631f5191c2b3ebd822766cc7f92275aa62dff3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2777578 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 7fe44a53 2021-03-20T09:39:09 Vulkan: Don't acquire new BufferHelper for external buffers EXT_external_buffer spec - This extension allows the data store for an immutable buffer to be sourced from an external EGLClientBuffer, allowing sharing of EGL client buffers across APIs, across processes, and across different processing cores such as the GPU, CPU, and DSP. The intent is for a single backing memory to be reused across various processes and processors. Ensure that a glBuffer backed by external memory does not orphan the memory when glBuffer APIs like glBufferSubData or glMapBufferRangeEXT modify the glBuffer. Bug: angleproject:4380 Bug: angleproject:5073 Tests: ExternalBufferTestES31.*DoesNotCauseOrphaning*Vulkan Change-Id: I4e88f80d93ee1ba1208378121412926351d10af8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2776192 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott 90cf278c 2021-03-19T16:17:43 Add multi-thread/context test for compute shaders The "Ragnarok M: Eternal Love" game uncovered a bug where 2 contexts shared a VkCommandBuffer. The one context was used by one thread for rendering, and the other context/thread dispatched compute shaders. When the rendering thread destroyed a VkCommandBuffer, future compute dispatches crashed because the new VkCommandBuffer didn't have a compute pipeline bound. Bug: b/181711029 Change-Id: I8bc85150c1c6202e02feb84a7ccc0ad7b9c39258 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770681 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Nicolas Capens 135385a1 2021-03-19T00:09:31 Disable EGL_EXT_buffer_age for SwiftShader Vulkan Cuttlefish with SwANGLE failed to pass the android.graphics.cts. BitmapTest#testDrawingHardwareBitmapNotLeaking test, due to a timeout in dequeueBuffer (error = -110) during an EGL_BUFFER_AGE_EXT surface query. This change conservatively works around the issue by leaving EGL_EXT_buffer_age support disabled for SwiftShader. Further investigation is required to check whether this timeout can also occur with other Vulkan drivers, and if it can be addressed robustly. Bug: b/182521420 Bug: angleproject:3529 Change-Id: I54e3767e74bf922f273d8860f9f4cfc8b6589536 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2774030 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@google.com>
Charlie Lao d5bc8a27 2021-03-17T18:21:35 Vulkan: Add VUID-vkCmdDraw-None-04584 validation error to ignore list Aztec ruins is using the same texture (but different level controlled by a uniform variable) for textureLod and rendering. This triggers vulkan validation error. This CL put it in the ignore list so that it can pass. Bug: b/175584609 Change-Id: I7623e7b448514b3c12268aa5fe154f4c2f59b059 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770686 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 867411a4 2021-03-08T19:08:14 Vulkan: Track images used for both attachment and sampler This CL adds a new layout ImageLayout::ColorAttachmentAndShaderRead. We detect that the same ImageHelper object is used for both sampler and attachment and will pick this new layout instead of ColorAttachment. Bug: b/175584609 Change-Id: I2089f59d4dc1ad4de7edab0e067797adcfa9b020 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2749479 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 5163cd0c 2021-03-18T18:17:11 Add isYUV to angle::Format In preparation for adding support for more YUV formats add an 'isYUV' field that tracks whether a format is a YUV format. For now it is set if the format string contains the substring 'PLANE'. This is not the case for all known YUV formats but the condition can be expanded when required. Bug: angleproject:5773 Change-Id: Icb574037dc8105584931835dab0b60e8bafa3262 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2774762 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Charlie Lao da437f26 2021-03-08T19:08:14 Vulkan: Defer color image layout changes at endRenderPass time Right now color render target's image's layout change are done at beginRenderPass time. The problem is that the layout also depends on whether texture is also being used as a sampler or not. That information is not known when renderpass starts. We did some special treatment for depth stencil attachment so that its layout determination is deferred until endRenderPass time. This CL expands that same mechanism to color attachment as well. Right now the color attachment will still pick the same ImageLayout::ColorAttachment layout since the logic to detect it is also used for texture sampling is not there yet. Bug: b/175584609 Change-Id: Id7486174d475f894461578b31d0d40fdd90e808a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2744121 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Geoff Lang 0a80f2e1 2021-03-15T16:56:08 D3D: Mark images dirty after recovering from storage When images are recovered from storage due to resizing storage, they were marked as clean and not always re-copied to the new storage. Bug: angleproject:5757 Bug: chromium:1188854 Change-Id: Idd11025820433ab74ff769cd9508efcec4575c32 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2763282 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cody Northrop 9b3b5733 2021-03-17T15:38:42 Tests: Add Ragnarok M: Eternal Love trace Test: angle_perftests --gtest_filter="*ragnarok_m_eternal_love*" TBR: timvp@google.com,jmadill@google.com Bug: b/181800519 Bug: angleproject:5772 Change-Id: I1dcde486e909f7c2b5d59132e5f673c7e8ab1d01 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2774264 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Qin Jiajia ba0bd785 2021-03-15T16:00:33 Fix the assert error and inbalence parens for SSBO This PR strengthens below two cases: 1. Support calculate unsized array size for any type. Previously, it reported error when the type was a structure. 2. Correctly add the right paren for store function when any load/length functions are nested in it. Bug: angleproject:5734 Change-Id: I3428fa35f1481275e1d193094ceddb011f747cf1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2762655 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
Jamie Madill b717952e 2021-03-18T10:39:34 Vulkan: Use packed enum map for descriptor set index. This simplifies a lot of the data structure indexing in the program executable class. Also renames the "DriverUniforms" and "InternalShader" index into a single "Internal" index. Bug: angleproject:5736 Change-Id: I2a51d8b14d5b16b438dbe636f77b11bbc045ba9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2773321 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 1b08cfcb 2021-03-18T10:01:54 Vulkan: Clean up shader buffer DS allocation. We were using repeated code patterns in several places. Bug: angleproject:5736 Change-Id: I206783dd792c3b0f9d38027235445ec600a60d88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2773320 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao 378b3261 2021-03-08T18:50:53 Vulkan: Move CommandBufferHelper::reset() closer to constructor This is a mechanical change. Similar to constructor, the reset() function is doing initialization of data members. Move them next to each other helps adding a new data members which requires modifications to both functions. Bug: b/175584609 Change-Id: I11386677bc5c9838104025d6a4ecf6f2b58fa92c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2745842 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 1f1b4ffe 2021-03-08T11:44:28 Vulkan: Test render and sample the same texture but with different LOD This simulates aztec ruin's usage. This works properly on native OpenGL but generates validation error on vulkan backend and renders incorrect as well. Bug: b/175584609 Test: FramebufferTest_ES3.SampleFromAttachedTextureWithDifferentLOD Change-Id: I402c205a1b625669cae29ee201dddd144e0dfbde Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743797 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
James Darpinian bb7c1442 2021-03-17T10:17:31 Fix immutable texture base level validation Jeff's new rendering feedback loop test (https://github.com/KhronosGroup/WebGL/pull/3221) found a couple of issues with texture base level validation. For immutable textures the base level is clamped to the valid range, so setting an out of range base level does not make an immutable texture sampler incomplete, and we need to use the clamped value when checking for rendering feedback loops. Bug: angleproject:5768 Change-Id: Ie065709efd736f2cf75d4f980e8ac27999f80142 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2767901 Commit-Queue: James Darpinian <jdarpinian@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cody Northrop f6eccc20 2021-03-12T09:17:27 Tests: Add June's Journey trace Test: angle_perftests --gtest_filter="*junes_journey*" TBR: jmadill@google.com,timvp@google.com Bug: b/182566407 Bug: angleproject:5752 Change-Id: I083507949c9bc16bf701028a678540df9a3531dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2755840 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 716b2cba 2021-03-12T14:46:53 Use bitset masks for active shader buffers. This switches the tracking for the uniform, shader storage, and atomic counter buffers to use bitset masks to determine where there are active buffers. This will make iterating these buffer sets faster. Also renames the limit for atomic counter buffers to be consistent with the other buffer types. Also applies the implementation limit to atomic counter buffer bindings. This fixes out-of-bounds access on some Linux platforms that expose a large number of bindings. Bug: angleproject:5736 Change-Id: Ice801645697592d1dda6aebf0cb69767594cc0c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757509 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Mohan Maiya 81dcf078 2021-03-08T11:21:31 Reland "Vulkan: Support EXT_sRGB_write_control" This is a reland of 6073af536cf627742696823edc82c9b0a481a8bc with 2 changes - 1. Don't enable the extension even in nonConformant mode 2. Don't enable VK_KHR_image_format_list for swiftshader Original change's description: > Vulkan: Support EXT_sRGB_write_control > > Implement support for EXT_sRGB_write_control. This extension > requires VK_KHR_image_format_list to be supported. > > The spec requires this functionality to work with glBlitFramebuffer > as well but support for that will be added in a follow up change. > As such, this extension is only exposed in non-conformant mode. > > Bug: angleproject:5075 > Tests: SRGBFramebufferTest.*Vulkan* > Change-Id: I59b38f6cd810a3d0d67ec29f4f19c25f65f70862 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617243 > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:5075 Change-Id: I8e149d196a39c3c4769bfa8690792f3c53831299 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2762647 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi 629f66ce 2021-03-16T00:34:16 Vulkan: Fix missing dirty bits for compute In the following scenario: - Dispatch - Flush outside render pass commands - Dispatch The second dispatch doesn't rebind the pipeline because it assumes it's recording to the same primary command buffer. This assumption is broken if another thread causes a submission before the second dispatch. It's also broken if using Vulkan secondary command buffers. Bug: b/181711029 Change-Id: I5335be95208f41724cf8e9c60ae5322ad91840fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2763143 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xiaoxuan Liu 9a839732 2021-03-03T17:56:07 Reland "Add support for Linux GPU info with Vulkan backend" This is a reland of 5c09c1f882f15e1a77577f1a62d861355aac90a4 Extra change: Add new ANGLE_HAS_VULKAN_SYSTEM_INFO compile variable for GetSystemInfoVulkan() in linux platform. Original change's description: > Add support for Linux GPU info with Vulkan backend > > 1. Add support for Linux GPU info with vulkan backend: for > dev board without PCI support, try vulkan backend to get > GPU info. > 2. Fix getVulkanInstance() issue when loading non-exist lib: > return NULL instance if open lib failed. > > Bug: angleproject:5717 > Change-Id: I03c11da25a8787496d098f6c9d6b4c53701383e4 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2734375 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5717 Change-Id: Iaaab8f512b6ec1d524d7ebb3b4252fec3cfe7dc3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739097 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
John Plate 65586746 2021-03-10T19:02:12 add cl entry points loader Bug: angleproject:5743 Change-Id: I61791f412e8dbc54878cd3791519ad1c4ee33399 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2749595 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: John Plate <jplate@google.com>
Tim Van Patten 522d609b 2021-03-16T11:30:32 Fix download_restricted_traces.py :: run_command() run_command() was using the undefined variable 'cmd', rather than the pass in parameter 'command'. Bug: angleproject:5210 Change-Id: I5e80869b18b717835217ad14a562bb4d223d52c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2765005 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Peng Huang c99e405c 2021-03-12T12:39:27 Disable timestamp queries for some GPUs on Android Copy some workaround from chromium. Bug: chromium:702980,chromium:477514,chromium:462553,chromium:1178333 Change-Id: I9acb6ef49c91193a9e6bb03c6fc5eabf336cba9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2756728 Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Tim Van Patten 687d3153 2021-03-15T16:55:26 Skip plants_vs_zombies_2 on Windows+AMD Step "angle_restricted_trace_gold_tests on ATI GPU on Windows on Windows-10" failing on builder "Win10 FYI x64 Release (AMD RX 5500 XT)" Bug: chromium:1187752 Change-Id: Ia48dd06c3e3aca66ff3194fc945e3c235fde85df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2762645 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
James Clarke 06d194e2 2021-01-10T14:29:44 Reland "Add support for building in Flutter Windows UWP configuration" This is a reland of 68ac4e43aa67c4bac9df639d80079648ea86dbe9 Original change's description: > Add support for building in Flutter Windows UWP configuration > > Bug: angleproject:5527 > Change-Id: Idf5a4cbb6f84b24fa2448157cab1b6a3bce4d8be > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2620580 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5527 Change-Id: I3d5c3a35d73e3946ae40c779e76e0343039bf660 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2693639 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Austin Eng <enga@chromium.org>
Ian Elliott cd881848 2021-03-12T15:26:36 Actually skip a flaky/timeout test Also, create SwANGLE KHR 3.1 expectations section Bug: angleproject:5755 Change-Id: I902b3d3de0c3c4dd190d36c6b5f2def33420efc7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757125 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tim Van Patten bbed8813 2021-03-05T17:40:27 Create GN arg to enable non-conformant features The GN arg angle_expose_non_conformant_extensions_and_versions is being added to control exposeNonConformantExtensionsAndVersions, which enables non-conformant features and extensions. In particular, this is being done to enable EXT_texture_buffer on devices that don't support all of the necessary formats since many Android games rely on this extension, such as "Special Forces Group 2", "Fortnite", and "PUBG". # Enables non-conformant extensions and features angle_expose_non_conformant_extensions_and_versions = false Users/vendors can now toggle the value with a GN arg, rather than a code change, to make it easier to test the conformant version of ANGLE with CTS, dEQP, etc. and/or app-compatibility. Bug: angleproject:5592 Change-Id: Icbf18b48a2751c03e277ae964e1ec278a43324cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2740643 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Ian Elliott 191bee56 2021-03-12T13:44:19 Suppress flaky test on win-swangle This test times out. It takes a while on my underpowered Windows laptop. Bug: angleproject:5755 Change-Id: Id112c170a5e57c8e765dd94277ce0cf2801fae6d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757118 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Pujun Lun ca5dbef0 2021-03-11T00:40:39 Micro-optimization for loading 3-channel images. This reduced the total time spent in LoadToNative3To4 by 10% in our micro-benchmark. Test: passed the CQ dry run. Bug: b/182513949 Change-Id: I5d1b1975f64e5b08bd0e65abc8f94fe62ef54321 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2752347 Commit-Queue: Pujun Lun <lunpujun@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 4f6d4d6f 2021-03-12T10:32:57 Suppress flaky EGL resize failure on Linux Bug: angleproject:5753 Change-Id: I0bf716b09d329e9881bf5ca146ef6839d898a1b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757107 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 89d2a96a 2021-03-09T18:37:57 Vulkan: Add test for UBO descriptor allocations. This performance counter test verifies that re-binding the same two buffers repeatedly doesn't allocate new descriptor sets. Currently the test fails because we don't cache descriptor sets for UBOs. Covers equivalent code patterns in Asphalt 9. Reorganizes the perf counters collected for the program objects. Now they are per-frame reset instead of cumulative. This tracking is now consistent for the different counter types. In the future we can add cumulative tracking for all per-object and global perf counters. Bug: angleproject:5736 Change-Id: I23d04b6453e38af1cf4af7274d24382d136efad3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2746176 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jason Macnak 41a2672f 2020-09-03T11:05:54 Vulkan: Use optimal tiling for AHB When running Android on certain GPUs, there are problems creating Vulkan image siblings of AHardwareBuffers because it's currently assumed that the underlying driver can create linear tiling images that have input attachment usage, which isn't supported on NVIDIA for example, resulting in failure to create the image siblings. Yet, we don't currently take advantage of linear elsewhere in ANGLE. To maintain maximum compatibility on Android for such drivers, use optimal tiling for image siblings. Note that while we have switched to optimal unconditionally in this path versus linear, it's possible that previously compatible linear usages might become uncompatible after switching to optimal. However, from what we've seen on NVIDIA/AMD/Intel/Samsung GPUs so far, formats generally have more possible usages in optimal tiling versus linear tiling: http://vulkan.gpuinfo.org/displayreport.php?id=10804#formats_linear http://vulkan.gpuinfo.org/displayreport.php?id=10804#formats_optimal http://vulkan.gpuinfo.org/displayreport.php?id=10807#formats_linear http://vulkan.gpuinfo.org/displayreport.php?id=10807#formats_optimal http://vulkan.gpuinfo.org/displayreport.php?id=10809#formats_linear http://vulkan.gpuinfo.org/displayreport.php?id=10809#formats_optimal http://vulkan.gpuinfo.org/displayreport.php?id=10787#formats_linear http://vulkan.gpuinfo.org/displayreport.php?id=10787#formats_optimal Also, as an aside, in terms of what's generally expected from the Vulkan ICD in Android when determining AHB compatibility, if the vendor wants to declare a particular combinatino of format/tiling/usage/etc as not supported AHB-wise, it's up to the ICD vendor to zero out bits in supportedHandleTypes in the vkGetPhysicalDeviceImageFormatProperties2 query: ``` * [VUID-VkImageCreateInfo-pNext-00990](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VUID-VkImageCreateInfo-pNext-00990) If the pNext chain includes a VkExternalMemoryImageCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2 with format, imageType, tiling, usage, and flags equal to those in this structure, and with a VkPhysicalDeviceExternalImageFormatInfo structure included in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypes ``` Bug: angleproject:5709 Change-Id: I67b65ab830505a9df4665ccea8e2ba1ca409e0b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2729243 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Jeff Vigil cef5b717 2021-03-11T09:22:33 EGL: Add attribute check in ValidateQueryContext Implementation of EGL_IMG_context_priority was missing attribute check in ValidateQueryContext Add test case. Test: angle_end2end_test --gtest_filter=EGLCreateContextAttribsTest Bug: angleproject:5746 Change-Id: Idf5df29fcb343d969a031675b6c5985a9be0a705 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2752891 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 225e1952 2021-03-11T17:05:43 Tests: Add Plants vs. Zombies 2 trace Test: angle_perftests --gtest_filter="*plants_vs_zombies_2*" TBR: jmadill@google.com,timvp@google.com Bug: b/182512556 Bug: angleproject:5749 Change-Id: Ib6c279f49ac95964f34e430d311a49600928166b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2752898 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop d98e436a 2021-03-11T13:32:07 Tests: Add Lineage M trace Test: angle_perftests --gtest_filter="*lineage_m*" TBR: jmadill@google.com,timvp@google.com Bug: b/182491024 Bug: angleproject:5748 Change-Id: I901b68eef1ddac98ce6e1a4640e2b034d1027a45 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2752894 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi cb5441ed 2021-03-11T16:15:01 Vulkan: Don't let glslang link shaders The translator outputs intermediate shaders for Vulkan that are later to be modified by the SPIR-V transformer. glslang has no business trying to link them. Bug: angleproject:5740 Change-Id: I9ae418f54b91312b5fd0ef794acbc46a40261a0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2753096 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 50f411e1 2021-03-09T17:20:29 Capture/Replay: Support DrawElementsBaseVertex Test: Genshin Impact MEC Bug: b/182307835 Bug: b/181794064 Change-Id: Iedaecb6aa7ab7af189534f620549727f60b69ee8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2746657 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Ian Elliott c5a7da47 2021-03-11T13:12:04 Suppress flaky MultithreadingTest on Win/Swangle MultithreadingTest.MultiContextDrawWithSwapBuffers/ES3_Vulkan_SwiftShader_NoVirtual Bug: angleproject:5099 Change-Id: I12ab4a6fb7fff8d6bc7358e6017cb10e46362b88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2752893 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Yuly Novikov 7c7cf3e5 2021-03-11T14:27:51 Skip dEQP tests flakily timing out on SwANGLE Bug: chromium:1173237 Change-Id: I93810cb7cbaae847848eae0dc050c2c00df956af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2753144 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
John Plate 8507b105 2021-03-11T11:30:39 Fix CL_EVENT macro Bug: angleproject:5745 Change-Id: Icbfab0d0bd4b1510b98d5ed746f4d3ddfa5ec36e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2752746 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev 7c02cfee 2021-03-11T19:01:13 Avoid undefined behavior in BPTCCompressedTextureTest Bug: angleproject:5360, angleproject:5731 Change-Id: Ia883d2d319d7ce4659f4e1e99b5eccf0e01a45e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2752747 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev b7fc9518 2021-03-08T03:55:36 Do not expose emulated ETC1 textures to WebGL Add a new "emulatedEtc1" limitation. Bug: chromium:1048244 Change-Id: Ia04746773db3ad75781a8adfda988d36bd2c57f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2718865 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev fcd7affb 2021-03-07T17:23:33 Remove unused code from ValidateES2CopyTexImageParameters Compressed formats are rejected earlier with ValidateCopyTexImageParametersBase Bug: angleproject:5731 Change-Id: I7809140af84f2c565008e211adf0f998a0e57e91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2741580 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Ian Elliott 92db3c68 2021-03-10T15:09:15 Vulkan: Disable rotating damage rectangles on Android This fixes visual problems with Android games that use eglSwapBuffersWithDamageKHR(). In 90/270-degree cases, the damage rectangles are being double-rotated, leaving them 90-degrees out of alignment with the window. On Android, VK_KHR_incremental_present is built on top of the same platform code as eglSwapBuffersWithDamageKHR(). The platform code rotates all damage rectangles (assuming they are application-provided). Therefore, ANGLE should not also pre-rotate damage rectangles. Test: Black Desert Mobile Test: Grand Theft Auto: San Andreas Test: Extreme Car Driving Simulator Bug: b/181796746 Change-Id: I6510e7540bb00afc75863e8ae8a9ea3841d1641d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2744984 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Lubosz Sarnecki 36770173 2021-03-10T15:23:03 capture_replay_tests: Don't shadow subprocess import. Rename local variable, so using subprocess.Timeout does not result in an exception. This patch fixes the test timeout counter. Bug: angleproject:5742 Change-Id: Ib6991bc58df6ea653f765dfe9f6117add75b85db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2748339 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 9265d1e2 2021-03-05T17:54:59 frame_capture_utils: Do not serialize 0 bindings. Since we are only interested in the difference to non-default states, bindings with a zero ID should not be serialized. This resolves the comparision error in the GetTexLevelParameterTest.* tests. The test now do not need to be skipped. Bug: angleproject:5645 Change-Id: I887bc22b52a201c467c00c42f6ddb3b38895a7c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739726 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>