src/tests/gl_tests/PixelLocalStorageTest.cpp


Log

Author Commit Date CI Message
Chris Dalton 86c735bf 2022-07-01T18:27:10 pls: Rename GL_DISABLED_ANGLE -> GL_DISABLE_ANGLE Match the other loadOps by using the imperative form. Bug: angleproject:7279 Change-Id: I9f3a33961f640ea5dff1da7dcea12517cfdcd461 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3741221 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton da984303 2022-05-13T21:05:48 Add a pls test for in-shader coherency Stores and loads in a single shader invocation should be coherent. Bug: angleproject:7279 Change-Id: I1a4af6fdbef21f5506bb40c9eb8f5e76c12dd6cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654267 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Chris Dalton 85b05601 2022-06-08T14:05:47 Add a pls test for load-only storage It's conceivable that an implementation may need to be careful to preserve the pls contents when a shader doesn't call pixelLocalStore(). Bug: angleproject:7279 Change-Id: I7b7fb25dced49902fd68685d2f5aa82219ced686 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3696503 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Chris Dalton 4884e9de 2022-05-15T22:57:57 Add a pls test for maximum capacity Check that it works to render with the maximum supported data payload: GL_MAX_LOCAL_STORAGE_PLANES_ANGLE GL_MAX_LOCAL_STORAGE_BYTES_ANGLE GL_MAX_FRAGMENT_OUTPUTS_WITH_LOCAL_STORAGE_ANGLE Bug: angleproject:7279 Change-Id: Ifdaff726edee0378b06ce5562001ad3dfe29284b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654974 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Chris Dalton 2adb6327 2022-05-13T23:09:31 Add a pls test for memoryless storage Bug: angleproject:7279 Change-Id: I4a992d04efa06ac99472d5334a1ac50839a13d06 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654973 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Eddie Hatfield 89e38b57 2022-06-22T15:04:08 Refactor to use ANGLETest vs ANGLETestWithParam Bug: angleproject:6747 Change-Id: I72ad52d0268eae0e1a401f12f3e94cc5efa402f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3719002 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Chris Dalton 329e1f9e 2022-06-04T02:30:56 Ensure pls results are secure even without barriers We can't guarantee the client will always use local storage barriers correctly, but we CAN guard local storage passes such that the results are only nondeterministic within predictable constraints. This CL adds a test to ensure local storage is still predictable without barriers, and that no data is random or leaked from other contexts. Bug: angleproject:7279 Bug: angleproject:7398 Change-Id: I70da58c8ba79b09f560315df3df956d1721ff6b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654265 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Chris Dalton d55e0655 2022-06-06T20:24:55 Add pls tests for fragment reject utilities GL utilities for rejecting fragments should also prevent stores to pls. (Namely: discard, return from main, depth/stencil, viewport.) Bug: angleproject:7279 Bug: angleproject:7398 Change-Id: I91aac62fc7eeb703c7bc1ff1bc0c841700fd83d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3696676 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Chris Dalton <chris@rive.app>
Chris Dalton 7c01db8f 2022-05-14T13:24:47 Add tests for loadOps in pixel local storage Bug: angleproject:7279 Change-Id: If060bae529d9af25cbc3e941d92fe32b2b254f22 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652702 Auto-Submit: Chris Dalton <chris@rive.app> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Chris Dalton f1c21d68 2022-06-04T02:26:36 Add pixel local storage tests for all supported formats Bug: angleproject:7279 Change-Id: I92728112f243cccf4e4ab2c5f4c096dcc0536fc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3654266 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Chris Dalton a894cb94 2022-05-10T21:15:59 Bootstrap pixel local storage This CL creates a very simple prototype that implements pixel local storage in a thin layer on top of ES 3.1 shader images, and adds a single test. Assuming all goes well on the various devices and backends, the next steps will be: * Write many more tests. * Compiler support, switch to API-specific shader images. * Move the thin layer into ANGLE. * Thorough validation and error handling. * Add an implementation that uses render target attachments (e.g., EXT_shader_framebuffer_fetch). * Incremental, backend-specific optimizations as needed. Bug: angleproject:7279 Change-Id: I7f9f0a1fe2d61f570b4105a7380687038ae45f5d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645786 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>