src/tests


Log

Author Commit Date CI Message
Jamie Madill dd5994df 2021-08-25T18:39:31 Capture/Replay Tests: Fix Renderbuffer readback. Renderbuffer readback would use an unimplemented size function, ending up with a zero sized buffer. Also cleans up some of the code for reading back both Renderbuffers and Textures. One Depth/Stencil test that was crashing due to a recent change to read back depth data is now failing comparison because of missing combined depth/stencil support. Also updates the capture/reply self-test to handle ASAN-only test expectations. Bug: angleproject:4688 Change-Id: Idb6c05d15329f405f44502c2e5282764c7f780fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119057 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f7b2ab5c 2021-08-25T19:00:44 Perf tests: Add 3 new skips after updating perf run times. MultisampledRenderToTexturePerf on P4 and Intel Linux TextureUploadPerf on Intel Linux Bug: angleproject:5120 Bug: angleproject:6319 Bug: angleproject:6320 Change-Id: Ia201a4d62e95f82ec42f64abebc4222e31d41e9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119058 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c61fd919 2021-08-25T08:29:55 Fix array texture readback with GetTexImage. According to the desktop GL specs, GetTexImage retrieves entire mips of a texture for 2D array and cube array textures. The prior code was only retrieving one layer and didn't have any way to get the layers other than layer zero. Fix this by using similar logic to how we read back 3D textures. Also adds regression tests to GetImageTest. Bug: angleproject:5133 Bug: angleproject:6132 Change-Id: I8b22bc10ac1fdfe6389ac309450b92681f087cda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118266 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Ian Elliott 39e58580 2021-08-25T14:50:49 Move some end2end suppressions to expectations file With 2 previous Wrangler-suppression CLs, I followed the pattern initially done for bug 5945. Jamie pointed out that these are better handled in the expectations file. This CL moves all 3 suppressions. Bug: angleproject:5945 Bug: angleproject:6318 Change-Id: Ib70c3ede4c1fcd92cfd7dc65f2b37e221380fefe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119683 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi f9d261f5 2021-08-25T10:23:48 Translator: Don't promote precision from initializer Take the following GLSL code: precision mediump float; uniform highp float u; float x = u; When `x` is declared, its precision is mediump due to `precision mediump float`. Its initializer (`u`) however is highp. Previously, ANGLE generated the following code to ensure the precision of the initializer is applied to the variable: highp float x = u; Compiling the same code with glslang and looking at the SPIR-V (both SPIR-V for OpenGL and SPIR-V for Vulkan), such a promotion is not done. The generated SPIR-V is equivalent to: mediump float x = u; This change aligns ANGLE's output with glslang's by outputting the precision of the variable itself instead of the precision of the assignment (which is highp due to promotion from the two operands). Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: I6f338a865c0a7710329fc13bc171fd245dd30b31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118965 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 0d80bc8c 2021-08-25T13:47:05 Suppress EGLBlobCacheTest.FragmentOutputLocationKey on Metal EGLBlobCacheTest.FragmentOutputLocationKey is flaky on mac-rel Bug: angleproject:6318 Change-Id: I67c8f09ae75498d29f923d5c2d6cd52ca86bc249 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119679 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott bd5ac5df 2021-08-25T13:30:55 Suppress MultithreadingTest.MultiContextClear on Linux+Nvidia MultithreadingTest.MultiCreateContext/ES3_Vulkan_NoVirtual is flaky on "Linux FYI GPU TSAN Release" with linux-clang-rel NVIDIA, so it's being suppressed for now. Bug: angleproject:5945 Change-Id: I7f169641e19c893542ad8a51b81861b38d16a587 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119677 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Jamie Madill 6290a86b 2021-08-25T09:34:19 Capture/Replay Tests: Add lock around ninja calls. This should prevent huge numbers of calls to goma from causing test flakiness. Uses the Python multiprocessing.lock. Bug: angleproject:6299 Change-Id: I60fb38aaad363204de12d06f9d155bacb7ddd928 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118269 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1b2febb9 2021-08-23T12:39:16 Trace Tests: Refactor calibration logic. Instead of calling glFinish every step we now run a few warmup loops to try and figure out the right step interval. On each run we refine the step interval until we reach a number that completes in the specific time after a single glFinish call. This method will use the specified test time much more consistenty. Also a couple other improvements. Will use more test time on the bots because previously they were using a calibration/warmup time of 1 second per run loop, and this bumps it up to 3 per run loop. Long explanation below. What we did before: step() glFinish() step() glFinish() .. repeat for "gCalibrationTime" seconds then take the number of steps, the actual time ran, and compute an estimate for "mStepsToRun". When we run for real, we go: step() step() step() .. repeat for "mStepsToRun" steps. glFinish() this has an obvious performance difference, because after each step() (one frame in a trace) you had a complete stall. The new code first does the above to compute a tentative mStepsToRun, then uses the results of the second run to compute a much more accurate mStepsToRun by using the "actual" time it took to run the estimate. Bug: angleproject:6090 Change-Id: I0ff19873580e13f2af5a145a21f5b1c59fb15795 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114606 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Gert Wollny c4d4bd36 2021-08-24T09:13:41 Capture/Replay: Add ES3_Vulkan_SwiftShader expectations Bug: angleproject:6180 Change-Id: I47d68d8a6e21fa4b89e48898f27c365b51f70404 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3118547 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 47279c72 2021-08-15T23:20:32 Adjust compressed texture validation; add test - Format check happens before target check to accommodate for unknown / disabled format enums. - PVRTC1 and ETC1 enums are not allowed for 2D Array and 3D targets. - PVRTC1 sRGB formats require enabling two extensions. - New noCompressedTexture3D limitation for older Metal versions. The test checks that only the appropriate entry points are affected after enabling compressed texture extensions. Bug: angleproject:5731, angleproject:6280 Change-Id: I4943cd3a82f60f9348215caa8639e0bc3e8b45db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3094018 Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 72ecb371 2021-08-24T11:17:12 Capture/Replay: further rework of replay script: * Simplify the code by using dictionaries to store the batch and final results * Use unified result specifiers * Group the unexpected result output by result type Bug: angleproject:6282 Change-Id: I90107efdeb51e183aa122ef67d1a646c8c1fd86a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114655 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 800e82c6 2021-08-23T11:05:23 Translator: Validate precisions When declaring a variable, a struct field, function parameter etc, there's a precision necessarily applied to the entity being declared. AST Validation is added to enforce this. Intermediate nodes derive their precision from these entities automatically. Consistency of intermediate nodes is not validated. This is because AST transformations replace a node with a transformed one, and that may not have the same precision. Take the following code: mediump float x = ...; mediump float y = ...; ... x + y ... and assume is transformed as such: highp float driver_uniform; ... (x * driver_uniform) + y ... The addition was originally done in mediump, but would seemingly need to be done in highp after transformation. There are a number of options here: - Make sure that when nodes are replaced, the precision is unaffected. This can be intrusive, requiring temp variables. - Bubble up the new precision - Accept the discrepancy ANGLE opts for the last option, which actually respects the original shader's intended precision for operations, even if some transformation needs to temporarily evaluate an expression at a higher precision. Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: Ibcde3a230de159157783b1c6d5ef1cd63ceb4d8f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114027 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill d240f104 2021-08-23T16:25:20 Perf Tests: Update histogram units. Use "ms_smallerIsBetter" instead of "msBestFitFormat". This matches the requirements of the online docs as well as ensuring the dashboard knows which way to track the regressions. https://chromium.googlesource.com/catapult/+/HEAD/docs/histogram-set-json-format.md Bug: angleproject:6090 Change-Id: I0b234725b55d4abb1dd1e8153e132fdbcbad1c60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115225 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop 023867c8 2021-08-24T11:42:07 Tests: Add Wordscapes trace Test: angle_perftests --gtest_filter="*wordscapes*" Tbr: jmadill@google.com, timvp@google.com Bug: b/197646838 Bug: angleproject:6310 Change-Id: Idb5b8fe7e30f93ab0da0a749ee691eaeed4eac63 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3116367 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 460618ad 2021-08-20T18:34:10 Refactor EGLMultiThreadSteps.h -> MultiThreadSteps.h The class ThreadSynchronization is very useful when synchronizing multiple threads in ANGLE tests, so it's being moved from egl_tests/EGLMultiThreadSteps.h to test_utils/MultiThreadSteps.h. Bug: angleproject:5971 Change-Id: I5df469aa68b79cf72d95e0276f42ab33a091314e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3111887 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Cody Northrop 0e06d2f3 2021-08-23T20:18:48 Tests: Add Scrabble Go trace Test: angle_perftests --gtest_filter="*scrabble_go*" Bug: b/197580447 Bug: angleproject:6308 Change-Id: I624c5f201dbadb6b51fe39cbb832da2454c3cb39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114492 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 637e543f 2021-08-23T13:28:52 Capture/Replay: beautify the result output Instead of writing a diff between expected and real output list the tests that have results that differ from the expectations with their real and expected results. While at it also clean up the result printing a bit. Bug: angleproject:6282 Change-Id: Id95de9aa659b39f3a2fe3f63402e285ad875a4e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3113553 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gregg Tavares a141cb52 2021-08-23T13:52:57 Test vector and matrix scalarization does not affect output Vector and matrix scalarization was turned off because it affects the rendering output. We need to turn it back on in some form for Metal. This test is added to check that rendering output is not affected. Test adapted from WebGL CTS test https://github.com/KhronosGroup/WebGL/pull/3214 Bug: angleproject:6306 Change-Id: Ic1db18920064726761d6168f9dd5111772028598 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115013 Commit-Queue: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill 13e52124 2021-08-23T08:44:13 ANGLEPerfTest: Fix a couple comment typos. Bug: angleproject:6090 Change-Id: I2c1a2f4c6b25bb1d4e462bcb20bd788529e255e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114605 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 259ae49c 2021-08-20T10:51:31 Capture/Replay: Isolate trace export definitions. This small fix to the export header means we no longer include the "restricted_traces_autogen.h" in each and every trace file. That means when we change/add/remove a trace we no longer need to recompile each and every trace. Speeds up iteration time when working with the traces. Also fixes inconsistent path generation on Windows. Bug: angleproject:5133 Change-Id: I357d65477a683455d01379379e2e98431af2ed55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110749 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 8933a6e3 2021-08-17T12:09:21 Capture/Replay: Update expectation bug number Bug: angleproject:6166 Change-Id: I7bdb1778fc78d9c1e433b9658225322ff6c21030 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097380 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 14656a5d 2021-08-23T07:23:29 Skip all dEQP-EGL.functional.resize.surface_size on Linux/NV. This seems to be a persistent flake in the test suite. Bug: angleproject:5753 Change-Id: I4917ea54bba5ae1a01606038698e099ee8559f47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3112198 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 210773db 2021-08-05T10:41:59 Translator: Be more explicit about precisions GLSL ES requires that every symbol (variable, block member, function parameter and return value) is appropriately qualified with a precision, either individually or through the global precision specifier. Some tree transformations however produced symbols with EbpUndefined precision. In text GLSL output, these would produce unqualified symbols which was often incorrect. In this change, the transformations are made to produce explicit / more consistent precisions. The validation (that caught these issues) is not included in this change as there are still a few corner cases left to address. Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: Icca8a0a5476f8646226e7243aa8f501f44acc164 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3075127 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 2f45d93d 2021-08-18T16:58:44 Capture/Replay: Init shader outputs during self-tests. This forces all uninitialized variables to have default values. For instance if the application doesn't initialize the output color, or a varying that's use in the output, this will ensure we don't use any undefined values in the computation. Found when working on a re-trace of T-Rex, which doesn't write to the alpha channel in the final rendering pass. Also fixes undefined values in GLSLTest.InactiveVaryingInVertexActiveInFragment. Bug: angleproject:5133 Change-Id: Ia291338e5adf23dab5263cb2ebe737dc05852d3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110225 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill b196eec0 2021-08-20T12:32:03 translator: Fix InitializeVariables with gl_ClipDistance. The extension allows for the shader to redeclare this variable with a different size. This would sometimes put the tree in an inconsistent state when used with the InitializeVariables feature. Fix this by using the user declaration of gl_ClipDistance when available. Found when working on trace validation, where using the init output variables option in the compiler would then cause tree validation to fail for one specific test. Test: ClipDistanceTest.ThreeClipDistancesRedeclared Bug: angleproject:5133 Change-Id: I42c9bfbe313826ac5d391068d9fc18eb5793375f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110752 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d2d1f41f 2021-08-16T08:05:55 Add EGL extension to create window with a swap interval set. On Vulkan this allows creating a window once without needing to recreate the swapChain after we specify the swap interval. Also adds a simple regression test and EGL enum assertion printing formatting. Bug: angleproject:5133 Change-Id: I72af124cb0e8f7cddfa810988a9862c0f36a0e46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097806 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill f65d6acc 2021-08-18T12:20:40 Test Runner: Determine slow tests from test expectations. This updates the test harness to handle slow test based on the TIMEOUT test expectation. It removes the "registerSlowTests" API in favor of using the test expectation files. Also updates some of the timeout handling for various angle tests, including on SwiftShader for multithreading tests. Increases the timeout for tests in a batch to attempt to fix the problem of the first test being much slower. Bug: angleproject:6261 Change-Id: I7427344da5a0c1ea26d8c2d6eb0e9be2557b56e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104007 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jonathan Ross 6a8abffc 2021-08-19T17:24:24 Turn off ProgramBinaryES3Test direct-to-Metal tests We enabled these tests, however they are failing consistently on Intel. Original change: https://chromium-review.googlesource.com/c/angle/angle/+/3105442 Bug: angleproject:5505 Bug: angleproject:6301 Change-Id: Iddc36400d55e8b06b15663c2d9bc00df7e04ce02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3107508 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 762db3c0 2021-08-18T09:06:42 Capture/Replay: Improvements to testing script. Using new Python APIs for multiprocessing logging. Also updates some logging to be simpler / more consistent. Also a few other small fixes. Bug: angleproject:5133 Change-Id: I4acbc9173a3891989f409cc499c8e6431e712c0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104006 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Kenneth Russell 8ffb4602 2021-08-18T16:55:56 Turn on the first few direct-to-Metal tests by default. All of the subtests of these previously-asserting tests are passing with --bot-mode: ProgramBinaryES3Test UniformTest WebGLGLSLTest so start running them on ANGLE's CQ. Bug: angleproject:5505 Change-Id: Ibdaa814cec846379e2c073117efa816fc871be33 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3105442 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev eb458fbe 2021-08-18T14:17:31 GL: Add emulateImmutableCompressedTexture3D workaround The workaround replaces glTexStorage3D with a series of glCompressedTexImage3D calls. Bug: chromium:1060012 Change-Id: I08e026e68dd697654cc4ab8feb190a35e56ea133 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103070 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill 02005fdc 2021-08-18T12:22:58 Fix Texture2DTest.TextureSize. This CL fixes a number of issues: fixes the calls to texture size query, fixes an uninitialized memory read, fixes some incomplete texture cases, and fixes an out-of-bounds with the color array. It also cleans up the test logic, and splits the test into four sub-tests so it runs more smoothly in CI. Noticed while working on the capture/replay harness with ASAN. Bug: angleproject:5982 Change-Id: I15459381b92332db5adad2bd91c0b9eb0f8b5961 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3104005 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 839d5318 2021-08-16T08:29:28 Capture/Replay: Changes to MEC first frame capture. Recent changes made it so it was impossible to trigger MEC *after* the first frame and *before* the second frame. Instead it was only possible to capture *before* the first frame or *after* the second frame. Makes it possible for the retracing script to do identical captures. Also includes a number of refactorings to make it simpler to follow the code, including renaming methods, and removing some extra output files. Bug: angleproject:5133 Change-Id: Ice6a189eb9f4d53e8ee1ba39beb537af2ef5fd9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097807 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill e3f2acb9 2021-08-18T08:03:26 Trace Tests: Skip sakura school sim on Win/Intel. This test seems to produce non-deterministic rendering/flakiness. Bug: angleproject:6294 Change-Id: I5cb72318c865f21814d114fd13a18dfd44e5db60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103506 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade cc52e7cd 2021-04-19T21:37:20 Prevent separable programs from relying on attached shaders Previously, several linking functions were reliant on the HasAttachedShaders interface. The information stored there has been moved to ProgramExecutable. Linking information such as uniforms and uniform blocks from attached shaders is now also stored in temporary pending variables inside ProgramExecutable. Bug: angleproject:5506 Test: ProgramPipelineTest31.VaryingLocationMismatch* Test: GeometryShaderTest.RecompileSeparableVSWithVaryings* Test: ProgramBinaryES31Test.SeparableProgramLinkedUniforms* Change-Id: I93591431959c1c4c547ada92ec358369a3417723 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909760 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Jamie Madill d55d57ac 2021-08-17T14:16:07 GN: Disable unreachable code warnings in GLES 1 tests. Bug: chromium:1240679 Change-Id: Ib140cbd32386a7836acf9a4f477693b14bf3c6d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100590 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 17d41054 2021-08-17T13:22:46 Skip a flaky test on SwANGLE. The test was already marked flaky on Windows. Mark it TIMEOUT everywhere since likely the root causes are the same. KHR-GLES31.core.arrays_of_arrays.SizedDeclarationsPrimitive Bug: angleproject:5755 Change-Id: Ief208a5a2cb533e5ba4b88ef65e82a2a14dcf0b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3100585 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 98e2410d 2021-08-17T07:52:03 dEQP: Remove Pixel 2/XL test expectations. We no longer support Vulkan on the P2. Bug: angleproject:2808 Bug: angleproject:3683 Bug: angleproject:3816 Bug: angleproject:4024 Bug: angleproject:4097 Bug: angleproject:4159 Bug: angleproject:4166 Bug: angleproject:4194 Bug: angleproject:4219 Bug: angleproject:4344 Bug: angleproject:4822 Bug: angleproject:5340 Bug: angleproject:5370 Bug: angleproject:5572 Bug: angleproject:6008 Bug: b/161540999 Change-Id: Ie2cb634201c2d604cb247eb0369d5e90d7600e8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3098490 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 130a8b63 2021-08-16T17:09:10 Perf Runner: Properly merge histograms. The prior method was emitting 5 histograms per test. The new script method merges the 5 histogram samples together and recomputes the running statistics. Should improve reporting on the dashboard. Bug: angleproject:6090 Change-Id: I58a5e020f3a3257a8545df2785bc3eaa811ee38e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3096550 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jason Macnak 0be285c6 2021-07-20T11:36:22 Vulkan: Flush read RT if color attachment is the read buffer Prior to this change, the following sequence: * eglMakeCurrent(..., draw=surface1, read=surface1, ...); * glClear(...); * eglMakeCurrent(..., draw=surface2, read=surface1, ...); * glBlitFramebuffer(...); * eglMakeCurrent(..., draw=surface1, read=surface1, ...); * glReadPixels(...); would end up with the `vkCmdClearColorImage()` on surface1 occuring after the `vkCmdBlitImage()`. This CL updates flushColorAttachmentUpdates() to flush any staged updates to both the read and draw attachments, since they can be different if different read and draw surfaces are bound. Adds a test which is a small repro of android.opengl.cts.FramebufferTest#testBlitFramebuffer failure. Bug: b/192327017 Test: EGLSurfaceTest.BlitBetweenSurfaces/* Change-Id: Iabad26dfcd8633e9dcfcee2fb16ba352bc3931d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078980 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gert Wollny 4aedb71f 2021-08-11T17:00:41 Capture/Replay: Force count and length in CaptureShaderSource The problem ist that there is a mix on how the captured shader source is written out, in some cases one string is written, e.g. with the test ZeroShaderLength, and in others case an array if strings is written, a with MixedShaderLengths. Be constistent about it and capture the shader source always as one string and handle it like this, and override the count to be 1 to reflect this and set the length to {-1} to use the new accumulated shader strings automatically. Bug: angleproject:6268 Change-Id: Ide927db1a6e4facdbab4d35c023b9bce4b6c30d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087448 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi d20afde4 2021-08-05T23:06:44 Vulkan: Retain precision of uniform variables When gathering in a uniform block, the precision of default uniforms was dropped. Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: Ie6a8e2e7cef7cd3808cee08d20f886fc4e762cd5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076124 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev 1fb846cb 2021-08-03T01:57:49 Validate texStorage dimensions with compressed formats Bug: angleproject:6230 Change-Id: I501ec1e6974bdc7e6731dcb88045edb0aa22b888 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067329 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Kenneth Russell d8cb9967 2021-08-04T18:15:51 In WebGL, constrain base level of compressed textures. Enforce that if a mipmap level > 0 is specified for a compressed texture, that it implies that the size of the base level of the texture is a multiple of the format's block size. Makes the test changes in https://github.com/KhronosGroup/WebGL/pull/3304 largely pass. There are some needed follow-on fixes to that PR, and this CL changes a sub-test result in the existing S3TC and S3TC-sRGB tests which will need to be suppressed Chromium-side first. Bug: angleproject:6245 Change-Id: I7723d7882091b78a353d8d273e80b819dd384021 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3072568 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 728baa50 2021-08-13T18:47:50 Revert "Skip UpdateRenderTargetCacheOnDestroyTexStorage on Metal" This reverts commit bf4eb2636ebae19cfa8d3edb9828bdb464360df5. Reason for revert: branch created before angle_end2end_tests_expectations.txt existed, need to use the old-fashioned suppression method. Original change's description: > Skip UpdateRenderTargetCacheOnDestroyTexStorage on Metal > > Fails in M92 branch, e.g. > https://ci.chromium.org/ui/p/chromium-m92/builders/try/mac_optional_gpu_tests_rel/67/overview > > Bug: chromium:1234829 > Change-Id: I74b9694a16fccc4ba358db5dc1168cf9e21ecab0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3094707 > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bug: chromium:1234829 Change-Id: Ifd01947e0ae79619cec3290e4afe1489933a650e No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093248 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov bf4eb263 2021-08-13T14:09:14 Skip UpdateRenderTargetCacheOnDestroyTexStorage on Metal Fails in M92 branch, e.g. https://ci.chromium.org/ui/p/chromium-m92/builders/try/mac_optional_gpu_tests_rel/67/overview Bug: chromium:1234829 Change-Id: I74b9694a16fccc4ba358db5dc1168cf9e21ecab0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3094707 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
angle-autoroll 26cf48c1 2021-08-13T11:27:36 Roll VK-GL-CTS from bf3d63599bad to 7103920041db (7 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/bf3d63599bad..7103920041db 2021-08-13 alexander.galazin@arm.com Merge pull request #276 from Ella-0/master 2021-08-12 ilkka.saarelainen@siru.fi Add missing items to android cts mustpass list 2021-08-12 soroush.kashani@imgtec.com Fix bug in compressed PixelStorageModes tests 2021-08-12 david.emett@broadcom.com Work around bogus GCC 9 warnings 2021-08-12 antto.makinen@siru.fi Fix a GraphicsFuzz coverage test 2021-08-06 ari.suonpaa@siru.fi Added layered AHB EGL tests 2021-08-06 rgarcia@igalia.com Improve buffer to buffer copy tests 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 ynovikov@google.com,angle-bots+autoroll-info@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 Manually suppressing some newly added tests in dEQP-EGL.functional.image.*android_native* Bug: angleproject:6277 Tbr: ynovikov@google.com,angle-bots+autoroll-info@google.com Change-Id: I8c942b49e5e8216695d449b8d1ef38d0f1198d0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3093790 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten fa74421d 2021-08-06T18:30:57 Capture/Replay: Add LoadEGL() Add LoadEGL() to gen_restricted_traces.py. This is a pre-requisite to frame capture being able to generate EGL calls, which is required for multi-context support. Bug: angleproject:5878 Change-Id: I210035aecad42173626834588bae51019deaa076 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078994 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Kenneth Russell ff64d2c7 2021-08-06T21:24:09 Choose direct-to-Metal translator through a feature. Define directMetalGeneration in FeaturesMtl.h. If ANGLE_ENABLE_METAL_SPIRV is defined to 1 (still the default), directMetalGeneration defaults to false. It can be overridden via the standard ANGLE mechanism: ANGLE_FEATURE_OVERRIDES_ENABLED=directMetalGeneration It can also be overridden by instantiating angle_end2end_tests with the directives: WithDirectMetalGeneration(ES2_METAL()) WithDirectMetalGeneration(ES3_METAL()) These directives aren't working properly yet though. The direct-to-Metal compiler is instantiated, but the _DirectMetalGen versions of the tests fail. They pass when switching the Metal backend's default behavior using the above environment variable. This will be debugged in follow-on CLs. Thanks to syoussefi@ for the prototype of this CL: https://chromium-review.googlesource.com/3076129 Bug: angleproject:5505 Change-Id: I188ab89abc75bf89c5ed2d90102af311feaa1960 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3079083 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Lubosz Sarnecki 331be08f 2021-08-11T11:28:29 Tests: Add Sonic The Hedgehog trace. Test: angle_perftests --gtest_filter="*sonic_the_hedgehog*" Bug: angleproject:6181 Change-Id: I40a5affe804a747445ef620c4f78e842c1eed1ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087444 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny d3031c65 2021-08-11T12:30:01 Capture/Replay: Update expectations with bug IDs In addition, update two tests that are just failing and no longer crashing. Bug: angleproject:6166 Change-Id: I9f19bf411c79c39f4f1f3156a9f8682609d6b3d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3087445 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Yuly Novikov 392ba63f 2021-08-10T19:20:47 Suppress 2 dEQP GLES3 tests on Win SwANGLE functional.shaders.operator.unary_operator.minus.lowp_uvec3_vertex functional.shaders.operator.unary_operator.minus.mediump_uvec3_vertex Fails on x86 when llvmorg-13-init-15561-gf98ed74f Clang rolled. Unfortunately, expectation file doesn't support architecture, so suppressing on both x86 and x64 Windows, keeping the test running on x64 Linux. Bug: angleproject:6265 Change-Id: I15f8955eaf38c95d0d3036378d97afdb1871d44e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3088016 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jeff Vigil 6136620b 2021-03-25T15:43:06 Reland "EGL: GLES: Implement GL_EXT_protected_textures" This is a reland of 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa This removes changes in gl backend. Original change's description: > EGL: GLES: Implement GL_EXT_protected_textures > > Implement EGL_EXT_protected_content Images > Add protected member to Images and Textures > Add error when creating objects if not supported or > does't match native buffer > When creating siblings pass protected state > Add extension caps > Add Validation > Add GetTexParameter and SetTextparameter > Add protected to Texture and state > Expand tests for images and textures > > Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest > > Bug: angleproject:3965 > Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852 > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest Bug: angleproject:3965 Change-Id: Id36d697c53afc0f0dadf92bda4565f9157f4fc2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076825 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 0bd5cac2 2021-08-06T17:56:58 Allow BufferSubData with persistently mapped buffers Per the GL_EXT_buffer_storage extension: What commands are affected by the relaxed errors for persistently mapped buffers? RESOLVED: In GL 4.5 the following commands have the relaxed language BufferSubData, ClearBufferSubData, CopyBufferSubData, GetBufferSubData and InvalidateBufferSubData. Of these commands the only ones that apply to ES 3.1 are BufferSubData and CopyBufferSubData. However, if additional extensions add any of the other commands and EXT_buffer_storage is supported, they would have the same behavior in ES. Therefore we need to allow BufferSubData and CopyBufferSubData on persistently mapped buffers. Current we fail these scenarios in validation. This was detected when running Fortnite on Android using the game's GLES backend. Also added two tests: - StorageCopyBufferSubDataMapped to recreate the exact Fortnite scenario using glCopyBufferSubData. - StorageBufferSubDataMapped is a contrived case to cover glBufferSubData Test: BufferStorageTestES3.StorageCopyBufferSubDataMapped/* Test: BufferStorageTestES3.StorageBufferSubDataMapped/* Bug: b/180418810 Bug: angleproject:5658 Change-Id: Ib678e84f367934656ec10f0f4ad0d35ac687f0b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078316 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill d25c9d7f 2021-07-07T12:15:12 Add perf tests runner script. This script will be responsible for running the perf tests multiple times to try and stabilize measurements. We'll use it on the bots instead of just running the perf tests directly. Because the script invokes the binary multiple times, this slows down execution. Most significantly on Android, where we now need to use 20 shards, up from 6. Also marks one test as flaky on OpenGL. Bug: angleproject:6090 Change-Id: I5280035cb0bdb290a68dc6961a384eaf4b40dd4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3011422 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Tim Van Patten 06b19ed8 2021-08-06T17:02:36 Framecapture: Update file naming Update the file naming to add "shared" and remove the unnecessary frame numbering: angle.angledata.gz angle_capture_context1.cpp angle_capture_context1.h angle_capture_context1_files.txt angle_capture_context1_frame001.cpp angle_capture_shared.cpp angle_capture_shared.h Bug: angleproject:6256 Change-Id: I6454a3dc412896557f29faee1269dfa55146d43b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3078908 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 4686da27 2021-08-06T18:13:14 Add GetImage test with RGB. This test covers a case in T-Rex with an unused RGB texture that was tripping up serialization. It isn't currently possible to make the test fail but it does cover some new code paths. Bug: angleproject:5133 Change-Id: I87c066779f270752bed3c1c1882951c71f16d378 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076133 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Gert Wollny 6c415487 2021-07-26T13:08:46 Capture/Replay: Add option to override test disabling In order to be able to easily run disabled tests, add a flag --force-run-capture that makes it possible to ignore the SKIP_FOR_CAPTURE designation. Bug: angleproject:6166 Change-Id: I195248045d5c928d965f16b5ae17681d78686374 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053363 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny af35fd22 2021-07-12T14:58:01 Capture/Replay: rework test runner to use expectations This CL changes the test runner to use a expectation file for all the tests including failing tests. The expectation file is also used to disable running certain tests. e.g. because they are known to crash or result in compilation failures, which then take down all the test in the corresponding batch. The capture_replay_tests.py script will report failure if the test result doesn't meet the expectation. In order to keep the current behaviour to run subsets of tests in tact, the test filter is also applied to the expectation. In addition to the "normal" expectations, FLAKY was added to tag tests that can be captured and compiled correctly but have unstable results. This CL also adds the expectation for ES2_Vulkan_SwiftShader and ES2_Vulkan Bug: angleproject:6166 Change-Id: Ica05303e6ae3b7c6d2b6749c2c9c6593b659cc1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024209 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi e70a1444 2021-08-05T12:49:21 Vulkan: Fix draw FBO1 followed by resolve FBO2 When syncing the framebuffer for blit/resolve, the render pass was not closed. This would be done later when necessary, except that onFramebufferChange called from FramebufferVk::syncState attempted to adjust the render area of the render pass (as it considered it open). If FBO2 is larger than FBO1, this would cause the render area of the previous render pass to become larger than the framebuffer size. This change makes sure that onFramebufferChange considers the render pass closed no matter what. Test is based on patch from steven@valvesoftware.com Bug: angleproject:6244 Change-Id: Iaec04232cfd2af04ba2564fd2de1dd5f08a40df6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076620 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade c664601d 2021-04-26T17:08:06 Allow drawing if a fragment shader isn't present According to the OpenGL ES 3.1 spec: 7.3 PROGRAM OBJECTS If there is no active program for the vertex or fragment shader stages, the results of vertex and fragment shader execution will respectively be undefined. If there isn't an active program for only one of these shader stages, the results of the other shader stage are still defined. To handle this, we no longer no-op the draw call if one of these is missing. We only no-op the draw if there's no vs. This allows for transform feedback to be captured when there's only a geometry and vertex shader. Tests: KHR-GLES32.core.geometry_shader.api.program_pipeline_vs_gs_capture Tests: KHR-GLES32.core.separable_programs_tf.geometry_active Tests: ProgramPipelineTest31.PipelineWithoutVertexShader* Tests: ProgramPipelineTest31.PipelineWithoutShaders* Bug: angleproject:5579 Change-Id: If9849cc398c307232435b167ab12431fa4258201 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906723 Commit-Queue: Brandon Schade <b.schade@samsung.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 934ffac6 2021-08-05T15:43:32 Vulkan: Propagate BufferData changes to shader storage buffer binding This CL adds context to the observer list of shader storage buffer. When BufferData is called on the current bound shader storage buffer, context gets notified and DIRTY_BIT_SHADER_STORAGE_BUFFER_BINDING gets set. Bug: b/195678877 Change-Id: Id8a5266942e33f0a834d7c57fdde75f57e93d347 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076177 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 63248e7f 2021-08-05T23:49:23 Translator: Fix dead-code-elimination corner case The DCE code had a corner case bug where a switch case containing multiple DCE'ed `break`s followed by another case would cause some of the DCE'ed statements in the first case to be doubly pruned, failing on an assertion. This was due to the fact that visitBlock() was asking traversal to continue if a new case was visited while pruning nodes, but the traversal does not take into account that some statements need to be skipped and so would also visit the pruned statements. If the pruned statements contain a branch instruction, they get re-pruned. The visitBlock() function that does the pruning is reworked so that it more clearly traverses the statements. Bug: chromium:1237200 Change-Id: Ib078c2ea73ade756c7d7ef5a5c489fa53c39f352 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3077659 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 0cd99779 2021-08-05T10:35:10 Translator: Propagate precision to children nodes Similarly to glslang, when the precision of a node is determined, propagate that precision to any of its children that doesn't already have a precision. Ultimately these should only include TIntermConstantUnion nodes. Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: I121231d04c7cf92fc3f07716019ffe88eca48b88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3075126 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
SeongHwan Park 16a61bbb 2021-08-05T23:06:22 D3D: Fix not notifying RenderTarget release in TextureD3D This could lead to use-after-free for the RenderTarget object. Bug: chromium:1234829 Change-Id: I73d4547b8f09f2f2cf3f7f8394f7f573fe5a4ef5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063858 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao c5fa9a44 2021-08-05T15:27:47 Vulkan: Add test for BufferData change is propagated to SSBO properly When BufferData is called while previous reference is still pending, ANGLE may allocate a new storage. When this happened, we need to ensure context gets notified so that it can pick up new buffer storage. Bug: b/195678877 Change-Id: Idb591ed49e7d2c9e2dc5803f65d00894687ae1d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076820 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao e28fb127 2021-08-05T14:32:16 Vulkan: Propagate BufferData changes to atomic counter binding This CL adds context to the observer list of atomic counter buffer so that it gets notified when BufferData is called on atomic counter buffer and set dirty bit accordingly. Bug: b/195678877 Change-Id: I924cf12ef54b5986d5c56b9e3b71584039490206 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076170 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 52aae056 2021-08-05T14:22:26 Vulkan: Test for buffer storage propagate to AtomicCounter properly When BufferData call result in storage change, it should propagate the change to atomic counter buffer binding properly. This CL adds a test to call BufferData on the same buffer while the previous usage of buffer is still pending (thus may trigger reallocation of buffer storage) and see if shader reads correct atomic counter buffer data. Bug: b/195678877 Change-Id: Iac94c3bd0a73573da0bfc814d33b5cd43475772d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076819 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Lubosz Sarnecki 4a841e6a 2021-07-27T13:30:26 PerfTests: Replay EGL color spaces. Add EGL_GL_COLORSPACE_KHR to the EGLWindow's surface attributes if EGL_KHR_gl_colorspace is available. Require the extension to be available if the color space differs from the default EGL_COLORSPACE_LINEAR value. Bug: angleproject:5857 Change-Id: Ib33cbed7d4b115979bd847418cb5cd2b96f4f173 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056374 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reid Kleckner 89dbbb2a 2021-08-05T13:14:12 Skip validation of stderr in TestSuiteTest.RunFlakyTests There is a bug (crbug.com/1234124) causing the profile runtime to print errors about failing to write the profraw file. Don't validate stderr in these builds until that is fixed. Bug: chromium:1234124 Change-Id: Ie1e3a3eaf7dc0e2c20064822f774cc85fe79d3bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076479 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 9b646c13 2021-08-04T17:24:18 Tests: Add Final Fantasy trace Test: angle_perftests --gtest_filter="*final_fantasy*" Bug: b/195607411 Bug: angleproject:6246 Change-Id: Ie0f02d082d408a6eb18555741ab01cccc446d01f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3073380 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 061188a7 2021-08-04T10:07:47 Translator: General clean up General clean up done as part of other changes, split to simplify review. Bug: angleproject:4889 Bug: angleproject:6132 Change-Id: Iade9954d187a759be9edd0e3754be007f4133c56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071598 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 6fe91881 2021-08-02T11:13:13 Translator: Simplify RecordConstantPrecision Just before ESSL output, this transformation made some constants specified through temp variables such that their precision can be specified. This was done in cases where the precision actually affected the expression being evaluated. This transformation is simplified by declaring constants more conservatively as variables, and not stringently attempting to identify whether that's necessary. This is still not done in trivial cases. This change is in preparation for another change that overhauls precision propagation through the nodes. This change removes all references to TIntermTyped::getPrecision() outside the precision promotion code itself. Bug: angleproject:4889 Change-Id: I135b2b3241aa2f76219b209241c3844f1d09ccd2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067948 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 9da4e52b 2021-08-04T09:13:33 Tests: Add PUBG Mobile battle royale trace Test: angle_perftests --gtest_filter="*pubg_mobile_battle_royale" Bug: b/180418573 Bug: angleproject:6087 Bug: angleproject:6240 Change-Id: I722f249a7aafdd52be96f214d56b7cfa650ae778 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071662 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 1ce78397 2021-07-30T16:51:45 Remove support for WEBGL_debug_shader_precision This extension was rejected, and the implementation was hacky. This clean up is part of an ongoing work to improve precision handling. Bug: angleproject:6059 Change-Id: If08581ec6f19cf1698ffa3dd6d248dc5e68a1d31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064303 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 7c072f7e 2021-08-04T09:02:30 Tests: Add PUBG Mobile skydive trace Test: angle_perftests --gtest_filter="*pubg_mobile_skydive" Tbr: jmadill@google.com, timvp@google.com Bug: b/180418573 Bug: angleproject:6087 Bug: angleproject:6240 Change-Id: Ibcc7a5e84676d7e7e0df3fdad7aada0e23482bf2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3071661 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 09d5047b 2021-08-03T01:31:03 GL: Remove the rewriteVectorScalarArithmetic workaround This workaround was implemented for a bug in Nvidia driver 387 which is end-of-life. More recent driver branches (390 and 4XX) are fixed, and so this workaround is no longer required. The implementation of the workaround itself could introduce bugs. Bug: chromium:772651 Bug: chromium:1201084 Change-Id: I3db179eb90d9124235bdad2daacc712302906d8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067952 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
SeongHwan Park 215d00b1 2021-08-03T23:34:02 D3D11: Add validation for storages size in updateBufferStorage The source/dest BufferStorage used by the updateBufferStorage may have a raw buffer ptr value of null. Add size validation to prevent null crashes. Bug: angleproject:6235 Change-Id: I57ed1ae0e558bd2f61273c64ed067958a1603425 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3069000 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade 217acac2 2021-07-21T12:42:56 Vulkan: Add support for EXT_primitive_bounding_box 1. Added support for EXT_primitive_bounding_box extension 2. Renamed shader variable gl_BoundingBoxEXT[] to ANGLEBoundingBox[] Bug: angleproject:3576 Test: dEQP-GLES31.functional.primitive_bounding_box.* Change-Id: I15fa9af50c6fd8e86d225670ddd8eb39f6e65d35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053618 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 747d5323 2021-07-27T13:30:59 gen_restricted_traces: Add kReplayDrawSurfaceColorSpace. Use default color space if the trace doesn't specify one. Use Python 3.6 f-strings for the possibility to have default values at all positions and remove the now redundant defaults string. This breaks Python 2 compatibility for gen_restricted_traces.py. See PEP 498: https://www.python.org/dev/peps/pep-0498/ Bug: angleproject:5857 Change-Id: I532014e8e64ea792604a96a42ad998564882d801 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056372 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 61517a16 2021-08-02T16:49:32 Remove extra angle:: uses from ANGLEPestTest.cpp. Bug: None Change-Id: I7101398504c547b97b9184c56b252bef5198cecb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067510 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill fc6ce9ba 2021-08-02T13:47:36 Fix unreachable case in test instantiate. This error would only trigger when the "null" back-end was disabled. This would happen on official builds of Chrome. Bug: chromium:1235656 Change-Id: Icd516513fe28b2b6d6a451503fc690093371acb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067759 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 26329cb9 2021-07-30T09:55:24 Test Runner: Allow listing tests on Android. Because of quirks with the Chromium-provided Android test runner, we need to use a few tricks to get the test list output. We add placeholder output for a single test to trick the test runner into thinking it ran the tests successfully. We also add an end marker for the tests list so we can parse the list from the more spammy Android stdout log. Will enable a Python wrapper script to list and run performance tests outside of the GTest harness. Bug: angleproject:6090 Change-Id: I810d4722e9a6efa03ef94208e516401890af1c37 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062240 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 0ce5f85f 2021-08-02T12:05:17 Capture/Replay Tests: Skip crashing test. PBOCompressedTextureTest.PBOCompressedSubImageWithUnpackRowLength/* Was added in a CL that didn't test win-trace-rel. Bug: None Change-Id: I91b056b50b53a302816564d6f12a0ef0f765e675 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067758 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi aca9f2e2 2021-07-29T17:49:26 Vulkan: SPIR-V Gen: Fix constructors with uniform parameters When the constructor contains parameters from interface blocks, they may have SPIR-V type specializations that was not previously accounted for. The code is made more robust by retrieving the column/component types when generating constructors through TTypes instead of modifying SpirvTypes directly. Bug was caught by the WebGL CTS. Bug: angleproject:4889 Change-Id: I6c9df17a97fac8622dea55ed67c7bae1ce16d1bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061640 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 3a6a0e91 2021-08-02T08:01:33 Remove ASSERT in computeRowPitch about row length. Compressed texture image uploads ignore unpack parameters. So it's not an error if these parameters have non-default values. We just ignore them anyway. This ASSERT was causing a crash in some edge cases in debug and dcheck builds. ASSERT introduced in https://crrev.com/c/348064 Bug: chromium:1235031 Change-Id: I1db6ebc9f5572a92ab16bb13da4c236f6fcb8ce2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3064986 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi ae8ef039 2021-07-30T00:43:14 Translator: Correctly respect precision of gl_FragColor/Data These builtins are declared with a mediump precision. However, during translation to Vulkan GLSL, the precision was not output and as such glslang treated them as highp. Discovered through comparison with SPIR-V output from ANGLE which included more RelaxedPrecision operations. Bug: angleproject:4889 Change-Id: I7974478e87ad20115345d679f8f035492be1f349 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3062204 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 246e95a5 2021-07-30T21:40:48 Disable Precise unittests without SPIR-V gen enabled Half the tests fail with glslang, which have the expectations set appropriately. When SPIR-V gen is disabled in build, when the unittest attempts to run the SPIR-V gen path it will use glslang instead and cause test failures. The whole suite is disabled temporarily when SPIR-V gen is disabled (i.e. non-dcheck builds). Bug: angleproject:4889 Change-Id: I8686eafef6821c6207c94f991cd8af2fb65a87ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3063943 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi ebe943e2 2021-07-29T11:19:33 Vulkan: SPIR-V Gen: Fix gl_Clip/CullDistance These built-ins can be redeclared in the shader. The translator took these redeclarations (and gl_LastFragData) as UserDefined symbols. There were a number of hacks such as in name generation and CollectVariables, to special-case these redeclarations. This change instead makes sure that these variables continue to be considered built-ins with the appropriate qualifiers. A number of fixes are made accordingly: - Hacks are removed. - In fragment shaders, ANGLEClipDistance was initialized with gl_ClipDistance for further use by the shader. The code generation however mistakenly produced `gl_ClipDistance[0] = ANGLEClipDistance[0];`, which caused compilation failures by glslang, but passed the tests accidentally because they expected link failures (see next item). - CollectVariables is fixed to correctly collect gl_Clip/CullDistance in fragment shaders; previously they were collected as output varyings, and therefore the aforementioned link error was not produced in the tests after the compilation error was fixed. Additional fixes: - The transformation of gl_Clip/CullDistance was always ever done on one of them due to misplaced breaks in the loop that detected their presence. - The transformation of gl_CullDistance was skipped when it was not redeclared. Validation is added to make sure these built-ins always have the correct qualifier even when redeclared. SPIR-V gen support for these variables have been fixed as well. Bug: angleproject:4889 Change-Id: Ic8bf2c508357035cb937ef41a28ae22ffc533ebe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3059921 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a83c9108 2021-07-29T17:13:41 Vulkan: SPIR-V Gen: Fix nested ternary operators The OpPhi instruction used to implement ternaries referenced to the blocks pregenerated for the true and false cases. However, if there were other code nested inside that could generate blocks (other ternary expressions or short-circuits), that would be wrong. Instead, the last block id is taken every time the true or false case is entirely visited (similar to how it's done in the short-circuit implementation). Bug was caught by the WebGL CTS. Bug: angleproject:4899 Change-Id: I71be86989dfe9596a13940ce657a7e67849e86bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061639 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 2b23aae4 2021-07-29T16:39:28 Vulkan: SPIR-V Gen: Support vec(..., mat) Matrices specified in vector constructor arguments were not correctly handled w.r.t to casting (caught by the WebGL CTS). Bug: angleproject:4889 Change-Id: I70253f049a651fc5f439b56d1e4d8f785813b605 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061638 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell aec5e65c 2021-07-28T00:36:12 Get direct-to-Metal backend to run angle_end2end_tests. Cherry-pick nameless struct fix from Apple in https://bugs.webkit.org/show_bug.cgi?id=227482 . Fix SeparateCompoundStructDeclarations pass to stop generating multiple declarations; thanks syoussefi@ for advice. Incorporate additional passes from TranslatorVulkan (MonomorphizeUnsupportedFunctionsInVulkanGLSL, RewriteArrayOfArrayOfOpaqueUniforms, SeparateStructFromUniformDeclarations) needed by RewriteStructSamplers pass in TranslatorMetalDirect. Fixes many assertion failures in GLSL tests. Moved these passes out of tree_ops/vulkan. Thanks again to syoussefi@ for advice and help. Disable a validation check related to the RewritePipelines pass. Skip two tests that were failing for other reasons. With these changes, angle_end2end_tests runs to completion when the direct-to-Metal backend is turned on. There are still ~1300 failures of the ~4000 tests which will be investigated next. Bug: angleproject:5505 Change-Id: Ibca77822543e8e8e8d2a8c862e92cdf74bfa3545 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058524 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 22ae4ce0 2021-07-28T16:06:49 Revert "Disable RunAppAsync and RunAppAsyncRedirectStderrToStdout" This reverts commit f4f866ce289423d691a0edc0d44d13f4de16f897. Reason for revert: These tests should not be disabled. The culprit is fixed per crbug.com/1233361 Original change's description: > Disable RunAppAsync and RunAppAsyncRedirectStderrToStdout > > The tests are blocking the CQ due to flakiness. > > Bug: chromium:1233361 > Change-Id: Ib0283e201c271379364a177bea130d63322eee53 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058233 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: chromium:1233361 Change-Id: I24682f74d790d40f58a9526aaaaa842c3df23ec0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058502 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 96ccf3f4 2021-07-29T12:38:21 Translator: Consolidate EvqFragDepth and EvqFragDepthEXT They were the same thing. Fixes SPIR-V generation which only handled EvqFragDepth. Bug: angleproject:4889 Change-Id: Id2c35f4c5a26e43ad16a420cc0306756a1add082 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3059922 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 3036e090 2021-07-29T15:55:39 Vulkan: Direct SPIR-V Gen: Support the precise keyword The precise keyword is different in GLSL in that it defines what arithmetic operations _that have led to the value being assigned to a variable_ should be done precisely (i.e. not "contracted"). A tree traverser is implemented that detects precise access chains and applies precise-ness to the right hand side of assignment expressions to said access chains. This is only done if the shader uses the precise keyword in the first place. The algorithm for this is inspired by the implementation in glslang. This change additionally: - Fixes parser to allow precise on function parameters - Fixes GLSL code generation to output precise on struct members and function parameters. Bug: angleproject:4889 Change-Id: Ie3808c3c8c08da308e88af20f5f90379d9d14d47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056369 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell e74638fe 2021-07-28T19:03:43 Disable Metal shader cache again in angle_end2end_tests. This hooking was removed in https://chromium-review.googlesource.com/3010486 and sped up local test runs, but seems to have reintroduced flakiness on the Mac AMD Retina bots. Bug: chromium:1233864 Bug: angleproject:5505 Change-Id: I46d95545fbbedc0e881e3a2832a5ac5d5384f405 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057823 Commit-Queue: ccameron <ccameron@chromium.org> Reviewed-by: ccameron <ccameron@chromium.org>
Brian Sheedy b8e8c822 2021-07-27T11:19:59 Suppress Mac 11.4 failures Suppresses several Mac 11.4 AMD failures that were found after we started testing the configuration. Bug: angleproject:6222, angleproject:6223 Change-Id: I4f0f5ac0ab14d2645bb76def3e4ec55d999940fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056839 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Shahbaz Youssefi 8593e0a2 2021-07-28T13:52:06 TestSuite tests: Don't validate stderr until fixed Bug: chromium:1233361 Change-Id: Ibcd66520d7b842211eafb26f9188298c281cbe64 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3058503 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peter Kasting 0d06c3cf 2021-07-26T04:30:39 Fix some instances of -Wunused-but-set-variable. Bug: chromium:1203071 Change-Id: I144165ae5ec47aba88658030a6ba3e371bf31ee7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053616 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>