src/tests


Log

Author Commit Date CI Message
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>
Yuly Novikov bd19620f 2021-07-27T23:45:11 Revert "VulkanExternalHelper: Use VK_KHR_image_format_list extension." This reverts commit 4222d5e5a03f85ca07253d54f3087684fe9447b3. Reason for revert: errors on multiple builders when rolling into Chromium https://chromium-review.googlesource.com/c/chromium/src/+/3057227 e.g. https://ci.chromium.org/ui/p/chromium/builders/try/linux_chromium_asan_rel_ng/924126/overview Original change's description: > VulkanExternalHelper: Use VK_KHR_image_format_list extension. > > To retrieve correct size requirements when the VK_KHR_image_format_list > extension is enabled, it must be used to match VkImages created in > vk_helpers. > > RendererVk: Fully enable VK_KHR_image_format_list. > Enable the extension on non-AMD and non-ARM platforms. > > Bug: angleproject:5281 > Change-Id: I3ca60bf6efcf9d9c10d4d96a3fe91b999eb044f7 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035047 > Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Bug: angleproject:5281, chromium:1233561 Change-Id: I3b15bb2fc2fb779adac8bbf5d805727a25b5795c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057071 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Lubosz Sarnecki 4222d5e5 2021-07-16T16:26:17 VulkanExternalHelper: Use VK_KHR_image_format_list extension. To retrieve correct size requirements when the VK_KHR_image_format_list extension is enabled, it must be used to match VkImages created in vk_helpers. RendererVk: Fully enable VK_KHR_image_format_list. Enable the extension on non-AMD and non-ARM platforms. Bug: angleproject:5281 Change-Id: I3ca60bf6efcf9d9c10d4d96a3fe91b999eb044f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035047 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi dbe986d7 2021-07-26T01:43:44 Vulkan: SPIR-V Gen: Fixes to tessellation shader support - TCS barrier() built-in is correctly looked up - Patch decorations are fixed Bug: angleproject:4889 Change-Id: I1befcaca85a965c9d46b1b41ec74597de44bf2b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052687 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi acfd63a4 2021-07-26T01:02:11 Translator: Remove GLSL rules from the ESSL-only symbol table Shaves ~36KB off of ANGLE's binary size on Android. Bug: chromium:1084580 Change-Id: I4711c6bd28437a43b7dc63be4cfcdaed7ae11ba2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052686 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 715bab1f 2021-07-25T23:35:17 Vulkan: SPIR-V Gen: Fixes to geometry shader support - max_vertices=0 is invalid in SPIR-V and is fixed (similarly to anglebug.com/5411) - gl_PrimitiveID used in fragment shaders requires the Geometry capability. Bug: angleproject:4889 Change-Id: If8c6a9d455d0582d61c3c52b5f773bcb5ca64b53 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052684 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 3bd2273b 2021-07-16T12:33:11 Capture/Replay: Only perform call updates on valid calls. Bug: angleproject:5133 Change-Id: Ib1a6ae1ca9ff9717c4e51f8908f5a4ee132d72ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035443 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Gert Wollny <gert.wollny@collabora.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny d67cab22 2021-07-12T13:48:22 Capture/Replay: Handle missing context serialization Some ContextLost* tests do weird things with the context serialization which results in a mis-match of available context serializations. In this case check whether both serializations are missing, if so consider this to be an equal contexts states, otherwise, if only one serialization is available, report failure. While touching this code, also remove an unused parameter from the context serialization compare function. Disable tests that still fail with this change. Bug: angleproject:6157 Change-Id: Iee6cc7d65437112e38919cff59804e2b7f9467da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021061 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi a5b7655c 2021-07-23T22:46:35 Vulkan: Unsupress fixed test Fix landed in glslang. Bug: angleproject:6178 Change-Id: Ie3d2a9535b4ed0d484c97e08be069ff9e27cdde1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3051313 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8bf2e5ec 2021-07-23T16:54:16 Vulkan: SPIR-V Gen: Fix switch with default at the end A minor bug was making a switch with default at the end to jump to the merge block instead of the default block. Bug: angleproject:4889 Change-Id: Ied434fab949b10d45a0db1242c1b8535a5f4f773 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048321 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 24610ba6 2021-07-23T22:46:11 Suppress failing SPIR-V gen tests Bug: angleproject:4889 Change-Id: Ie5a5cb5c8f947e2d90861371893367b9ec341f19 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3051312 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d0c03ff4 2021-07-22T14:55:51 Vulkan: SPIR-V Gen: Fix lvalues passed to in/inout parameters In GLSL, these values are semantically copied when passed to a function as an in or inout parameter. For example in: bool f(inout vec4 a, inout vec4 b) { a = vec4(0); return all(equal(a, b)); } var = vec4(1); bool result = f(var, var); result is expected to be false. In SPIR-V, every parameter is semantically passed by "reference". glslang conservatively uses temporaries to pass to functions. An optimization in ANGLE didn't create temporaries for unindexed lvalues, which did not take into account the above fact. This optimization is limited to out parameters now. Bug: angleproject:4889 Change-Id: Ie1b4b1cecba847ba63d5810d01d0856823b89ddc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046103 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi cc69d861 2021-07-22T12:49:39 Vulkan: SPIR-V Gen: Fix textureProj's coordinate adjustment The OpCompositeInsert's parameters were given in the wrong order. Additionally, some instructions were not having RelaxedPrecision applied correctly; this is fixed by deriving the decorations from the type of the argument that's passed in a function instead of the type of the parameter itself. Bug: angleproject:4889 Change-Id: I34a54fcc0ef1699e554f9e1abb94c93a5b34b6d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046102 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 9d23ae62 2021-07-22T12:32:44 Vulkan: SPIR-V Gen: Fix conditionals with pruned blocks Rewored the visitIfElse function to simplify the logic and correctly handle if-else constructs where the true block is pruned. Bug: angleproject:4889 Change-Id: Ib968a2fe65f4b6463158fd76e7d67757115ee832 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046101 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi ad8c3257 2021-07-22T11:40:01 Vulkan: Fix bresenham line emulation in shaders with return RunAtTheEndOfShader should have been used to ensure that the appended code runs at the end of the shader no matter if the shader includes return statements. Bug: angleproject:4889 Bug: angleproject:6206 Change-Id: I848eafdf3c7bc63206a7f82cdf0badad335fa3bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046100 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 02c5cdbd 2021-07-21T23:08:17 infra: Enable gles2 deqp tests with direct SPIR-V generation Enabled on Linux/Nvidia, Windows/Nvidia and Pixel4. Bug: angleproject:4889 Change-Id: I50c5e31097bd7e1539caf7b229a249cbfa62b93d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042557 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill fbffcf7b 2021-07-23T14:15:18 dEQP: Suppress two tests with undefined behaviour. dEQP-GLES3.functional.shaders.operator.unary_operator.minus.lowp_uvec4_vertex dEQP-GLES3.functional.shaders.operator.unary_operator.minus.mediump_uvec4_vertex See bug for more details. Bug: angleproject:6214 Change-Id: Ibc69dbcd1524470da620c31d41da20f69dfbaae2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049254 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 62628799 2021-07-21T22:55:22 Vulkan: SPIR-V Gen: Support dEQP A temporary condition for direct SPIR-V generation is added to test expectations while this work is in progress, so test suites can be partially enabled. 32 tests are currently failing. Bug: angleproject:4889 Change-Id: Icf0f6ef80d30fdb7564d8ecf928e67ca58ace86f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042556 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 951b04bb 2021-07-21T12:20:13 Vulkan: SPIR-V Gen: Support scalar constructors In GLSL, the scalar constructor can be given a vector and matrix, in which case the first element is selected. This case was not previously handled. Bug: angleproject:4889 Change-Id: Ibf276883fc7396b750981a4e469ff9b152c6e700 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042554 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 7f199d75 2021-07-20T00:11:23 Vulkan: SPIR-V Gen: Support geometry shaders Geometry shader built-ins are implemented. A bug in DeclarePerVertexBlocks is fixed w.r.t to gl_PerVertex arrays and a new AST validation option is added to catch that sort of error. Bug: angleproject:4889 Change-Id: I40b2929e450eac8ae840bbf1a1583e6c4c047c88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041623 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill c408926f 2021-07-22T12:00:59 Revert "EGL: GLES: Implement GL_EXT_protected_textures" This reverts commit 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa. Reason for revert: Suspected for breaking ANGLE->Chrome roller. Bug: angleproject:6204 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> Bug: angleproject:3965 Change-Id: Ia3ef260a17097b474189ccad5b235a9db99ee00b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043889 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill 03cf7888 2021-07-22T08:32:25 Test Runner: Remove extra quotes from histograms. We were double-quoting the test names. Bug: angleproject:6090 Change-Id: I69ce089ef20068b408de7156bdbade922cdefe95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043890 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 6e261453 2021-07-20T22:34:33 Vulkan: SPIR-V Gen: Fix I/O block arrays Since the qualifier on intermediate nodes are EvqTemporary, the code that autodeduced the block storage of I/O blocks was incorrectly assigning them std140 when an indexed I/O block array was encountered. This resulted in duplicate types in the SPIR-V. This is generally benign (other than creating an unnecessary type) except for gl_PerVertex as it adds BuiltIn decorations. gl_PerVertex may be an array in geometry and tessellation shaders. Bug: angleproject:4889 Change-Id: Iaa8e414ae01a4be127dc52df0e9406546b23d24c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041621 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade f9dbd4ef 2021-03-29T16:31:26 Vulkan: Add Validation checks in FramebufferTextureEXT This change makes FramebufferTextureEXT set a validation error if <level> is not a supported texture level. This change also makes FramebufferTextureEXT set a validation error if <texture> is the name of a buffer texture. Test: KHR-GLES32.core.geometry_shader.layered_fbo.fb_texture_invalid_level_number Test: KHR-GLES32.core.geometry_shader.layered_fbo.fb_texture_argument_refers_to_buffer_texture Bug: angleproject:5579 Change-Id: Iedba8adc8faec02822374c3c1862b7abd031fcc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2796152 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi e9decf0c 2021-07-19T14:29:21 Vulkan: SPIR-V Gen: Support framebuffer fetch Bug: angleproject:4889 Change-Id: Ia75b45b5d0f6cb3b6ca8a8f8a987bb857e45ad33 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040120 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 05eb0a32 2021-07-19T16:14:34 Translator: Allow subpassLoad in AST in ESSL subpassLoad is available to desktop GLSL, but not GLSL ES. With this change, subpassLoad is made available internally to the AST so that framebuffer fetch's use of this built-in can be simplified. Additionally, this makes the tree more consistent in that there's no function call without a corresponding function declaration. A follow up change will add an AST validation to enforce this. Bug: angleproject:4889 Bug: angleproject:5454 Change-Id: I3fa502dc4b29eab7f34940466e283cffd218d746 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040118 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jeff Vigil 6210a9b3 2021-03-25T15:43:06 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>
Jeff Vigil d2b659f9 2021-03-25T15:40:58 EGL: implement EGL_EXT_protected_content Context Add Validation check to Contexts and Surfaces Add Vulkan protected memory features and properties Add protected member to Surfaces and Contexts Implement hasProtectedContent in Vulkan Add QueueFamily helper, extent DeviceQueueMap Protected Swapchains always on for Android Add EGLProtectedContentTest Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest Bug: angleproject:3965 Change-Id: I9352b1e594f71bb4e89cee7137a468940d186b1b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2800413 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi a8807cbf 2021-07-17T00:00:27 Vulkan: SPIR-V Gen: Support interpolateAt* The interpolateAt* builtins take their first argument as a pointer, so only the OpAccessChain result should be given to the corresponding SPIR-V instruction. A test is written in this change to handle interpolateAt* when given a swizzled lvalue, which is not representable in SPIR-V. This can be supported by having the AST transform: interpolateAtX(value.zy) to: interpolateAtX(value).zy which can be done right when the function is parsed and the AST node for it is created (by taking the swizzle out of the parameter and applying it to the node). However, swizzled lvalues as parameter to interpolateAt* is only allowed in desktop GLSL, and so the test is disabled. From the GLSL ES3.2 spec: > Component selection operators (e.g. .xy) may not be used when > specifying interpolant. Bug: angleproject:4889 Change-Id: I043969f22011e6171c7ae225ded3a5013e8cfa4e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035588 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill e635f6c2 2021-07-20T08:41:07 Add -Wno-implicit-fallthrough to GLES 1 CTS. Bug: angleproject:6198 Bug: chromium:995993 Change-Id: Ib8eb640d567c63d85645f64cc870a286227fb9c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040160 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 32196d8f 2021-07-16T14:49:08 Vulkan: SPIR-V Gen: Support built-ins with out parameters Some built-ins have out parameters; modf, frexp, uaddCarry, usubBorrow, umulExtended and imulExtended. In SPIR-V, they are translated as such: - modf and frexp: Returns the same result as GLSL, with a pointer to store the output parameter. Since SPIR-V cannot create pointers to swizzles, a temp variable is used in that case. - uaddCarry, usubBorrow, umulExtended and imulExtended: These return a struct in SPIR-V, which contains the two output parameters; with lsb in field 0 and msb in field 1. Bug: angleproject:4889 Change-Id: Ic5114f74b9c1013093007e91939f78d5218f2a07 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036088 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 60d76ec1 2021-06-25T17:35:22 Trace Tests: Autodetect Goma. Checks for the existence of the compiler_proxy process. Bug: angleproject:6102 Change-Id: I58848dc7cd62aeb65c28990212f29df6ff66db1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2989672 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Kenneth Russell b3cbfd55 2021-07-07T12:31:57 Fix multiple end2end crashes in direct-to-MSL compiler. This set of changes: - Adds a single place (CompilerMtl::useDirectToMSLCompiler) where the direct-to-MSL compiler can be enabled, still at compile time rather than run time. It is still disabled by default. - Initializes MTLWaitableCompileEventImpl::mShader, without which all shader compiles crash. - Fixes a mismatch of the ANGLERasterizerDisabled variable name in the generated MSL. - Removes the transform feedback bindings as an argument to the vertex shader's main0(). Transform feedback support needs to be reimplemented in this compiler backend. - Added an option to the DriverUniform class to emit as either an interface block or a struct. The direct-to-MSL backend assumes it is a struct. - Disable variable reference validation when referencing either sample mask or rasterizer discard functionality in the shader. - Disable struct usage validation when inserting references to ANGLE_TextureEnv. This occurs during pipeline rewriting and it's infeasible to disable it at that point, so disable it during pipeline rewriting - which means it's disabled for all shaders. - For angle_end2end_tests, disable the file API hooking which disables the Metal shader cache. This speeds up the tests significantly - by roughly a factor of 5. With these changes, several hundred angle_end2end_tests run without any assertion failures, though still with many test failures. The next crash is in: GLSLTest.NamelessScopedStructs/ES2_Metal and will likely require a larger bug fix, or more changes to be upstreamed from WebKit's repository. Bug: angleproject:5505 Change-Id: Ia1ea9a13867f00035d4aeccf907fd032255588e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3010486 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 2b86e2d6 2021-07-19T10:30:57 GN: Update dcheck/assert conditions. In preparation for a Chromium change that makes dchecks enabled by default in Release builds, we'll keep ASSERT disabled in Release by default. We add a new flag 'angle_assert_always_on' for controlling ANGLE ASSERT behaviour. Also slightly refactors the direct SPIR-V generation GN. Chromium CL: https://crrev.com/c/2893204 Bug: chromium:1225701 Change-Id: I01a6def28d7c21e771e9800889a6b9c274972de2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035447 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Dirk Pranke <dpranke@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Torne (Richard Coles) d84d1288 2021-07-16T12:08:03 android: Explicitly specify exported activities. Android 12 requires all components with an <intent-filter> to explicitly specify whether they are exported, instead of being exported by default. Update various remaining cases in our tests/sample code/tools. Bug: chromium:1223110 Change-Id: Iab37881d947da25d771bf757d2f7581ad782c73f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035442 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mohan Maiya 5c8bf081 2021-06-08T13:12:24 Vulkan: Add support for YUV internal format extension 1. Add a function to upload YUV image data to textures 2. Modify stageSubresourceUpdate method to account for YUV images 3. Create VkSamplerYcbcrConversion when initializing ImageHelper 4. Update hasImmutableSampler to account for native YUV format support 5. Skip initializeNonZeroMemory for YUV formats Bug: angleproject:5773 Test: Texture2DTestES3.TexStorage2D*Yuv*Vulkan* Change-Id: I270f04bbf903cf2bf19f100eb95f32953d491c39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2947767 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 0a83d958 2021-07-19T09:52:13 Capture/Replay tests: Fix missing usage of ApplicationDir. This was changed to ModuleDir in http://crrev.com/c/3035444 Fixed the capture/replay self-tests. Bug: chromium:1219969 Change-Id: Iaada421e9748db1e8afe17acf0705d5a89db6edb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035248 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 5fb3a549 2021-07-18T22:15:12 Skip GLSLTest_ES31.BoolInInterfaceBlocks/ES3_1_OpenGL AMD Linux Bug: angleproject:6192 Change-Id: I853864cfce5edb78be940c6f59f22187dce7e47b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3037629 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 4d9e1f23 2021-07-18T21:15:41 More skips for GLSLTest_ES31.TypesUsedInDifferentBlockStorages Also disable the test on the Linux AMD OpenGL backend. Bug: chromium:1230024 Change-Id: I9ff2d798cf7410db55802fb86635b5d833d32284 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3037628 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 9ddaa686 2021-07-16T14:57:13 Call getNearestSamples() in Framebuffer::setAttachment() The app jp.garud.ssimulator uses the same sample count of '2' for both glRenderbufferStorageMultisampleEXT() and glFramebufferTexture2DMultisampleEXT(). However, when glRenderbufferStorageMultisampleEXT() is called, Renderbuffer::setStorageMultisample() calls TextureCaps::getNearestSamples() which rounds up the sample count from '2' to '4'. Later, when the app tries to draw with the framebuffer, an error is generated by ANGLE: Framebuffer is incomplete: Attachments have different sample counts. The fix is to also call TextureCaps::getNearestSamples() in Framebuffer::setAttachment() to make sure the sample count passed into glFramebufferTexture2DMultisampleEXT() is also rounded up to match the renderbuffer. Bug: angleproject:6183 Test: MultisampledRenderToTextureTest.FramebufferCompletenessSmallSampleCount Change-Id: I58be9986077257f4767f2e528c2f87e496d9d774 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036254 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Cody Northrop ab197a2b 2021-07-16T16:08:08 Skip GLSLTest_ES31.TypesUsedInDifferentBlockStorages AMD Linux The following test is failing on AMD Linux bots: GLSLTest_ES31.TypesUsedInDifferentBlockStorages/ES3_1_OpenGL It is skipped on many platforms, so adding another. Bug: chromium:1230024 Change-Id: Ie24aa04c1b8ab4d4ecdb5c4449d320ae180ecb54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035864 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Geoff Lang 232e5236 2021-07-08T15:08:35 Remove the explicit context extension. This extension currently has no known users and doubles the number of entry points that ANGLE exports which is a significant binary size cost. This saves about 130kb of binary size on Android. Bug: chromium:1084580 Change-Id: Ib0fc4930b38a33bd61434f7d0030ba9fb9b93ba7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3015518 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi f4ce6d00 2021-07-15T11:07:25 Vulkan: SPIR-V Gen: Support bool in interface blocks SPIR-V doesn't allow bool in interface blocks. Another type specialization is added for this purpose, turning those bools to uint. Bug: angleproject:4889 Change-Id: I803bffcf5ea58c913d4df6e7aae3386c67901b25 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032021 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 48da1c35 2021-07-16T13:24:34 Vulkan: Prefer the local vulkan loader over the system one. Load the Vulkan loader ourselves and give vkGetInstanceProcAddr to volk. This allows us to always prefer loading from the current module directory instead of using the platform-specific ordering. Refactor angle::Library loading to use ModuleDir instead of ApplicationDir. CL originally authored by Geoff Lang. Bug: chromium:1219969 Change-Id: I21d1926e90fd66e1c23cea7323991ae55f3d22d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035444 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill dd0e8a1f 2021-07-16T10:33:57 Capture/Replay tests: Enable dcheck_always_on. This will enable release ASSERTs. ASSERTs were unintentionally disabled when switching to release builds. Bug: angleproject:5133 Change-Id: Ie19e9fd02624b10283192467c4e22e3cf2b382c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035521 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Pujun Lun 2a713d92 2021-07-15T14:58:54 Avoid recreating activity when rotating the display. Reference: https://developer.android.com/guide/topics/resources/runtime-changes#HandlingTheChange Bug: b/193828422 Change-Id: I4caa80941e4d32bdf5c830985a19536efd041069 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032150 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 966c6a9a 2021-07-15T12:50:09 Capture/Replay: Don't try to serialize compressed textures. Instead we write out a simple string indicating compressed texel contents. We in the future could implement a GetCompressedTexImage API. Bug: angleproject:6176 Change-Id: I6673ec85ac94d5268b24bda4d510247a63fa97e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032022 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill ac61386d 2021-07-15T11:08:48 Capture/Replay Tests: Swap before TearDown. Swapping before TearDown lets the capture and serialization logic see all the test resources that will be cleaned up by the fixture. This will increase coverage quite a bit because many tests do automatic cleanup which would previously skip serialization. Bug: angleproject:6175 Change-Id: I85aa3f6d9bcf2fd66836523e55862a2d5f0d8e32 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3031702 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 04485656 2021-07-15T13:46:54 Capture/Replay: Capture WaitSemaphore and SignalSemaphore Enable tests that now pass, but keep tests that time out or still crash on the skip list. Bug: angleproject:6164 Change-Id: I39e56f0a1bfae09c74a54b06367f7eef41d1063c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024208 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 1d2c60da 2021-07-12T21:44:24 tests: GL_NUM_BINARY_FORMATS is a ES 3.0 property Enable according test. Bug: angleproject:6165 Change-Id: Idb0908024ebce485ac182463a02eba415f0ffec8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024207 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 106ed74c 2021-07-12T20:55:33 Capture/Replay: Capture FenceNV parameters Enable according tests. Bug: angleproject:6163 Change-Id: I4435a650530006997ed3f14315461060729b836a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024206 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Tom Anderson 298fafd7 2021-07-14T13:57:30 [GLX] Allow usage of multiple visuals When using AMGLE_x11_visual, a single visual is specified for the whole session. This is limiting since windows can have different visuals. For example, one window may want transparency and another window may not. This CL makes it not-an-error to use a window with a visual other than the one set with ANGLE_X11_VISUAL_ID. In this case, ANGLE will fallback to using a child window, as if ANGLE_X11_VISUAL_ID had not been specified. Long term, a better solution would be to allow specifying ANGLE_X11_VISUAL_ID per window. Bug: chromium:1225953 Change-Id: Ibec411cfd1341c30b2842a7ddba3fea6023de2b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028803 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 9c6fb52c 2021-07-13T14:10:41 Vulkan: SPIR-V Gen: Assignment between mismatching SPIR-V types In general, GLSL qualifiers translate to SPIR-V decorations on SPIR-V variables. In the case of blocks (struct or interface block), OpMemberDecorate is used, which due to its specification in SPIR-V, can only apply decorations to direct members of a block. This makes it impossible for example to decorate a nested member of a block through its variable id. As such, some decorations such as RowMajor and Invariant apply to members of a block given its _type_ id. Unfortunately SPIR-V requires ArrayStride to also be applied to a type directly, rather than a member of a block. This implies that some types, such as structs used in uniform/buffer interface block, or decorated with invariant or row_major, as well as arrays (of any type) used inside and outside interface blocks to produce different SPIR-V types from the same GLSL type. The SpirvTypeSpec data previously introduced specialize these types. It's necessary to "cast" between these types when needed. The translator handles casts at load/store boundary: - Upon load, the value is cast to the type with the default SpirvTypeSpec. - Upon store, the value is cast from the default to the store target SpirvTypeSpec. - All intermediate results use the default SpirvTypeSpec. Bug: angleproject:4889 Change-Id: I6fa28e518ec6b517ff163f44b6892859eb4b10fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3026145 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 5e579a18 2021-07-13T01:22:48 Vulkan: SPIR-V Gen: Support row-major blocks The SPIR-V type generation is refactored to contain all type-differentiating properties in a specific struct that is passed around. The following can lead to different SPIR-V types generated from the same GLSL type: - Block storage for blocks - Invariant for blocks - Row-major for blocks with matrices - Row-major for matrix arrays in blocks - Bool when used inside an interface block (not yet implemented) Previously, block storage and invariant were passed around. Instead, with this change the aggregate of all the above is passed around. The row-major specialization is added in this change. This change also refactors the uniform/buffer block encoding to use the existing encoders in blocklayout.h. Bug: angleproject:4889 Change-Id: I3cfa8bd96bb380a1f1f05fbbd6b3eebd702c9e24 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021670 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Yuly Novikov 992a2f70 2021-07-15T14:32:11 Skip DrawRepeatUnalignedVboChange on Mac ARM Metal SimpleStateChangeTest.DrawRepeatUnalignedVboChange/ES2_Metal flaky on Mac FYI arm64 Release (Apple DTK) Bug: angleproject:6171 Change-Id: I9fa8b39e172c6422d9430ab3a0aa8ce9e7558b9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032024 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 4b47e8f3 2021-07-14T13:29:29 GL-CTS: Add option to run on D3D11 refrast. Bug: None Change-Id: Ia28afed48b3fddcd9725094f4892a1aa27957fd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027540 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop f46df397 2021-07-14T19:41:03 Vulkan: Suppress VVL errors triggered by external formats Since several tests are hitting these and it may be a VVL bug, moving to ignore rather than skips. Bug: angleproject:6155 Bug: angleproject:6168 Change-Id: I38a5be8d792b8b13a490be895a68349bffe69c6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028809 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 223cd0ac 2021-06-15T18:46:07 Capture/Replay: Refactor shared context handling This is the initial CL to enable capture/replay of multi-context applications. This CL refactors FrameCapture and FrameCaptureShared to move much of the functionality into FrameCaptureShared, since most everything is shared by Contexts in the share group. For example, the setup of the majority of the GL objects is done in the new SetupReplayContextShared() function in the new $LABEL_capture_context_shared_frame001.cpp file. The setup is performed by (for example): void SetupReplay() { $LABEL::InitReplay(); $LABEL::SetupReplayContextShared(); SetupReplayContext2(); } This performs the shared setup first, followed by the context-specific setup, which may reference shared objects careated by LABEL::SetupReplayContextShared(). No re-capturing is required with this change, since the external APIs (i.e., SetupReplay()) are still the same. Bug: angleproject:5878 Test: Manual MEC and replay of Magic Tiles 3, Candy Crush Soda Saga, Temple Run 2 Change-Id: Iab7bfe651437e9be1dee83514cd97acc20c61d1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965780 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya e66e3344 2021-07-12T13:28:54 Vulkan: Add GL_ANGLE_yuv_internal_format extension 1. Add a new extension to support creation of immutable textures with sized internal YUV formats 2. Rename YUV format enums from *_ANGLEX to *_ANGLE 3. Move YUV format enums from angleutils.h to glext_angle.h Bug: angleproject:5773 Change-Id: Ibfe732f4c9a4a536be56481f33e4768f6227c212 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2820153 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop cd73949c 2021-07-14T14:25:06 Skip SourceAHBTarget2DExternalCycleThroughYuvTargetsNoData P4+VK New validation layers are triggering failures. Test: SourceAHBTarget2DExternalCycleThroughYuvTargetsNoData Bug: angleproject:6168 Change-Id: I4070bd028a598e8d91a3b8f2172b42f3e782c932 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028802 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mohan Maiya 715a49c7 2021-07-03T08:48:07 Vulkan: Handle incompatible immutable sampler formats If the immutable sampler format of an active texture is not compatible with those supported by the pipeline layout, recreate the pipeline layout. Bug: b/155487768 Bug: angleproject:5033 Bug: angleproject:5773 Test: ImageTest.SourceAHBTarget2DExternalCycleThroughYuvTargetsNoData*Vulkan Change-Id: Iea78e1738ea2fb133a24dc88f5b68daf4cc1bdfe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2997289 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop cfc8db0b 2021-07-14T10:37:11 Skip SimpleStateChangeTest.RedefineFramebufferTexture on NV+WIN Bug: chromium:1229184 Change-Id: I68339ddf1bd3ac2ae04c1191045bd27c321131fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027264 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cheryl Wei 45965e72 2021-06-17T10:21:26 Vulkan: Translate border color's channel by image view format ANGLE implementes some formats as other formats,such as ALPHA8 to R8, this caused some tests failed due to missing border color's channel translation,this change add a new textureBorderLoadFunction to translate channels of border color by image view format. Bug: angleproject:6046 Change-Id: I94ce719b4db3724ffd3dc862b51a412b5d9f3cce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2972328 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 07c39616 2021-07-08T17:01:31 Vulkan: SPIR-V Gen: Enable GLSLTest* This change includes an assortment of small fixes to enable most of GLSLTest* end2end tests. - User-defined std140 storage buffers were mistakenly turned to std430. - External and WEBGL samplers were redundantly redeclaring the sampler2D type. - `invariant` specified on a field of struct type didn't apply it to said struct's members. - Arrays of struct as a member of an interface block didn't have their size aligned, producing incorrect stride - Interpolation and auxiliary qualifiers are now generated - Arrays of opaque uniforms are now correctly passed to functions when indexed. - atan(x, y)'s built-in Op is fixed - early_fragment_tests is now generated Additionally, the SPIR-V transformer didn't handle the Invariant decoration applied to gl_PerVertex built-ins, which is possible as a result of: #pragma STDGL invariant(all) This bug existed in the transformer due to two bugs: - ANGLE didn't generate this line when generating GLSL to feed to glslang. This is fixed by this change. - glslang itself ignores this line: https://github.com/KhronosGroup/glslang/issues/2689 Bug: angleproject:4889 Change-Id: I15ad9fcc178abc1eae944e7a58f4e6153fa5dfd9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016762 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell 2534ee4c 2021-07-02T12:18:07 Limit the size of declared variables in WebGL shaders. Add an implementation-specific limit for the sizes of variables (specifically arrays, structs, and arrays of structs) in WebGL 1.0 and 2.0 shaders, and interface blocks in WebGL 2.0 shaders, no matter whether they're input, output, or local variables. It is legal in the OpenGL ES and OpenGL ES Shading Language specifications to fail to compile shaders for implementation-specific reasons. Add WebGLCompatibilityTests covering the new limit. Bug: chromium:1220237 Change-Id: I6c1d24a5d9a382ba4454c2dfbb856ab9468f5409 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3023033 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell 2a668d92 2021-07-13T16:49:16 Fix iOS Simulator build after direct-to-Metal upstreaming. Bug: angleproject:5505 Change-Id: I4e690099502be2f2404a25d67356d452cf63451b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025240 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Kenneth Russell 4d9dbf9c 2021-07-13T15:23:30 Use "frameworks" rather than "libs" for iOS dependencies. The angle_test_expectations static library has added this dependency but it fails to build on the ios-simulator bot. Try using "frameworks" instead. Bug: angleproject:5505 Change-Id: Ia08240a042f241c7eefe0de730b6942a60047054 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025238 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 4efcd10c 2021-07-13T15:37:43 Skip SourceYUVAHBTargetExternalRGBSampleInitData on Pixel4 Two new Vulkan validation errors are being triggered. Test: SourceYUVAHBTargetExternalRGBSampleInitData Bug: angleproject:6168 Change-Id: I11c86bcb8e47f0dbf8032652aae3988279478ace Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025486 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jason Macnak 7c4404da 2021-07-09T13:37:29 Vulkan: update D/S state in ContextVk::onFramebufferChange ANGLE needs to ensure that the stencil test is correctly handled when framebuffers are cleared before stencil attachments are configured. Adds two stencil tests for clearing fbo before stencil attached which fail before this change and which replicate the behavior of CtsNativeHardwareTestCases's StencilAffectsDrawAcrossContexts. BUG=b/192315789 TEST=newly added tests on Cuttlefish Change-Id: I58d97af97d3f78787051b069d2594041ccd2bfba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018486 Commit-Queue: Jason Macnak <natsu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jonah Ryan-Davis b202d5cf 2021-07-13T13:34:19 Suppress BlitFramebufferTest.MultisampleDepth on Metal This test is failing on Intel as well, expand the suppression. Bug: chromium:1228433 Bug: angleproject:5505 Change-Id: I98e240897b996d5d8d9a5977ef777f928b25c9dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024591 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Cody Northrop 634d156f 2021-07-08T12:42:21 TracePerfTests: Add ScreenShotFrame option Allows the user to specify a frame to capture instead of defaulting to the first one. Usage: --screenshot-frame <frame> Bug: angleproject:4615 Change-Id: I000ee17aa9b3019188816aa6203f3266b39155b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016356 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Peng Huang a8e98a23 2021-07-10T15:25:20 Fix gl::Context::unMakeCurrent crashes The crash is because Display::makeCurrent() may fail, in that case, egl_stubs.cpp will not update the current context in global_state and Thread accordingly. And then Context::refCount could be reach 0, and be released, however egl_stubs.cpp still thinks the context is current, and then user-after-free happens. This CL fixes the problem by updating current context of Thread in Display::makeCurrent, and reading the current context of Thread in egl_stubs.cpp and setting it to global_state. Bug: chromium:1171371 Change-Id: Ifc5fffb0e4902c9c72514839d03e5783d50fe283 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3017210 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Kyle Piddington d33a2222 2021-04-26T16:56:15 Upstream Apple's direct-to-Metal backend: compile libANGLE. This change is meant to merge the metal backend changes from Apple's direct-to-Metal backend. Taken from Kyle Piddington's CL: https://chromium-review.googlesource.com/c/angle/angle/+/2857366/ The goal of this CL is to merge the metal backend code in a state that compiles, but not to switch the Metal backend over to using the direct-to-metal backend yet. Bug: angleproject:5505 Bug: angleproject:6127 Change-Id: If6783e06e0086b3a1dd25c6f53caca5cfc96cb86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950067 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Peter Kasting 04cb5e1d 2021-07-10T11:39:49 Disable -Wimplicit-int-float-conversion for gles1_conform. Bug: chromium:989932 Change-Id: I0038440470a6816bb0c4198af2224b7b85aa42b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018692 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e2710f59 2021-07-06T17:29:08 Vulkan: SPIR-V Gen: Fix image atomic built-ins The `imageAtomic*` built-ins additionally include coordinate and sample parameters that need to be fed to OpImageTexelPointer before the atomic operation can be generated. This change passes all *image*atomic* GLES31 deqp tests as well as: GLSLTest_ES31.ArraysOfArraysOfR32fImages/ES3_1_Vulkan_DirectSPIRVGen Bug: angleproject:4889 Change-Id: I9ed729d09914cb01467d4de504de38c931a9196e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3011419 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten a34f668d 2021-07-09T10:55:48 Skip BlitWithDepthUserToDefault for Linux+Intel+OpenGL The test BlitFramebufferANGLETest.BlitWithDepthUserToDefault/ES2_OpenGL is failing on Linux+Intel. This CL skips the test to unblock the vulkan-deps roll into Chromium. Bug: angleproject:6154 Change-Id: I098622ca23b79027e6166d3308c3c41948eca285 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018109 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Tim Van Patten aa727b78 2021-07-09T11:26:36 Skip ImageTests generating VUID-vkCmdDraw-None-02699 The latest VVL roll is generating VUID-vkCmdDraw-None-02699 on Pixel 4 devices. This CL will skip the failing tests to unblock the roll while the VVL error is investigated. Bug: angleproject:6155 Change-Id: Ie9e21f7df13baa8b9252a3273d1985513404bdfe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018114 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 3a6e22d5 2021-07-09T12:09:53 Trace Tests: Update retracing script. Adds an option to skip retracing traces that already exist. That makes the script much easier to use on folders that already have traces partially retraced. It also catches exceptions when running the traces so that ANGLE crashes and ASSERTions don't need you to restart the retrace. Bug: angleproject:5133 Change-Id: I059ca545145eadc1aa8c373a2fde762bbeb52b55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018302 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi e3e7447a 2021-07-08T22:22:19 Vulkan: Fix flipXY for 180 degree prerotation and spec consts The multiplier used for flipXY in this configuration was incorrect. Bug: angleproject:5348 Bug: angleproject:5349 Bug: angleproject:5350 Change-Id: I0b3771f6a9da6ab2af02ed5ee5fe7b49d0415410 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016768 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 81ed8d40 2021-07-02T00:54:25 Vulkan: SPIR-V Gen: Support barrier* built-ins This change enables the ComputeShaderTest suite and additionally includes the following fixes: - OpArrayLength was given the array type instead of variable. - Struct arrays inside interface blocks were not decorated with ArrayStride. Bug: angleproject:4889 Change-Id: Ibae95371bcea10e58c86b8fe1d1e172a18d56a09 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3001908 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill dc2d76cd 2021-07-08T10:04:15 Trace Tests: Clean up mock ICD skip condition. Bug: angleproject:6090 Change-Id: I943eb35da56a24c5a2c9961eb458b9b6e27ea83a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3015515 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>