src/tests


Log

Author Commit Date CI Message
Yuxin Hu 0fefbe83 2022-09-14T15:20:00 Vulkan: Do not cache the FramebufferHelper with no attachment If two FBOs don't have any attachments, and their GL_FRAMEBUFFER_DEFAULT_WIDTH and GL_FRAMEBUFFER_DEFAULT_HEIGHT are different, there is no difference in their cache key (vk::FramebufferDesc). Therefore the Vulkan backend is not able to distinguish between the two FBOs. This can create issues when we 1. create first FBO with a smaller size, renders to it 2. create second FBO with a bigger size, renders to it The second renderpass will use the FBO created in the first renderpass, because it managed to retrieve the first FBO from the cache with the same cachekey. This triggers the vulkan validation error: VUID-VkRenderPassBeginInfo-pNext-02853, saying the render area exceeds the framebuffer size. This CL fixed it by not adding the FramebufferHelper to the cache, if it doesn't have any attachment. These framebufferHelpers are cheap, without cache there should not be much performance drop. Bug: angleproject:3579 Bug: angleproject:7351 Bug: angleproject:7666 Bug: b/246334302 Change-Id: Iddecafddb042bd16401f983f9ee1a021b845d8bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891543 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi d19d9bfe 2022-09-19T13:06:40 Roll VK-GL-CTS from 6dee9965e173 to 7bbdc916a414 (16 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/6dee9965e173..7bbdc916a414 2022-09-16 gleese@broadcom.com Tests for VK_EXT_depth_clamp_zero_one 2022-09-16 gleese@broadcom.com Update to the latest vulkan-docs version 2022-09-16 quic_mnetsch@quicinc.com Merge "Merge vk-gl-cts/vulkan-cts-1.3.3 into vk-gl-cts/main" into main 2022-09-16 ziga@lunarg.com Create VkShaderModule on the correct device 2022-09-16 gary.sweet@broadcom.com Fix dEQP-VK.synchronization.global_priority_transition.* 2022-09-16 zzoon@igalia.com Fix to ensure that a particular image with that format can be sampled via vkGetPhysicalDeviceImageFormatProperties. 2022-09-16 piotr.byszewski@mobica.com Interact FDM with imageless FB and secondary CB 2022-09-16 piotr.byszewski@mobica.com Add test for pervertex correctness 2022-09-16 marcin.zajac@mobica.com pipelineStageCreationFeedbackCount = 0 case 2022-09-16 jarred.davies@imgtec.com Add tests for VK_EXT_pipeline_robustness 2022-09-16 ziga@lunarg.com Add tests with dynamic states that discard all fragments 2022-09-16 chip@holochip.com Use Mach semaphores on Darwin 2022-09-16 marcin.zajac@mobica.com robustness1_vertex_access for VKSC 2022-09-16 piotr.byszewski@mobica.com Fix vkDeviceFeatures2.inl 2022-09-16 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/main 2022-09-15 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.8 into vk-gl-cts/main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC abdolrashidi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:7673 Change-Id: Ic70f0c9da85a493c50e23662a37abb7b1d6c529c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904783 Reviewed-by: Shahbaz Youssefi <syoussefi@google.com> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny ffd662e9 2022-08-01T10:49:19 capture/replay: Add MEC support to capture-replay script Running the capture/replay script in MEC mode is done by adding a parameter --mec <n> with n being the start frame of the capturing. Exactly one frame will be captured. Bug: angleproject:7564 Change-Id: I93153356d75712ba81ca26ccfc7f40785ba3e4ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3819845 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Chris Dalton 04f46f39 2022-09-12T10:15:16 Reland "Generate stubs for ANGLE_shader_pixel_local_storage" This is a reland of commit 8208e8a234d05b413d79e7a93b6a428adea41b33 In Take 2 we omit the GLenum groups PixelLocalLoadOpANGLE and PixelLocalInternalFormatANGLE. We can add these back once the extension is published and we can update Khronos's gl.xml, or else once we figure out how to make this work without updating the Khronos gl.xml. Original change's description: > Generate stubs for ANGLE_shader_pixel_local_storage > > Bug: angleproject:7279 > Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972 > Commit-Queue: Chris Dalton <chris@rive.app> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7279 Change-Id: I02f42c1cfc685ed95164744108e0c185d3a7fefb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900491 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Greg Thompson 8c62c5bd 2022-09-15T08:27:39 [fuchsia] Remove use_cfv1 from uses of test() GN template The default is now to not include CFv1 manifests in test packages, so it is no longer necessary for tests to individually opt-out of including them. Bug: chromium:1256503 Change-Id: Ib6c5425c584cadfccefef530b00f651a2878ea3b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898670 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Greg Thompson <grt@chromium.org>
Chris Dalton 8c45e3c4 2022-09-15T01:07:47 Revert "Generate stubs for ANGLE_shader_pixel_local_storage" This reverts commit 8208e8a234d05b413d79e7a93b6a428adea41b33. Reason for revert: Compile failures Original change's description: > Generate stubs for ANGLE_shader_pixel_local_storage > > Bug: angleproject:7279 > Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972 > Commit-Queue: Chris Dalton <chris@rive.app> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7279 Change-Id: Ic9a232f9d722b42e615de3827ce118616f3acc71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3897425 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Chris Dalton <chris@rive.app> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app>
Charlie Lao 3657b0ca 2022-09-14T11:24:00 Vulkan: Add end2end test for fbo with no attachment Add a test for fbo with no attachment and then change the fbo size. There is a bug in vulkan backend that discovered with deqp tests, and this CL creates a end2end test for that. Bug: b/246334302 Change-Id: I9b70afb958cda02140bf1007b71095ee3f922e38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3893015 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Chris Dalton 8208e8a2 2022-09-12T10:15:16 Generate stubs for ANGLE_shader_pixel_local_storage Bug: angleproject:7279 Change-Id: I41548ad35c236b67372a12fecaa9a1b9c556d232 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891972 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 18f90857 2022-09-09T11:28:00 Vulkan: Use DontCare if attachment is invalidated If an attachment is invalidated, there is no need to preserve the old content. NONE means old content is still preserved, DontCare means discard old content. In this case we do want to discard instead of preserve old content. Bug: b/243711628 Change-Id: I242ac86db6993574b5627d61f7185d155beec0ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888938 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Chris Dalton 7822c9df 2022-09-10T14:17:21 Delete FramebufferPixelLocalClearValue{f,i,ui}vANGLE Instead, BeginPixelLocalStorageANGLE just accepts a buffer containing clear values. In WebGL, the clear data can be an array of Numbers. This makes the API smaller, simpler, and less stateful and bug-prone. Bug: angleproject:7279 Change-Id: I8b3fa4ae7f20ba3ad72beb01f275acf50eee803c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888960 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi ee3b5d05 2022-09-13T22:52:03 GLES1/Vulkan: Enable LineRaster tests Should be passing now with VK_EXT_line_rasterization Bug: angleproject:3862 Change-Id: Ib2d31e5ca931d6f9c78cd3f9f0aee93809bcaf5d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891545 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mohan Maiya d375547c 2022-08-12T15:54:39 Do not link program pipeline in glUseProgramStages 1. The commit 3a9f18f135fe82 caused a link to occur everytime glUseProgramStages is called. This is redundant since the program pipeline can be linked just before usage, thus allowing for multiple stages to be bound before linking the executable. 2. Mark PPO as a dirty object and link the PPO in dirty object handler 3. Early return if the same program is being bound to the same stage of the pipeline. 4. Added ProgramPipelineObjectBenchmark perf test that switches programs before a draw and observed following data - 1. vulkan profile - 1. wall_time before patch - 102000 ns 2. wall_time after patch - 38000 ns 2. vulkan_null profile - 1. wall_time before patch - 125000 ns 2. wall_time after patch - 52000 ns Bug: angleproject:5102 Bug: angleproject:6566 Test: ContextNoErrorPPOTest31.*Vulkan Test: ProgramPipelineTest31.*Vulkan Test: ProgramPipelineObjectBenchmark* Change-Id: Idbc2fcb4875bbd040e9ec847eb2a8f96f287173c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3830170 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Mohan Maiya a2f00721 2022-06-19T15:17:22 Vulkan: Extend bounding box when pruning updates Add support for extending the bounding box when there are updates that enclose the current bounding box. Bug: angleproject:4691 Bug: angleproject:7389 Test: Texture2DArrayTestES3.TextureArrayPruneSupersededUpdates* Change-Id: Ie7e3cc28f17213361b1be407dbb2d984865fe6bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3712897 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Yuly Novikov ec1ce582 2022-09-13T15:52:16 Skip end2end tests failing on iOS Bulk suppression of all failures discovered after the initial setup of an iOS bot. Bug: angleproject:7653 Change-Id: I068f01dbab368e73ffc8854224d7a8357e0446d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3892016 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 34332f85 2022-09-13T13:54:14 Fix UninstantiatedParameterizedTestSuite errors on iOS. Some test suites are instantiated only on ES31 or Vulkan, which iOS doesn't support. Bug: angleproject:5417 Change-Id: Iea202934edb3804993dabd38f2629d4992eb2095 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3892013 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Lubosz Sarnecki 8fb77b5a 2022-09-06T14:33:40 gles1/FogTest: Add test that combines blending and fog. Add a test that draws a texture with a shadow effect by using fog and blending functionality. This fails on all ANGLE configs like ES1_Vulkan and ES1_OpenGL but succeeds on native drivers using ES1_EGL. Test: angle_end2end_tests --gtest_filter="FogBlendTest.ShadowEffect/*" Bug: angleproject:7598 Change-Id: I454735c3257e6986a6b1af1bc993a609e776419b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3876222 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Patrick To fc51d98f 2022-08-11T03:29:16 Add Direct Composition offset to gl_FragCoord DComp usually gives us an offset at (0, 0), but this is not always the case. It is valid for DComp to give us an offset into a texture atlas, for example with some video overlays. If we do have an offset, gl_FragCoord must also be offset to point to the correct pixel in the surface. Bug: chromium:1269749 Change-Id: I3ca39860d176bcf9f1d520d781cfed2d1d1ad1dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827081 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Cody Northrop 543c450e 2022-09-09T14:37:39 Tests: Add Botworld Adventure trace Test: angle_perftests --gtest_filter="*botworld_adventure*" Bug: angleproject:7645 Change-Id: Icbe7a21538537ea1c2ca4161b5d56bae43adcdf4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888778 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 92519c7f 2022-09-08T13:25:22 Tests: Add Zombie Smasher trace This is a GLES1 title. Test: angle_perftests --gtest_filter="*zombie_smasher*" Bug: angleproject:7644 Change-Id: I31aedeed7b16d4a53a91fe652a908178befef901 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3885355 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Sean Risser 19117567 2022-09-07T19:21:56 Avoid general python exceptions in retrace script Keyboard interrupts are handled as exceptions in Python, so unguarded except statements can prevent a program from properly terminating. Bug: angleproject:7639 Change-Id: I54ee754a40457b924eda0a6c8074f575263528ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856650 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Sean Risser <srisser@google.com>
Gregg Tavares 61e905af 2022-09-07T15:47:26 Move out of bounds buffer access tests under correct extension A few tests in RobustResourceInitTest are testing for out of bounds values but RobustResourceInitTest is only checking GL_ANGLE_robust_resource_initialization which does not do anything for out of bounds access. I moved them to the RobustBufferAccessBehaviorTest. Bug: angleproject:7638 Change-Id: If542ce2f1711e4b1980bf52cabfa3cff71480536 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3880833 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Gregg Tavares 526e8e64 2022-09-07T17:44:56 Fix UNSYNCHRONIZED glMapBufferRange test The test makes a buffer and puts in [red, red, red, zero, zero, zero]. It then maps the zero, zero, zero portion with glMapBufferRange(...GL_MAP_UNSYNCHRONIZED_BIT...). It writes green over the zeros, and unmaps. But, because GL_MAP_UNSYNCHRONIZED_BIT was passed in there is no guarnatee the original values have been put in the buffer yet. If they have not then the greens will be over-written. Bug: angleproject:7640 Change-Id: I7d3bf54afb01bca3cc440f998ae1fad0ce1e5e8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881166 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang f99e255b 2022-09-02T10:19:46 GL: Unbind buffers after mapping them. Qualcomm drivers generate errors if a bound array buffer is mapped during a draw call even if it is not used by the draw. Bug: chromium:1345777 Change-Id: I0639caf5d74c8cbdc7245324fdcb136bd3d51b86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3871333 Reviewed-by: Peng Huang <penghuang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Constantine Shablya b9df95ff 2022-09-06T18:19:32 Add option to enable System EGL on all test configs Introduce angle_test_enable_system_egl build option to enable ES1_EGL, ESL2_EGL and ES3_EGL on all test instantiation macros. This allows GLES 1.x tests to run on native drivers. Test: angle_end2end_tests --gtest_filter="*/ES1_EGL" Bug: angleproject:6201 Change-Id: I6981eb9e99f0cdbd030319f014a7b371ced7e1e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812046 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 2deae29e 2022-09-06T16:34:18 Change xvfb screen to 3120x3120. Support upstream added in https://crrev.com/c/3865972 Maximum DrawSurfaceWidth and DrawSurfaceHeight from src/tests/restricted_traces/*/*.json. They're never both at 3120 but due to portrait/landscape orientation it's easies to just bump up both. Bug: angleproject:7620 Change-Id: I4a24eed8898d2cd4f65b7c2dbacb7bd1ffd4ba35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877784 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Solti f5b3ecd4 2022-09-06T17:02:50 fix perf test result path ==== Overview ==== Previously for bug 6353, we wanted to enable this extra logging at ANGLERenderTest level so that all ANGLERenderTest tests can benefit from the extra logging. The design was assuming ANGLERenderTest can have any arbitrary naming, and then just include the trace name in the name. However this assumption is wrong because the name affects the path of some perf data that is monitored by a dashboard. Therefore, if we don't want to change the dashboard, then ANGLERenderTest naming is constrained. This CL changes how the trace names are printed in logcat for ANGLERenderTest. Instead of passing down from TracePerfTest via the name, the new design is just printing the mName, mBackend, and the mStory since those variables contain the required information to serve the purpose of bug 6353. ==== Tests ==== [test 1] - use this build args: http://go/paste/4625489225318400 - ```autoninja -C out/Android && ./out/Android/angle_perftests --gtest_filter="*angry_birds*" --verbose``` - Wait for the test to complete, then run ```adb logcat -d | grep "running test"``` - 4 tests were executed: ``` solti@solti:~/angle$ adb logcat -d | grep "running test" 09-06 18:34:13.491 13614 13644 I ANGLE : running test name: "TracePerf", backend: "_vulkan", story: "angry_birds_2_1500" 09-06 18:34:23.958 13614 13644 I ANGLE : running test name: "TracePerf", backend: "_native", story: "angry_birds_2_1500" 09-06 18:34:45.177 13614 13644 I ANGLE : running test name: "TracePerf", backend: "_vulkan", story: "angry_birds_2_launch" 09-06 18:35:11.136 13614 13644 I ANGLE : running test name: "TracePerf", backend: "_native", story: "angry_birds_2_launch" solti@solti:~/angle$ ``` [test 2] - follow http://docs/document/d/1W3E7e-YcR5noim_poM0f7Dc0W8AdQDbJ2tFSPXgjpH0? resourcekey=0-VmGDLI3x0q4-sdpQ0n8GSA - setup out/AndroidPerformance - the build args: http://go/paste/4862801771233280 - the build cmd: autoninja -C out/AndroidPerformance angle_perftests - run cmd: ./out/AndroidPerformance/angle_perftests --gtest_filter="*angry_birds*" --verbose --local-output --verbose-output --shard-timeout 100000 --max-steps-performed 1 - then, run cmd: ```adb logcat -d | grep "running test"``` - confirmed the test names are printed: ``` solti@solti:~/angle$ adb logcat -d | grep "running test" 09-06 18:58:50.216 14592 14621 I ANGLE : running test name: "TracePerf", backend: "_vulkan", story: "angry_birds_2_1500" 09-06 18:58:51.143 14592 14621 I ANGLE : running test name: "TracePerf", backend: "_native", story: "angry_birds_2_1500" 09-06 18:58:51.467 14592 14621 I ANGLE : running test name: "TracePerf", backend: "_vulkan", story: "angry_birds_2_launch" 09-06 18:58:51.907 14592 14621 I ANGLE : running test name: "TracePerf", backend: "_native", story: "angry_birds_2_launch" solti@solti:~/angle$ ``` Bug: angleproject:6353 Bug: angleproject:7627 Change-Id: I02ad4396674fc01e9d10e474660a9dfac0d31edc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3873118 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Solti Ho <solti@google.com>
Shahbaz Youssefi 1d04539f 2022-09-06T15:20:32 Fix xfb tests rendering points Some xfb tests render points and verify a coordinate away from the points is unchanged as a means to break the render pass. Due to lack of output to gl_PointSize, these tests are flaky on SwiftShader. Bug: angleproject:7625 Change-Id: I7347516bb755ace87d57df3467c59055f28f1d69 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3877783 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 9c17232a 2022-09-02T16:05:48 Vulkan: Make robustness affect all of share group Since contexts in a share group can share their program, if any context in the share group is robust, programs in all contexts in the share group need to be created with robustness in mind. This fixes the situation when the programs are created after a robust context has been created. However, if programs are created first, then a robust context is added to a share group, there remains a bug where the old programs aren't recreated to have robust behavior. Bug: angleproject:7629 Change-Id: I4922091962a32ca75a6107343df0cd87e5e9592d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3872506 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Eddie Hatfield 3960e63b 2022-08-09T14:02:59 Infra: Enable angle_deqp_gl46_tests on SwiftShader This change disables the WGL frontend by default on Windows when building ANGLE for desktop GL. This is because the WGL frontend is not yet fully implemented and it causes some of the trace tests to fail. The WGL frontend should be enabled by default on windows when more of its functionality gets implemented. Test: angle_deqp_gl46_tests --use-angle=swiftshader Bug: angleproject:7566 Bug: angleproject:7628 Change-Id: I69c695eb56d3858f715eeb86d28cc805e25c60eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858142 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jason Macnak 80f6a63a 2021-11-11T10:40:26 Tests external image uploads with colorspace Repros of android.hardware.nativehardware.cts.AHardwareBufferNativeTests#SingleLayer_ColorTest_GpuSampledImageCanBeSampled_R8G8B8A8_UNORM_sRGB android.hardware.nativehardware.cts.AHardwareBufferNativeTests#SingleLayer_ColorTest_GpuSampledImageCanBeSampled_R8G8B8X8_UNORM_sRGB These two pass: - RGBAAHBUploadData - RGBXAHBUploadData but these two fail: - RGBAAHBUploadDataColorspace - RGBXAHBUploadDataColorspace Bug: b/205995945 Test: newly added tests Change-Id: I1a27be43ae73b08b406f8f60fd6eec3dc28d8229 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276713 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Jonah Ryan-Davis e8b6cd21 2022-09-01T14:10:43 Skip VulkanPerformanceCounterTest.EndXfbAfterRenderPassClosed This test flakes on Windows/Swiftshader. Bug: angleproject:7625 Change-Id: I79837aa66cb8637231bd112337be8a39f8938541 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3868937 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 61d5340d 2022-09-01T13:55:07 Skip EmulateCopyTexImage2DFromRenderbuffers tests on Win/Intel There are flaky end2end tests with this workaround enabled. The workaround is only meant to be enabled on iOS so we can skip it on Windows. Bug: angleproject:7624 Change-Id: If16c83fe6d7c922e412dc1a763a698479e07a930 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3868936 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 38a38b8d 2022-09-01T17:10:39 Revert "EndXfbAfterRenderPassClosed expectation (0,0) -> (w/2,h/2)" This reverts commit 2dc1c609dea184e5e51a8136df71ae14f4481f52. Reason for revert: Doesn't fix the issue Original change's description: > EndXfbAfterRenderPassClosed expectation (0,0) -> (w/2,h/2) > > Bug: None > Change-Id: I6a8006be39ff8b8208004f533157f27da8e7fe24 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863143 > Auto-Submit: Roman Lavrov <romanl@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: None Change-Id: Ifbb8f12798c9b5bf1f77f997302114263eceaf75 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3868935 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Roman Lavrov 2dc1c609 2022-08-29T15:31:56 EndXfbAfterRenderPassClosed expectation (0,0) -> (w/2,h/2) Bug: None Change-Id: I6a8006be39ff8b8208004f533157f27da8e7fe24 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863143 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuxin Hu f2f17bad 2022-08-31T17:40:22 Vulkan: Fix Framebuffer Fetch Test Failure If permanentlySwitchToFramebufferFetchMode is enabled, mIsInFramebufferFetchMode will remain true. If we switch from a non-framebuffer fetch program to a framebuffer fetch program, the condition if (mIsInFramebufferFetchMode != hasFramebufferFetch) doesn't hold, and we will miss setting the dirty bit in OnColorAccessChange, and miss updating the color attachment resourceAccess value. This causes test failure when running the test FramebufferFetchES31.DrawNonFetchDrawFetchInStorageBuffer_Coherent. The color attachment resourceAccess remains unused after the first draw call that uses a program which doesn't read/write from the framebuffer color attachment. The second draw call uses a program that needs to read from the framebuffer color attachment, however, since the color attachment access value is unused, it will use LoadOpNone, making the color attachment value not availble for the shader program to read from. This change fixes the failure by setting the bit dirty whenever the program uses framebuffer fetch mode, given the condition that feature permanetlySwitchToFramebufferFetchMode is enabled. Bug: angleproject:7583 Change-Id: I240381766d75f6e73ea9c20503b2344cc816cbc7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3864127 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Chris Dalton d0fad24c 2022-08-30T23:24:06 Add noncoherent PLS tests Coherent pixel local storage is so widely supported now that we have a testing gap on the noncoherent version. This change adds backend features to disable the extensions we use for fragment synchronization and tests that disable them. Bug: angleproject:7279 Change-Id: If71a1a1016922cb9e3b68024dd2616483c700395 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3866163 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao c6ad305c 2022-08-25T11:53:46 Vulkan: No depth load/store if depthFunc==ALWAYS/NEVER && mask==FALSE If depthFunc is set to always or never pass with depthMask disabled, and the entire render pass is drawing with that state, then there is no need to load or store depth value. Bug: b/243711628 Change-Id: I71d470bda49abc48a4a6e20895b7e056c33fa33a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858143 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 7428369a 2022-08-29T17:59:38 Vulkan: Use macros for load/store Op check Use macro instead of inline function for result check so that the correct line number gets print out for the failed check. Bug: b/243711628 Change-Id: I1141f6a63fd01bb9fe0cf5c06b81b378e8acc08e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3864347 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 00411e2c 2022-08-25T00:00:00 Support provoking vertex state query When ANGLE_provoking_vertex is enabled, glGetIntegerv should accept GL_PROVOKING_VERTEX parameter name. Bug: angleproject:2829 Change-Id: I6316de2c6b4cdbf4365df3ffb88f75c4b095f99c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858264 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Yuxin Hu 70c434b2 2022-08-29T17:09:23 Check max shader storage blocks support in test If the shader source code uses shader storage buffer objects, we need to check the corresponding GL_MAX_*_SHADER_STORAGE_BLOCKS is at least of size 1. Bug: angleproject:7583 Change-Id: I7f0e537e4dcfca8414cccb0088be8d34735633d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863111 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 64f41972 2022-08-25T11:16:23 Use canonical gl.xml and update enum to string function. This replaces our copy of gl.xml with the upstream canonical copy. Note that one patch is required before we can remove ANGLE's copy: https://github.com/KhronosGroup/OpenGL-Registry/pull/538 Because the upstream version uses a new method of enum groups, we also update our enum-to-string generator to use the new groups. This new code includes many more enums and groups in the mapping. Bug: angleproject:6461 Change-Id: I1c0ab44c36afce8db04c9661b377bbe5762c913e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856649 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Sunny Sachanandani 32072905 2022-08-25T15:17:13 d3d11: Support rendering to GL_TEXTURE_2D target for YUV images YUV D3D11 texture plane EGLImages can be bound to TEXTURE_EXTERNAL_OES, but don't support rendering because ExternalImageSibling11::IsYUV() returns true. While it might appear that IsYUV() should return true for YUV D3D11 textures, the EGLImage siblings are actually for individual planes which are R/RG 8/16 and they can indeed be bound as render targets if we just return false for IsYUV(). This CL makes IsYUV() return false and adds a test for rendering to YUV EGLImages. Bug: angleproject:7610 Change-Id: I6c95a9521448e83a53153c1efaca70bd73e49818 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856660 Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov f18b6335 2022-08-29T11:53:01 Replace std::this_thread::get_id() use with a unique thread id. std::this_thread::get_id() gets recycled. It's pthread_self() under the hood on Linux and Android which gets recycled, for example when one thread terminates and another one starts it is likely to return the same value. Bug: angleproject:7602 Change-Id: I83d818bc17ead5cce8bce7f7d88fc1c7c0fa860c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855041 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 9fb05a88 2022-08-26T22:26:33 Vulkan: SPIR-V Gen: Remove suppression of passing tests Some tests were suppressed during development. Try enabling them again. Bug: angleproject:6210 Change-Id: I7b52307a26fb9351773a591901a9c5bbb4703466 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3859411 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Solti b9df3551 2022-08-15T17:42:53 update CopyTextureCHROMIUM to match Chromium Overview: This CL makes the validation of *CopyTextureCHROMIUM* and *CopySubTextureCHROMIUM* in ANGLE behave consistently with CHROMIUM. The new behavior is: ``` INVALID_OPERATION is generated on ES 2.0 if <sourceId> refers to an external texture (OES_EGL_image_external), <destId> refers to a texture with an integer-type internal format, and the underlying context does not support OES_EGL_image_external_essl3. ``` Tests: ===== CopyTextureCHROMIUM ===== add a test in ES 2.0 to test the API with the error case. ===== CopySubTextureCHROMIUM ===== add a test in ES 3.0 to test the error case. in ES 2.0, the error case cannot happen because "glTexImage2D()" doesn't support integer formats - ran all CopyTextureTest on gLinux: ```autoninja -C out/Debug && xvfb-run out/Debug/angle_end2end_tests --gtest_filter=*CopyTextureTest* --verbose``` - ran all CopyTextureTest on Android test phone: ```autoninja -C out/Android && out/Android/angle_end2end_tests --gtest_filter=*CopyTextureTest* --verbose``` Bug: angleproject:4228 Change-Id: I1cb77c72750add5f399013d3d30eed7acf8d0a50 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826166 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 4b33633a 2022-08-26T16:16:50 Capture/Replay: Delete binary data in FinishReplay via callback Delete callback fixes b/179188489 as delete[] will get called from the same module where allocation happens. When decompress/delete callbacks not provided, new[] and delete[] are called from the fixture. AFAICT, gBinaryData == nullptr every time, even with a single test and --gtest_repeat=N, so we never delete the uncompressed data. When running multiple tests locally, I see RES usage grow significantly on Linux which this CL fixes. I don't think this matters for bot runs as we run tests one by one there. Bug: b/179188489 Change-Id: Iee3bccb9d6d72c315c4358b70ec9c3c0ac963258 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858185 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Yuly Novikov cd0f642e 2022-08-29T17:25:33 Fix loading end2end test expectations on iOS Need to be packed and found in the application bundle. Bug: angleproject:5417 Change-Id: Iaf84ced0de6674a807aa747e71dbbf2715bbd6fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3860831 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Eddie Hatfield ba4b6913 2022-08-23T09:34:27 Fix data race in BlobCache * Re-enable shader cache feature * Improve BlobCache thread-safety test * Improve EGLProgramCacheControlTest to not check the size of the BlobCache, since the shader cache interferes with this. * Include the arguments to ConstructCompiler() and Compile() in the key hash for the shader cache. Bug: angleproject:7036 Change-Id: Ied4e11f9160552f2f9358d99b5656315239ba856 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3851161 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
Yuxin Hu ac2aeccd 2022-08-25T17:43:43 Check GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS in test If the vertex shader uses shader storage buffer objects, we need to check GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS is at least of size 1. Bug: angleproject:7185 Change-Id: I98d83f9f0cc30e92fdcaee15541fdde96652b38e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3858144 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 2d48a370 2022-08-26T11:11:19 Vulkan: Support passthrough of colorspace attributes On Android, the EGL loader supports and implements the necessary functionality for the following colorspace extensions - 1. EGL_EXT_gl_colorspace_display_p3 2. EGL_EXT_gl_colorspace_display_p3_linear 3. EGL_EXT_gl_colorspace_display_p3_passthrough 4. EGL_EXT_gl_colorspace_scrgb 5. EGL_EXT_gl_colorspace_scrgb_linear Add support for "EGL_ANGLE_colorspace_attribute_passthrough" extension that allows vendors that support wide color gamut to passthrough colorspace attribute values to the underlying Vulkan implementation to be used during VkImage creation. Bug: angleproject:7319 Test: PbufferColorspaceTest.CreateSurfaceWithColorspace* Change-Id: Ibd78bb5fea4ede394f4dc5027c1d4a730746f2ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3855048 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 6ba8582b 2022-08-05T16:16:01 Add a fix on all backends for images as function arguments The ESSL spec has a bug with images as function arguments. The recommended workaround is to inline functions that accept image arguments. Bug: angleproject:7484 Change-Id: I8fc0826f330c68150de5c3d1758c10c3e37bbf04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3813050 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 320bfde0 2022-08-22T00:00:00 Hide emulated ETC2/EAC formats from WebGL contexts In addition to not exposing the dedicated ANGLE-specific extension name, do not add these formats to the internal formats table. Bug: angleproject:7601 Change-Id: I2e3fdd99129823b8092bfa35cb95023ae5008edd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3853591 Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Chris Dalton 51de3837 2022-07-28T00:05:54 Enable PLS on D3D Bug: angleproject:7279 Change-Id: Ide498e6ebadc5cd567dc64cd1efed52e777aa32e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3790473 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Stephen White <senorblanco@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a35728bd 2022-08-25T12:13:39 Skip several Multithreading Tests on SwiftShader. Because any of the tests could flakily hang, it's better that we skip the group entirely until we have the ability to add flaky retries as test expectations. Bug: angleproject:6261 Change-Id: I59d686d983ff5123a2c8cb40f3c1d808c611b20e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856651 Auto-Submit: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cody Northrop 28600f60 2022-08-21T21:51:19 Test: Add Antutu Refinery trace Test: angle_perftests --gtest_filter="*antutu_refinery*" Bug: angleproject:7590 Change-Id: I967c72a4109baf64cda1afc3d27407286253ea35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844790 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Eddie Hatfield 5317b778 2022-08-23T08:58:04 Enable desktop GLSL for desktop GL frontend Bug: angleproject:7533 Change-Id: I91bd0c217880b05683b86449a9211b9844575ebc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3850471 Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuly Novikov f7274de2 2022-08-24T14:26:50 Skip EGLMultiContextTest.ReuseUnterminatedDisplay on Pixel 4 GLES Since it causes this combination of tests to crash there: EGLMultiContextTest.ReuseUnterminatedDisplay/ES3_1_OpenGLES ComputeShaderTest.ImageLoadMipmapSlice/ES3_1_OpenGLES CopyTexImageTest.CopyTexSubImageFromCubeMap/ES2_OpenGLES_EmulateCopyTexImage2DFromRenderbuffers Also tentatively skip on Win Intel Vulkan due to similar flakiness in: Texture2DTest.CopySubImageFloat_RGB_RGB/ES2_OpenGL_EmulateCopyTexImage2DFromRenderbuffers Texture2DTest.TexImageUnpackRowLengthPBO/ES2_OpenGL_EmulateCopyTexImage2DFromRenderbuffers Texture2DTest.TexImageWithLuminancePBO/ES2_OpenGL_EmulateCopyTexImage2DFromRenderbuffers Texture2DTest.TexImageWithRGBA4444PBO/ES2_OpenGL_EmulateCopyTexImage2DFromRenderbuffers Texture2DTest.TexStorage/ES2_OpenGL_EmulateCopyTexImage2DFromRenderbuffers Bug: angleproject:7602 Change-Id: I5be9e23bfabe6be345caaca3c5ca9bed19112903 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3854603 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Mohan Maiya aa2a558e 2022-08-23T09:47:02 Vulkan: Add support for setting timestamp surface attribute On Android the EGL wrapper handles most of the functionality required by EGL_ANDROID_get_frame_timestamps. However if for some reason the swapchain is recreated, the timestamp state would be lost resulting in stuttering. Introduce EGL_ANGLE_timestamp_surface_attribute extension that adds support for toggling the EGL_TIMESTAMPS_ANDROID attribute of a surface. Cache this state and recreate the swapchain accordingly. Bug: angleproject:7489 Test: EGLSurfaceTest.TimestampSurfaceAttribute* Test: dEQP-EGL.functional.get_frame_timestamps* Change-Id: I3660f7137c006d904164d243a682a4ff520eabd8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753396 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Yuxin Hu f10625d3 2022-08-11T14:32:45 Enable Robustness Extension on ARM These dEQP tests failed due to Robustness was disabled: dEQP-GLES31.functional.debug.negative_coverage.callbacks.buffer#readn_pixels dEQP-GLES31.functional.debug.negative_coverage.log.buffer#readn_pixels dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer#readn_pixels dEQP-GLES31.functional.debug.error_filters#case_12 dEQP-GLES31.functional.debug.error_groups#case_12 Re-enable the Robustness Extension on ARM to check if mali driver supports GL_EXT_robustness extension now. If it does we can enable the robustness feature in ANGLE so that the above dEQP tests can pass. Bug: angleproject:7351 Bug: angleproject:4823 Bug: angleproject:2330 Change-Id: Ifce20e410607f2d4b6b3b55235081fef690c983c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828441 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 13456bfc 2022-08-23T13:33:13 Propagate device type in another eglGetPlatformDisplayEXT call. Same as https://crrev.com/c/3759712 for another test. Also use !platformSupportsMultithreading() to skip tests. However, need to skip separately from capture/replay where multi-threaded tests seem to run into issues. Bug: angleproject:7494 Bug: angleproject:7423 Change-Id: Ief87b4163aedd26b440987540c06ceb7ae8a575b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3851166 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Yiwei Zhang 41c01134 2022-08-23T06:00:04 Extend the image test to verify RGBX AHB and GL_RGB upload This changes updates the RGBXAHBImportThenUpload test to do texture upload to the right side and adds a new helper to validate the render result on both sides to check the upload respects the GL_RGB channels. Bug: b/238460927 Test: ImageTestES3.RGBXAHBImportThenUpload Change-Id: I61723e7db99dab78b7828b783bb7cdf062f39ad9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3849462 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya b32091b4 2022-08-17T16:00:02 Vulkan: Bug fix related to pre-rotation code Account for possiblity that the draw and read surfaces are different when querying pre-rotation information. When updating mCurrentRotationDrawFramebuffer and mCurrentRotationReadFramebuffer, make sure to query pre-rotation information from current draw and read surfaces. Bug: angleproject:7581 Test: FramebufferTest_ES3.BlitWithDifferentPreRotations* Change-Id: Ibe7a2450907e53aa5c33e13cff00059ab2f6602e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3836491 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 952d6e8f 2022-08-21T21:51:03 Vulkan: Workaround ARM driver bug with dynamic vertex strides According to ARM, vkCmdBindVertexBuffers2EXT is broken when more than one attribute binding is involved. In this change, the vertex strides dynamic state is avoided altogether on ARM. Bug: fuchsia:107106 Change-Id: Ie41fc07037083214d2dc99e4ed062485384911c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844640 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Eddie Hatfield bd1484f3 2022-08-22T13:53:35 Temporarily disable shader caching feature This will be re-enabled when the BlobCache test flakes are resolved. Bug: angleproject:7036 Change-Id: I38829ffcd5869679bf65017475e8a10d165f369b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3846403 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com>
angle-autoroll a8ffbef8 2022-08-19T21:02:14 Roll VK-GL-CTS from 5a93cd60f33b to 435ebaff9214 (5 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/5a93cd60f33b..435ebaff9214 2022-08-19 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/main 2022-08-18 piotr.byszewski@mobica.com Add coverage for MaxAtomicCounterBufferSize 2022-08-18 piotr.byszewski@mobica.com Check that image*Shadow are not reserved keywords 2022-08-18 piotr.byszewski@mobica.com Fix vkGetPhysicalDeviceProperties2 query 2022-08-18 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.3.3 into vk-gl-cts/main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-bots+autoroll-info@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:7592 Change-Id: I87bd89dd6ad63e2fa28ae87cdd4a91555d56e203 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3842857 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov f30cfd18 2022-08-16T16:50:33 Perf and gold tests detect test SKIPs from json results. Make angle_test_util.RunTestSuite() gets and returns json results (using --isolated-script-test-output). perf tests has an additional special case (filed https://anglebug.com/7578): Previously when metrics were missing it was assumed that this was due to tests being skipped - which seems to currently be the case except for the special case of GLMark2Benchmark* tests. Those produce .fps/.score metrics instead of the metrics expected by this script. This CL keeps those tests running (once) but then marks them as SKIP in test results when no metrics are found (which is the behavior before this CL; it might actually make more sense to count this as PASS because everything matches our expectations). We're still running them once, so if they FAIL we'll get notified. gold tests: Use json results file instead of checking for '[ SKIPPED ]' in stdout. Bug: angleproject:7299 Bug: angleproject:7578 Change-Id: Ia751784ad1aa94dc855c8b58ebfe5ba3e06e462f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826167 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 31ac3fef 2022-08-21T21:30:53 Lift suppression of passing test Bug fixed in https://chromium-review.googlesource.com/c/angle/angle/+/3835168, but a suppression for the test landed in the meantime Bug: angleproject:7583 Change-Id: I14a3e59a6270bfee8288dd733938a18cbf491c20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3844638 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 9a258281 2022-08-17T17:47:22 Fix submit-count perf counter test on ARM On ARM, the preferSubmitAtFBOBoundary feature causes extra submissions that need to be taken into account. Bug: chromium:1337538 Change-Id: Id545ee3e65fc943aff51ea3721e9c19bc0afd4a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3835168 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuly Novikov eb8488e1 2022-08-18T15:43:49 Skip end2end failures on Pixel 6 Android 13 TP1A.220624.021 Bug: angleproject:7583 Change-Id: Ib9a44c222207b6f2c70733738f1c440c6d6a7ce8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3838857 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Eddie Hatfield 955adb77 2022-08-12T10:14:48 Cache compiled shader By storing the compiled shader in the blob cache, the time to recompile the same shader is reduced. Based on work by <hckim.kim@samsung.com> Bug: angleproject:7036 Change-Id: I884ae40e715c49a9ccd12903012e8327811e3557 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808235 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuxin Hu 2965f81b 2022-08-16T15:26:22 Remove suppression of previously crashed deqp test dEQP-GLES31.functional.shaders.linkage.es31.tessellation.varying.rules#internal_different_precision was fixed in a recent check-in at https://crrev.com/c/3780874. Remove the suppression in the test expectation file. Bug: angleproject:6908 Change-Id: I41025c2555e0c21ff8faaa888842201d26499205 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828139 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 7a87e90d 2022-07-16T11:39:08 An inactive but alive thread shouldn't prevent cleanup 1. Acquire EGL global lock before thread cleanup and remove all clean up related mutexes 2. Mark contexts that are not current as invalid during terminate 3. During thread exit, if there are other active threads, terminate with TerminateReason::InternalCleanup. This gives an opportunity for well behaved threads to cleanup up invalid objects. Bug: angleproject:6723 Bug: angleproject:6798 Test: EGLContextSharingTestNoFixture.InactiveThreadDoesntPreventCleanup* Change-Id: I418e5f8b486d3d309bd58c4cfb04b7dc1149ffc1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3768667 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Roman Lavrov 6a8bd801 2022-08-17T11:18:31 Add process_angle_perf_results.py to perf tests data. analyze step doesn't currently trigger angle_perftests on changes to process_angle_perf_results.py Example: https://crrev.com/c/3835162/2 https://ci.chromium.org/ui/p/angle/builders/try/linux-test/7791/overview (so I had to https://crrev.com/c/3835162/3) Bug: chromium:1346781 Change-Id: Id991facedd48036a5c072d910aeb8488712516f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3835163 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 213a1ee6 2022-08-16T12:44:35 Vulkan: Enable VK_EXT_primitives_generated_query Added a test to make sure PGQ works with indirect draws too. Bug: angleproject:5430 Change-Id: Ic91e11906ca34c4f9a50f3442709e544f7f6744c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826165 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Solti a216cfe8 2022-08-08T21:05:00 Adding angle_perftests test case names in logcat Overview: In logcat, we want to know which test is being executed. The CL 1. makes *ANGLEPerfTest* print the test name 2. wire the trace names in *TracePerfTest* as test names to *ANGLEPerfTest* Local Test: ==== Test 1 ==== - use this build args: http://go/paste/5111738277036032 - ```autoninja -C out/Android && ./out/Android/angle_perftests --gtest_filter="*angry_birds*" --verbose``` - Wait for the test to complete, then run ```adb logcat -d | grep running``` - 4 tests were executed: ``` solti@solti:~/angle$ adb logcat -d | grep running 08-11 18:13:49.757 7690 7721 I ANGLE : running test: TracePerf_Run/vulkan_angry_birds_2_1500 08-11 18:13:59.914 7690 7721 I ANGLE : running test: TracePerf_Run/native_angry_birds_2_1500 08-11 18:14:21.265 7690 7721 I ANGLE : running test: TracePerf_Run/vulkan_angry_birds_2_launch 08-11 18:14:48.030 7690 7721 I ANGLE : running test: TracePerf_Run/native_angry_birds_2_launch 08-11 18:14:58.296 1525 1525 E JobScheduler.Quota: <0>com.google.android.apps.docs has 0 EJ quota without running anything 08-11 18:14:58.296 1525 1525 E JobScheduler.Quota: <0>com.google.android.apps.docs has 0 EJ quota without running anything 08-11 18:14:58.297 1525 1635 E JobScheduler.Quota: <0>com.google.android.apps.docs has 0 EJ quota without running anything solti@solti:~/angle$ ``` ==== Test 2 ==== - follow http://docs/document/d/1W3E7e-YcR5noim_poM0f7Dc0W8AdQDbJ2tFSPXgjpH0? resourcekey=0-VmGDLI3x0q4-sdpQ0n8GSA - setup out/AndroidPerformance - run cmd: ./out/AndroidPerformance/angle_perftests --gtest_filter="*angry_birds*" --verbose --local-output --verbose-output --shard-timeout 100000 --max-steps-performed 1 - then, run cmd: ```adb logcat -d | grep running``` - confirmed the test names are printed ``` solti@solti:~/angle$ adb logcat -d | grep running 08-11 18:22:50.698 8496 8525 I ANGLE : running test: TracePerf_Run/vulkan_angry_birds_2_1500 08-11 18:22:51.599 8496 8525 I ANGLE : running test: TracePerf_Run/native_angry_birds_2_1500 08-11 18:22:51.917 8496 8525 I ANGLE : running test: TracePerf_Run/vulkan_angry_birds_2_launch 08-11 18:22:52.362 8496 8525 I ANGLE : running test: TracePerf_Run/native_angry_birds_2_launch solti@solti:~/angle$ ``` ==== Test 3 ==== - build a Linux build, using the args: http://go/paste/5953043785842688 - run the same test with cmd: xvfb-run ./out/Debug/angle_perftests --gtest_filter="*angry_birds*" --verbose | grep "running test" - confirmed the message is printed: http://go/paste/5800151735074816 Bug: angleproject:6353 Change-Id: I6118a75f54b1648923cb5fe541633d7dd52b20bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3817409 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Roman Lavrov 7c66d77d 2022-08-16T15:06:29 Avoid logging None introduced in https://crrev.com/c/3831885 Currently prints: Test 5/97: DrawCallPerfBenchmark.Run/gles_null_uniform: None Wasn't printing anything before, so this CL goes back to that. Bug: angleproject:7299 Change-Id: I8270129958a93e5c3fbb6cac321fe7e2396a6376 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3834068 Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
Roman Lavrov c5efd2b5 2022-08-15T16:20:25 Improve Ctrl-c handling. 1. Restore original handlers after subprocess terminates. Otherwise the installed handlers persist and will swallow sigint outside of subprocess invocations. 2. Raise KeyboardInterrupt when subprocesses terminate to interrupt the script itself. run_perf_tests.py allows for some subprocess failures (--max-errors, with non-zero default). This results in ctrl-c interrupting subprocesses but the script just marks the test as FAIL and keeps running. Bug: angleproject:7299 Change-Id: I2917008baa389491c7591596fc14ee139fa6417e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3831887 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov 8878366f 2022-08-15T11:51:00 Refactor to reduce main loop complexity. Bug: angleproject:7299 Change-Id: I157e84b7a6718d59eecb00471d4ec7ae5b3317cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3831885 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 2089943b 2022-08-13T21:48:33 Tests: Add Lumino City trace Test: angle_perftests --gtest_filter="*lumino_city*" Bug: angleproject:7571 Change-Id: I206b965712b8f833874069bbcec0c93fc7ee5087 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3829135 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 64c652d7 2022-08-12T18:14:39 Use stdout instead of (default) stderr in logging.StreamHandler Currently logging output appears before stdout on bots, makes logs so confusing as subprocess logs get out of order with logs from python. Using StreamHandler(stdout) seems to be the common practice in other python scripts in code search. Note: subprocess's stderr is redirected to stdout: https://crsrc.org/c/third_party/angle/src/tests/py_utils/angle_test_util.py;drc=2de8bb42a9ef93dfafe476e7dc81643285fa7ef1;l=92 Bug: angleproject:7299 Change-Id: I825f16d9c479f33a280d8fdbafb8297cda0c18b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827957 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Faye Zhang 4c941149 2022-08-12T11:42:07 External Texture Support In MEC Bug: angleproject:4964 Change-Id: I5cfbadf515a30fb20d75b2d745fdecdafa12268f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812378 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Faye Zhang <ffz@google.com> Commit-Queue: Faye Zhang <ffz@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi 02d79c32 2022-08-12T11:21:04 Skip kotor trace on Swiftshader due to flakiness After changing the driver uniforms to push constants, the kotor trace became flaky on Linux/Swiftshader. In this CL, the flaky test is skipped. Bug: angleproject:7565 Change-Id: Ia3deb1344ce2dfb8cec443d197b0f95788a12599 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3829907 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Kyle Piddington 58392791 2022-04-07T16:14:12 Translator: Fix crashes with monomorphizing loops Monomorphize functions crashes when trying to deep-copy a while loop, and a continue statement. Null check these values before performing a copy, as this is still valid AST syntax. Bug: angleproject:7190 Change-Id: I822c0aa062ed844f86aa2b603899d73cbd48255e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3573079 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Chris Dalton 4a636cdd 2022-07-20T22:44:30 Require all PLS formats to consume exactly 4 bytes of storage D3D 11.0 UAVs only support R32_FLOAT, R32_UINT, R32_SINT formats. EXT_shader_pixel_local_storage explicitly states that all PLS variables consume exactly 4 bytes. ESSL images can only have both read and write access if their format is r32f, r32i, r32ui. (We were able to circumvent this via aliasing, but it was a huge source of bugs.) There is a large precedent for only supporting 4 bytes of storage in the capabilities we use for PLS, so this CL removes support for all PLS storage formats that are not 4 bytes. It also implements an "R32" mode for PLS, that does manual packing and unpacking of r32* image formats. If the application wants larger formats, it can always define multiple PLS planes and piece them together. Next up we ought to be able to support rg16* types with more packing/unpacking. With aliasing gone, and with a bit of tweaking, the PLS tests now pass on the Pixel 4 GLES bot. Bug: angleproject:7279 Bug: angleproject:7388 Bug: angleproject:7524 Bug: angleproject:7527 Change-Id: I6b8f62c2428ade6cb5413e33360d734e55dda0eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3782579 Reviewed-by: Stephen White <senorblanco@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Charlie Lao badfeecd 2022-08-10T14:38:43 Vulkan: Destroy fb1 should not affect fb2 with same attachments If two FBOs has the same attachments. they will share the same VkFramebuffers. Destroy one fbo should not cause trouble for the other fbo. Bug: chromium:1351170 Change-Id: I032da8cc12eb8556c3e325c8fd7a3de9974ae909 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3824302 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Chris Dalton fa3d7d5c 2022-08-05T00:57:40 Make PLS coherent on Vulkan Uses the VK_EXT_fragment_shader_interlock extension to make the shader image implementation of PLS coherent on Vulkan. This extension is supported on AMD, Apple, NVIDIA, and Intel. Bug: angleproject:7279 Change-Id: Ic0253eb20932eb6be0b1f433ba454e48b57be2f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3813816 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Kyle Piddington aef9603f 2022-08-02T18:30:08 Separate Struct declarations earlier Metal translator backend asserts with compound struct definitions. Move SeparateCompoundStructDeclarations before SeparateCompoundExpressions. This change does revert some changes for angleproject:6386, but the tests fixed there continue to pass. Bug: angleproject:6489 Change-Id: I6adc606ac0b14453eb5e3e90f6501bf02c2d2768 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3806616 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Gregg Tavares <gman@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Peng Huang 4cab7f38 2022-08-10T20:33:07 Fix EGL_ANGLE_program_cache_control for eglCreateContext EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE is an attribute for creating EGL context, but ANGLE reads it from mAttributeMap which is not the attribs passed to eglCreateContext(). Bug: chromium:1336126 Change-Id: Id3ea1955f927a7e051285c79b590dcf1f11f22ed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3823621 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 87ed2c9d 2022-08-11T11:19:17 TestSuiteTest: Generate more unique result file names. Speculative fix for flaky runs of TestSuiteTest. Flakes appear to read the results of other tests suggesting rand is not unique enough to protect against tests generating the same results file. Bug: chromium:1352134 Change-Id: Icadf64c557e23e6d87fd18aa60aa48373ecec9fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827144 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Roman Lavrov 3d0faa02 2022-08-09T16:48:06 Remove workaround affecting --list-tests --gtest_filter=X. One of the multiple workarounds added in https://crrev.com/c/3062240. It makes `--list-tests --gtest_filter=X` behave as if it was just `--list-tests`. Not sure why this was necessary, bots appear to work without it?.. Could be something that changed since that CL? Bug: angleproject:7508 Change-Id: I9988add40ddf3168e00cea2739e5a9209f633161 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3821374 Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov 6d0452b7 2022-08-10T13:34:29 Fix ANGLE_HAS_HISTOGRAMS following crrev.com/c/3817602 Bug: angleproject:7299 Change-Id: I1d6f97e61dfdbea04009cc08a17344a59e438e51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3823618 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 493b5aff 2022-08-09T14:57:24 Vulkan: Workaround ARM bug with stencil write mask Bug: angleproject:7556 Change-Id: I0aa17c178071cc15d8ee15f700b0c4932819c72a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3821367 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Roman Lavrov dc82ff15 2022-08-08T16:06:13 Add config angle_maybe_has_histograms to angle_perftests_common. ANGLE_HAS_HISTOGRAMS wasn't consistently defined in compilation targets. I was working on a prototype and ran into crashes due to an inline function in TestSuite (where this class is used) getting invalid offsets in some cases due to this :-O Shabi: """ angle_source_set makes something the equivalent of a temporary .a, so objects are not recompiled for every target that links to it """ Also change ANGLE_HAS_HISTOGRAMS to =1 or =0 as Yuly suggested so that we can check if it's defined in the header to avoid inconsistency. Bug: angleproject:7299 Change-Id: I907184a6ca2bc673f5bffc473b584d78625a11c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3817602 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Geoff Lang 408c5a56 2022-08-09T09:07:41 Mark FormatPrintTest as potentially uninstantiated. Vulkan is not an available backend on iOS. Bug: angleproject:5417 Change-Id: I92afff13bc10a1b6a3faa51a1620fd250972cab0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3819902 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 2c351351 2022-08-07T22:31:40 Vulkan: Don't break render pass on read-only buffer updates When uploading to a buffer that is in use by the GPU, we either acquire a new buffer and copy the contents over, or stage the update and do a GPU copy. Ignoring all other conditions, this decision was made based on whether a small or large part of the buffer is being updated; small updates where staged. However, if the current render pass uses the buffer in read-only mode, the staged update would break it (to apply the update). In this change, this situation is detected and the acquire-and-update path is chosen even for small updates. Bug: angleproject:7534 Change-Id: Ie2c0989449dcc7d03695a003cf6f353920f8fb65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812566 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Greg Thompson 52719c9f 2022-08-05T14:23:24 [fuchsia] Migrate angle_end2end_tests to component framework v2. Bug: chromium:1256503 Change-Id: I28d76dfa721fd6a65e029833050140c487e8006d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812043 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Juan Muraira <jpmuraira@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Greg Thompson <grt@chromium.org>
Shahbaz Youssefi 6f80f0f0 2022-08-06T02:29:19 Translator: Clean up the compile flag passing interface Historically, compile flags were sent to the translator as a bitmask. Recently, we were getting close to running out of bits. Additionally, direct-to-metal work had started to introduce constants to be passed to the translator, which were misplaced in ShBuiltInResources and Caps. Recent work on Pixel Local Storage adds even more constants, aggravating the situation. In this change, the interface to passing compile flags is reworked. A struct is passed (instead of a bitmask) that has one bit for each flag. This can be indefinitely extended. Additionally, the constants needed by metal and PLS are also placed in this struct. In turn, the backends can set these options directly, and don't have to hack them into Caps to further get hacked into ShBuiltInResources. Bug: angleproject:7559 Change-Id: If93f1e1b8818ad3a0ac708ab04ab93b4b397d114 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812562 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8474a95e 2022-08-05T22:15:04 Translator: Don't validate structs on non-root nodes Struct validation needs to know about structs that may have been defined outside the scope of the node, so this validation (similar to variable and function call validation) is disabled when validation a subtree of the AST. Bug: angleproject:7531 Bug: b/239207278 Change-Id: Id6dcee041a40f09f0c36a9ef3bfc238433b69c58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812047 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov 2de8bb42 2022-08-03T18:15:52 Converge run wrappers into angle_test_util.RunTestSuite Bug: angleproject:7299 Change-Id: Ifa882028a6f49579b4a9c6893053cb3bee8d83fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808302 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 928c5016 2022-08-04T12:28:12 Vulkan: Fix garbage collection vs outside-RP-only flush In https://chromium-review.googlesource.com/c/angle/angle/+/3379231, an optimization was implemented such that the excessive recorded texture uploads would get flushed early and submitted. This caused a use-after-free bug in the following situation: * Draw with pipeline A * Delete A <--- this puts A in the Context garbage list * Upload a lot of data At this point, the flush threshold could pass and the commands recorded outside of the render pass up to this point would be submitted. Associated with this submission was the current garbage, including pipeline A. However, the render pass that uses pipeline A is still not submitted. Now if after some time the render pass is still open, but the "completed commands" are checked (another set of uploads causing another submission, a query status check, etc), the garbage can be cleaned up. When the render pass closes next and is submitted, the implementation attempts to use the pipeline, which is already deleted. In this change, outside-render-pass-only submissions no longer reference the current garbage. This has the side effect that the temporary buffers used for uploading texture data won't be released early. A future optimization may want to separate the garbage list in ContextVk to render pass and outside render pass garbage. Bug: chromium:1337538 Change-Id: I4d31edc53916785d44420f4d6b4b2578ca3996e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812555 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>