src/tests


Log

Author Commit Date CI Message
Amirali Abdolrashidi c19ec948 2022-08-23T10:43:59 Vulkan: Implement imageless framebuffers * Added the attachment image and create info objects to be used for imageless framebuffers created in getFramebuffer(). * New helper class for framebuffers in RenderPassCommandBufferHelper: MaybeImagelessFramebuffer, which includes a framebuffer object, if the framebuffer is imageless, and the image views. This is to make sure that the args for render pass begin info will be correctly set up according to the status of the used framebuffer. * Refactored the collection of attachments in getFramebuffer() into a new function, getAttachmentsAndImagesFromRenderTargets(). It also returns their corresponding ImageHelper* objects used to create the framebuffer (from their image properties). * New struct: RenderTargetInfo; which keeps track of render targets and whether resolve image should be used for the render pass in the form of the enum class RenderTargetImage. * Added a new arg to getFramebuffer(): resolveRenderTargetIn; to use when there is a valid resolveImageViewIn. * Without using the framebuffer cache, we would require to handle the framebuffer destruction by adding it to the garbage instead of releasing it. For example, FramebufferVk::destroy() now adds mCurrentFramebuffer to the garbage. * Added new framebuffer unit tests. * Added tests where two textures with different attributes are bound to the same framebuffer before drawing, one after another. * Added test where a blit occurs from a multisample texture into a non-zero level of a resolve texture, each bound to a separate FBO. * Added a new perf test to compare performance for enabled imageless framebuffers vs disabled. (Credit: cclao) Bug: angleproject:7553 Change-Id: Iacdbd73aaa01cbb0e37abf01ae4892bdfdd4b12f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827644 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill 4ebdac79 2022-08-29T16:25:46 Vulkan: Ensure we sync the draw FB before beingQuery. Bug: chromium:1354271 Change-Id: I5fe3649d9d39de37d0a59c80a4f31a17d1a72838 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863145 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Chris Dalton 2d31fe98 2022-09-22T21:04:22 Implement PLS on Apple Silicon Implements a subset of EXT_shader_framebuffer_fetch in the Metal translator that is sufficient to support pixel local storage. Metal's "programmable blending" feature is available on all Apple family GPUs beginning with version 2. Support for non-Apple GPUs will come later via readWrite textures, which can also be coherent by annotating them with [[raster_order_goup(0)]]. Bug: angleproject:7279 Change-Id: Ic74f6c0d21e87eb919e1f487163388d08d126857 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3916794 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Gregg Tavares <gman@chromium.org>
Jamie Madill 04f3ed80 2022-10-04T08:24:16 Perf Tests: Use specified trial time for warmup. When the user specifies a trial time, use this for the warmup time instead of using the calibration time. This will give a longer warmup time on our test infra and should help stabilize perf testing scores on our bots. Bug: angleproject:7671 Change-Id: I65fb8a7ae1f684d3f7834613d8341d17bd2df00f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3933315 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 13195f8a 2022-10-05T11:17:35 Vulkan: Fix missing input attachment usage on MSRTT When combined with advanced blend (or framebuffer fetch for that matter), MSRTT attachments could be used as input attachments. This change fixes the missing usage bit. Bug: angleproject:7739 Change-Id: I2190e4a6e534e120357dd68189fb9de07b6c54fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936444 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Chris Dalton b5514bb2 2022-09-21T20:47:00 Support pixel local storage on ES 3.0 Now that the application-facing API is implemented, we don't have to rely on ES 3.1 anymore. Expose and test the extension on ES 3.0. Bug: angleproject:7279 Change-Id: I5635620b9088201c20bafd283813092a329225d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3915327 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Cody Northrop c09d1475 2022-10-05T14:52:40 restricted_trace_perf: Switch to --warmup-trials Restore functionality after updates in: https://chromium-review.googlesource.com/c/angle/angle/+/3906144 Test: restricted_trace_perf.py Bug: angleproject:6970 Change-Id: I0632907b6dab0c0ad91536d42cac8eaf433f4da7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936966 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop e577353d 2022-09-29T17:20:22 restricted_trace_perf: Sleep between tests option In order to get the most "real world" numbers possible, we're going to start running with clocks unlocks on Pixel devices. To avoid thermal throttling, allow for a pause between each test. Test: restricted_trace_perf.py Bug: angleproject:6970 Change-Id: If3f813cf1eadab6ea56122a3945f694eed79ed9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936965 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi a3b3d948 2022-10-05T14:15:32 Revert "Suppress DrawBuffersTest.MidRenderPassClearWithGapsRGB" This reverts commit 668184941e8d107d585743c91359963f3410d434. Reason for revert: VVL bug fixed Original change's description: > Suppress DrawBuffersTest.MidRenderPassClearWithGapsRGB > > To get vulkan-deps Autoroller working again > > Bug: angleproject:7736 > Change-Id: Iff6bb5bfc04fb22cb2cd7126d5ecbd932a5e9af5 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3934478 > Commit-Queue: Ian Elliott <ianelliott@google.com> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Auto-Submit: Ian Elliott <ianelliott@google.com> > Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bug: angleproject:7736 Change-Id: I2727447907f2e25cf9b854ffcc9ccfc04db2fb95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936442 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Cody Northrop 503b250a 2022-08-31T20:06:57 restricted_trace_perf: Use Android platform loader With persistent shader caching enabled, we now need to run the trace tests exclusively in "native" mode, with ANGLE as the driver. The cache is provided via the EGL_ANDROID_blob_cache extension, and it is only enabled using Android's EGL loader. Test: restricted_trace_perf.py Bug: angleproject:6970 Change-Id: If791bfe199217dcc80105b55d8769fe43ffd9739 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3868310 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill d8489db5 2022-10-05T12:57:06 Perf Tests: Reduce resource usage. This halves the amount of time spent running the tests on desktop platforms. It also reduces the number of shards used on desktop platforms, to reduce resource utilization. It also bumps up the test timeout to keep from getting infra errors. Bug: angleproject:7738 Change-Id: Ie487c06452a39bb9ad1fe29b0d682e9c1bf297d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936448 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 637209c9 2022-10-02T22:05:12 Tests: Add Survivor.io trace Test: angle_perftests --gtest_filter="*survivor_io*" Bug: angleproject:7728 Bug: angleproject:7733 Bug: angleproject:7737 Change-Id: Ic337af781a209c3302bee748c5aed47f367993a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3932009 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Ian Elliott 66818494 2022-10-04T12:21:02 Suppress DrawBuffersTest.MidRenderPassClearWithGapsRGB To get vulkan-deps Autoroller working again Bug: angleproject:7736 Change-Id: Iff6bb5bfc04fb22cb2cd7126d5ecbd932a5e9af5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3934478 Commit-Queue: Ian Elliott <ianelliott@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Ian Elliott <ianelliott@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill 5b3781ec 2022-10-03T16:09:35 Remove namespacing from all ANGLE loaders. This will make it easier to work with pure C files. Bug: angleproject:7731 Change-Id: I2fe9af486af5f339d973c9149f082eb1f2efa8c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3925426 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop be8aa9e9 2022-10-01T21:53:14 Test: Add The Gardens Between trace Test: angle_perftests --gtest_filter="*the_gardens_between*" Bug: angleproject:7725 Change-Id: I3160155018d843f57ec6e2cd6455fd2f6e1af580 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931398 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 5d7c4eca 2022-10-02T02:27:27 Vulkan: Don't flush depth/stencil on color blit When syncing the read framebuffer for blit, deferred clears are picked up for the attachments that are not being synced. They are then redeferred so a future command would pick them hopefully as loadOp. This change improves the frame time of Pretty Derby on Pixel 6 by ~23%. Bug: angleproject:7727 Change-Id: Ie7d84c58315cd09204e5229f1ec73605d5a7f639 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931973 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 1d73bad5 2022-10-01T22:50:48 Vulkan: Fix reclear of rendered-to depth/stencil An optimization drops re-clears of images to the same value. When a render pass does: - clear - render - store the "cleared" status of the image was removed because at the end of the render pass, the image no longer has the cleared value. However, this was mistakenly only done for color, but should have been done for depth and stencil as well. Bug: b/239430388 Change-Id: Ib99e0df460eaa82ce87b593276abd9b07f0a8375 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931972 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton a7dc51f2 2022-10-01T08:49:11 Add a framebuffer fetch implementation of PLS The framebuffer fetch implementation works by attaching PLS backing textures to the framebuffer, and then rewriting PLS uniforms as "inout" fragment variables. The compiler's existing machinery takes it from there and makes it work on GL and Vulkan, and soon Metal. EXT_shader_framebuffer_fetch is now the preferred backend for pixel local storage, but we also use EXT_shader_framebuffer_fetch_non_coherent if shader images can't be coherent. This is especially interesting for Vulkan, since noncoherent framebuffer fetch is possible without any extensions. Bug: angleproject:7279 Bug: angleproject:7683 Bug: angleproject:7684 Bug: angleproject:7724 Change-Id: I33f3b2c6df9a5709969d9165c448ea71b096c9e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900142 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Cody Northrop 9905dabe 2022-09-30T00:47:17 Tests: Add Darkness Rises trace Test: angle_perftests --gtest_filter="*darkness_rises*" Bug: angleproject:7719 Change-Id: I0b99678003662c5e0bb89a5b78490276224a8eaa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3929333 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Hailin Zhang 836cc5e2 2022-09-09T22:06:22 Vulkan: add etc to bc compute transcoding. use compute shader to transcode etc format to bc format. Bug: b/243398683 Change-Id: Idbd0820a2df8d92fe690055dae2933bc559e9bfd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3888501 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Cody Northrop f7a5cce1 2022-09-29T10:42:26 Tests: Add Life is Strange trace Test: angle_perftests --gtest_filter="*life_is_strange*" Bug: angleproject:7711 Bug: angleproject:7723 Change-Id: I83d9d58270a80435dba8991875b20a215372334f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3928205 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Chris Dalton a81679bc 2022-09-26T23:56:34 Support EXT_shader_framebuffer_fetch on GLES All the frontend functionality for EXT_shader_framebuffer_fetch is already present, but only supported on Vulkan. This change wires it up for the native GLES backend as well. Bug: angleproject:7279 Bug: angleproject:7703 Change-Id: Ie1fce79e08a78662c8af65d33f3d8417c96cf58e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920577 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 583fd03e 2022-09-29T16:28:05 Translator: Fix ClampIndirectIndices vs. unsized arrays A deepCopy() was missing from this code path, which led to an AST validation error. However, clamping indices for unsized arrays is not strictly correct. For example, an out of bounds write with robustness is expected to be dropped, not overwrite the last element. Since robustness already covers storage blocks, this clamping is no longer done. Bug: angleproject:7712 Change-Id: I96dd18ef47cd453f19391bdccbd4372c24854ade Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924863 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Jamie Madill 67af8d89 2022-09-19T15:19:57 Perf Tests: Make dynamic step count calibration optional. This uses a fixed test time for the tests, instead of using an extra step to calibrate a number of steps to run in an approximate maximum time. Before: 1. run a test for <test time>, return the number of steps 2. for <num samples> x <num trials> times, run the tests for that number of steps After: 1. for <num samples> x <num trials> times, run the tests for <test time> This saves some total time since we don't need to run the tests in a pre-process to calibrate the number of steps, and it also makes this test script more like the restricted trace perf script. Bug: angleproject:7671 Change-Id: I413cbf8d65f9f2f87781d8607f799d2450a71ea7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906144 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 943d71e1 2022-08-11T10:17:06 gl_test: add a test to capture/replay MEC with EGL images Bug: angleproject:7564 Change-Id: I1cb84c5bccd20b5614ddd400797f112138f8c200 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3826162 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Constantine Shablya ff7aa214 2022-09-29T19:56:28 GL_PALETTE* sampling Implement GL_PALETTE* formats by decoding them into a R8G8B8A8_UNORM image at load time. Test: angle_end2end_tests --gtest_filter="PalettedTextureTest.*" Bug: angleproject:7599 Bug: angleproject:7688 Bug: angleproject:7710 Change-Id: I94d51e2c480fcdd39f1a0ad241b311d3b4de1579 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3863251 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
Yuxin Hu 053c6a06 2022-09-20T15:17:28 Vulkan: Add more tests for attachmentless framebuffer This CL adds below test scenarios for attachmentless framebuffer: 1. Create first attachmentless framebuffer with larger size, and create second attachmentless framebuffer with smaller size. 2. Create an attachmentless framebuffer with smaller size, and grow its default width and height. 3. Create an attachmentless framebuffer with larger size, and shrink its default width and height. 4. Create an attachmentless framebuffer with larger size, given it an attachment with a medium size, and shrink its default width and height. This CL also splits the test failure bugs on different vendor and renderer to different bug tickets. This CL addresses a bug on vulkan backend: only skip onFramebufferChange() if the framebuffer has at least one attachment, and mCurrentFramebufferDesc equals to priorFramebufferDesc. Otherwise in test scenario 2 and 3 above, we will use the wrong scissor size, because the FramebufferDesc remains the same before and after changing the default width and height, and we will wrongly skip onFramebufferChange() where we update scissor area to match with the new default width and height. Bug: angleproject:7666 Bug: angleproject:7697 Bug: angleproject:7699 Bug: angleproject:7700 Bug: angleproject:7705 Change-Id: Ieb143b27f8c1a229dab8f43d0a16e3e871185941 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3908332 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 055d4c2f 2022-09-28T17:31:37 Tests: Add Star Wars: Galaxy of Heroes trace Test: angle_perftests --gtest_filter="*star_wars_galaxy_of_heroes*" Bug: angleproject:7709 Change-Id: I00937ea7e637d618999ec57af6e1b5efed56ebe3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3927947 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 6f037273 2022-09-28T18:46:13 Make last lines of batch stdout more visible in logs. So that it looks like this: https://gist.github.com/romanl-g/dd0d2f7e0eddf16fd802bed97789024c Bug: angleproject:7708 Change-Id: Ic92a9de6cba24637119ae9041e9126364d414948 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3923459 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Jamie Madill b681e939 2022-09-19T13:20:23 Turn on trace data hash checking automatically. This should save time uploading trace data already present on the device. Bug: angleproject:7671 Change-Id: Ie655cba284b6b3aec2e264cd4d64e4d18ebff8a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905902 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Jamie Madill 65d3d0f6 2022-09-19T10:42:43 run_perf_tests: Add option to find test binary in out dir. This allows us to run the perf test runner script from any directory and use that as a basis to find the most recently modified test suite binary. This saves us from chdir()ing into test directory every time we want to run a test suite. Ideally this should move into the test utils folder to be used by the gold tests script as well. Bug: angleproject:7671 Change-Id: Iead98670bb5f7627ae32f7ac41b4ebcee2726841 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904427 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi c1dc9de5 2022-09-27T12:49:21 GLES1: Enable SpotExpDir Likely fixed by the lighting fixes. Bug: angleproject:6201 Change-Id: Idc74d4e169dd3c1b2176b6db0a2559c25197ebd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3922777 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 74c2f2d3 2022-09-27T11:40:51 GLES1: Enable UserClip tests Passing now. Bug: angleproject:3408 Change-Id: I4306f5eb8ae85d52dca8956cc22eac49ce957a14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3922775 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 380ae37b 2022-09-26T21:34:22 Tests: Add Sky Force Reloaded trace Test: angle_perftests --gtest_filter="*sky_force_reloaded*" Bug: angleproject:7701 Change-Id: I6d86c760d007807a14cc88e869e8fc3c5e8f6a2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920575 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 7d0c5cc0 2022-09-26T20:47:48 Tests: Add Gacha Club trace Test: angle_perftests --gtest_filter="*gacha_club*" Bug: angleproject:7698 Change-Id: I84d055115235fb5506b8d14b5777b3070ed2728a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920574 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki 97bdac9b 2022-09-13T11:09:51 Tests: Add Zenonia 4 trace. Test: angle_perftests --gtest_filter="*zenonia_4*" Bug: angleproject:7652 Change-Id: I7a3ff361085ba64f389be8ed487af635400fa2e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3913504 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Shahbaz Youssefi dd0fc335 2022-09-26T22:56:29 GLES1: Make CTS verbose The `machine` parameters were uninitialized (set to 0 as globals). As a result, the test failure messages were not emitted, making it harder to understand what is failing. Bug: angleproject:3408 Change-Id: Ib8351755af24e01736314d1832160edf10a8e767 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3920894 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 163e56e4 2022-09-20T00:40:55 Allow feature overrides to end in * (wildcard) Makes it easier to apply overrides to features with long names. Also works around Android's limit of 92 characters for debug properties. Bug: b/238024366 Change-Id: I8f417287f92b2439de1a7b7d6abbaf9e61b405e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906222 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Roman Lavrov 1fc6c49c 2022-09-23T16:39:26 Log additional info when "failed to record some samples" Check each sample instead of total in the end to make it more clear. Bug: angleproject:7117 Change-Id: I7d6137c535266e4cf47e772b816cfb8bfa4575d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3916516 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi f4389797 2022-09-23T15:36:13 GLES1/Vulkan: Enable GL_EXT_multisample_compatibility ... with a non-conformant implementation. This unblocks some tests that unnecessary call glDisable(GL_MULTISAMPLE) and trip up on it generating validation error. Bug: angleproject:7676 Bug: angleproject:7657 Bug: angleproject:3863 Bug: angleproject:3864 Change-Id: Iaebbea66da81fc9a30bf7a87deed7cf88ff38476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3891546 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi bc447ca4 2022-09-20T22:38:16 GLES1: Move lighting to vertex shader In the spec, lighting is done as part of vertex processing, and results in a new vertex color. Texturing is applied later. ANGLE however did lighting in the fragment shader. With this change, lighting is moved to the vertex shader. This fixes rendering of lit objects, as interpolation is done linearly or flat between the vertices per spec, instead of done precisely per fragment. While typically this is inferior to per-fragment lighting, it's what the spec mandates. On the dr_driving trace, this reduces the render pass time by ~20% on Pixel 6. Bug: angleproject:6201 Bug: angleproject:6644 Change-Id: I10e37df8c56c22d520a738af8f8630bc6a01ca7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906394 Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Dan Glastonbury d2a58f00 2022-09-08T14:19:21 EGL: Implement eglCopyMetalSharedEventANGLE Add eglCopyMetalSharedEventANGLE function to the ANGLE_metal_shared_event_sync extension. This brings the extension on par with the EGL_ANDROID_native_fence_sync extension. eglCopyMetalSharedEventANGLE allows for copying the Metal event object from EGLSync objects implemented by the ANGLE Metal renderer. This function follows Objective-C convention for "copy" methods and increases the retain count of the Metal event object. The EGL API user is thus responsible for ensuring to release the returned object to avoid memory leaks. Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.* Bug: angleproject:7561 Change-Id: I8c35b559014b85cb8c6a0e76ac2ab7891eed5da0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881423 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Cody Northrop 5e3bf6d8 2022-09-22T15:53:39 Tests: Add Eve Echoes trace Test: angle_perftests --gtest_filter="*eve_echoes*" Bug: angleproject:7215 Bug: angleproject:7690 Change-Id: Ib636ab57831cddac5fe793ec5cf7d05764e90766 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3914041 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 2debd07d 2022-09-21T11:40:18 Automatically query status of features for tests Now tests can skip based on what features exist, compared to what features are explicitly asked for. For example, a test suite may override-enable a (normally disabled) feature that depends on a hardware capability. With this change, it can be skipped if said hardware capability doesn't exist. As a bonus, tests now correctly skip if the feature is overriden through an environment variable. This change also cleans up VulkanPerformanceCounterTest tests which did the same for a number of specific features. Bug: b/243398683 Change-Id: I84f026e3394eab56fd123e02bee72720c7ed94c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909789 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Gregg Tavares 7d712c47 2022-09-08T09:42:10 Metal: ProvokingVertexHelper stop using a separate cmdbuffer This simplifies the code. Without this you always need to be aware that the provoking vertex helper's command buffer might have commands in it that need to be committed before starting other operations. Bug: angleproject:7643 Change-Id: I1c73d451c12c268ecbdb6a1cd63a77c291949ef9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3884275 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Jamie Madill 094b49db 2022-09-19T10:13:28 Android Test Runner: Skip APK install if hash matches. Bug: angleproject:7670 Change-Id: I984fe9377728e5a575fd04be2f5cb3ed1cdbafb5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904425 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gregg Tavares 3700a059 2022-09-22T00:04:52 Revert "Add ReadPixels Perf Test" This reverts commit ea7eff37c18d9728f7ca0796fb29cff9bb80662c. Reason for revert: It takes too long on the bots Original change's description: > Add ReadPixels Perf Test > > Trying to compare the Metal backend to the OpenGL > backend and it's useful to have a perf test. > > Bug: angleproject:7117 > Change-Id: I5a7518fdd749841c3dffb1b53a9c4bfb88813c3c > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906338 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Gregg Tavares <gman@chromium.org> Bug: angleproject:7117 Change-Id: Ia5e3138abe6686b2f7929a5367782c47f0f7af2d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3911543 Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Gregg Tavares <gman@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Chris Dalton 8b2aff28 2022-09-12T10:27:28 Implement the ANGLE_shader_pixel_local_storage API Implements the OpenGL ES API for ANGLE_shader_pixel_local_storage and adds thorough validation and testing as outlined in the spec. This feature is still implemented entirely in the frontend, but the extension now works end-to-end with a passing test suite, and can be used externally. Over time we can start gradually moving the implementation into backends as appropriate. Bug: angleproject:7279 Bug: angleproject:7647 Change-Id: I1c861a0fca96423be02e17bbe1fb7f57b99ea63f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3886462 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Shahbaz Youssefi d78f7d20 2022-09-14T16:25:52 GLES1: Enable PointAntiAlias and RescaleNormal tests These tests are passing. Bug: angleproject:3408 Change-Id: I9cc680235a31b93e455499e83d128b8122328726 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3896213 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 2f1f9500 2022-09-14T15:52:11 GLES1: Fix behavior with incomplete mipmap textures GLES1 requires texturing to be disabled when a mipmap-enabled texture is incomplete. Bug: angleproject:3408 Change-Id: I2c3b0206282a71f9a54d77ecdf2c7e42c7175fe5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3896212 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gregg Tavares ea7eff37 2022-09-19T17:32:59 Add ReadPixels Perf Test Trying to compare the Metal backend to the OpenGL backend and it's useful to have a perf test. Bug: angleproject:7117 Change-Id: I5a7518fdd749841c3dffb1b53a9c4bfb88813c3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3906338 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Gregg Tavares <gman@chromium.org>
Shahbaz Youssefi 69714184 2022-09-16T00:38:03 GLES1: Implement logic op through framebuffer fetch Bug: angleproject:7654 Change-Id: Id5ee7aee8d38eb295b2fd9ff484f4755962c279a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900513 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 9393fd54 2022-09-13T20:06:57 FrameCapture: Ignore GetActiveAttrib Similar to how we skip glGetActiveUniform, we also need to skip glGetActiveAttrib. Attribute active status varies based on the underlying shader compiler. More aggresive stacks can find ways to eliminate them. If the application asks about attributes above GL_ACTIVE_ATTRIBUTES, a GL error is thrown, causing a trace to be non-portable. Tested with Eve Echoes and Monster Hunter Stories. Also added an end2end test that showcases a way apps ask about attributes, verified we can capture and replay it across multiple vendors now. Test: VertexAttributeTestES3.UnusedAttribsMEC Bug: angleproject:7215 Bug: angleproject:7557 Bug: angleproject:7402 Change-Id: I3c655bcead0ddb1677f8e1d49cb7d3f3c6b4feba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3866041 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 8581e5fa 2022-08-05T14:52:22 FrameCapture: Improve renderbuffer reset Add support for recording calls to regenerate renderbuffers, and track when renderbuffers are deleted. Test: Monster Hunter Stories MEC Bug: angleproject:7557 Bug: angleproject:4599 Change-Id: Ib32abaaf4b5f4767c5c9ede312a29e7f108bd93d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3815224 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Constantine Shablya 79c30913 2022-09-08T03:34:25 Add GLES 1.x lighting tests These tests check pixel values produced by fixed function lighting. Test: angle_end2end_tests --gtest_filter="LightsTest.*" Bug: angleproject:6201 Change-Id: I54ff5fd34089f71e7438167607de6f150aeb56bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3881463 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Constantine Shablya <constantine.shablya@collabora.com>
Dan Glastonbury a89f678f 2022-06-16T13:59:16 EGL: Implement ANGLE_metal_shared_event_sync on metal Implement creation of fence sync object taking an external MTLSharedEvent and optional value to use when signaling completion of prior commands. Extended end2end test suite with metal shared event test cases. Test: angle_end2end_tests --gtest_filter=EGLSyncTestMetalSharedEvent.* Bug: angleproject:7561 Change-Id: I0e72b5417275a20a24e535670ceb995ecc87abcb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3865060 Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi f6a171d5 2022-09-20T16:05:20 GLES1: Fix Fog rendering The spec requires that: - The fog factor is clamped to [0, 1] - The fog only affects RGB, and not alpha Bug: angleproject:7598 Change-Id: Iaea2933b5ccfa79b7db0a3e74193b1c5c10f11e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3907881 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 2796cbfd 2022-09-15T16:18:47 GLES1: Implement logic op through ANGLE_logic_op Bug: angleproject:7654 Change-Id: I88c784d87c1cb7cb7e5ccf8f020203553513bbb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3899381 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c51ca1b7 2022-09-15T14:00:21 Infra: Run GLES1 conformance tests on Pixel 4 bots Bug: angleproject:3408 Bug: angleproject:7676 Change-Id: I46ebfbef69a4eb300e6cdc964f1b3716a56df320 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3899379 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi ba3b4515 2022-09-15T01:06:51 Vulkan: Implement GL_ANGLE_logic_op Enabled if the logicOp device feature is available. According to gpuinfo, it's pretty much universal except for ARM. Bug: angleproject:7654 Change-Id: I4808b519fdd6273b2f8c1bb17f59517eb65bfe8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898317 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 81811166 2022-09-19T00:00:00 Reject GL_HALF_FLOAT_OES on WebGL 2.0 This type enum is not exposed in WebGL 2.0 contexts. Skipped OES enum testing on ES 3.0 contexts in half-float texture WebGL compatibility tests. Bug: angleproject:7668 Change-Id: I56138aa686192a873b308ba58633e6a1fc808a1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3900019 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 97926f80 2022-09-15T00:10:49 GL: Implement GL_ANGLE_logic_op Enabled only on Desktop GL where logic op is available. Bug: angleproject:7654 Change-Id: I3c17ffb5b21abf31aec247319a625526f1bec37d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898316 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
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>