src/tests/deqp_support


Log

Author Commit Date CI Message
Mohan Maiya f92eb43c 2021-03-25T18:33:19 Vulkan: All builtins of gl_out needs to be considered as active All builtins of gl_out, like gl_out[].gl_Position need to be considered active as well. Bug: angleproject:5557 Test: dEQP-GLES31.functional.tessellation.shader_input_output.gl_position_tcs_to_tes Change-Id: I74aeef86be573dc8df17472b88acd521032d7921 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2786630 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 54dfb62c 2021-04-07T12:33:31 Make "force context check" an optional GN flag. Previously it was enabled by default in every build that includes D3D11. This would impact CPU overhead in Chrome and other targets that don't need this feature. Bug: angleproject:5828 Change-Id: Ic9d700847c72978540b66fdaf7a62f959779f2e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809855 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Doug Horn <doughorn@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade 5af6306a 2021-03-31T23:23:52 Vulkan: Update layer provoking vertex for geometry shaders Set the GS layer provoking vertex value to GL_LAST_VERTEX_CONVENTION if the provoking vertex extension is enabled. Otherwise, use GL_FIRST_VERTEX_CONVENTION as vulkan follows this convention for provoking vertex. Tests: dEQP-GLES31.functional.geometry_shading.layered.layer_provoking_vertex_* Bug: angleproject:5452 Change-Id: Ie385f3b713486c54114dbfcefd799d180701bb60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2799033 Commit-Queue: Brandon Schade <b.schade@samsung.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 4756d5e6 2021-03-22T17:28:30 Mark most draw modes valid when no program is bound gpu_angle_passthrough_fuzzer discovered a crash when glDrawArrays() is called without a program bound. This was caused by assuming it's an error to draw certain primitive types without a program bound, which is incorrect. This fix is to mark all draw modes except Patches valid when there is no program bound. Patches is handled separately by TS validation. Bug: chromium:1185267 Bug: angleproject:5483 Test: gpu_angle_passthrough_fuzzer Test: SimpleOperationTest31.DrawWithoutProgramBound Test: KHR-GLES31.core.draw_indirect.basic-mode-*adjacency Change-Id: I294078b8695e0b8f36d3b7ad3c1aa71d2a275038 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2780971 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Charlie Lao b5a71140 2020-08-20T17:24:21 Vulkan: Make storage actually immutable for immutable textures The immutable textures are intended to be "immutable". Right now we are still re-allocating VkImage object based on base_level and max_level. This causes a problem for rendering to a level that is beyond [base_level, max_level], which is totally within OpenGL spec. This CL makes an immutable texture always allocate from 0 to max levels that are specified by a glTexStorage call. Changing base_level will not trigger re-allocation of VkImage object. Bug: b/181800403 Change-Id: I4b4ddea17b7f6f7bfd8f36bfe8bb3a35b5c180b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2368038 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Brandon Schade 969b8f31 2021-03-25T12:40:47 Vulkan: Fix geometry shader validation with vertex shaders Added validation to disallow usage of geometry shaders without a vertex shader Bug: angleproject:5579 Test: KHR-GLES32.core.geometry_shader.api.fs_gs_draw_call Test: KHR-GLES32.core.geometry_shader.api.pipeline_program_without_active_vs Change-Id: Ieeec544d514ac772416ab0427c1c1c5058276f98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2796151 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 4cdbdf90 2021-03-25T18:54:50 Vulkan: Assign XFB location first then assign varying location Varying location is determined based on XFB location. If the transform feedback stage is Vertex, there is no problem. But if the transform feedback stage is GS or TES, previous implementation can cause shader interface mismatch. Bug: angleproject:5557 Test: KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_in Change-Id: I1ecc7913a178c9e674307c528d1bdf13aabcb665 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2784713 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Mohan Maiya 570970f9 2021-03-19T13:43:35 Vulkan: Handle compilation error involving gl_InvocationID We need to generate a compiler error only when the vertex index of an output variable as an l-value, in a tessellation control shader, is not the indentifier gl_InvocationID. Bug: angleproject:5557 Tests: dEQP-GLES31.functional.tessellation.shader_input_output.barrier Change-Id: Ica075b8d85916caa228f057b203ae81b27f65e2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2758915 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Mohan Maiya 81dcf078 2021-03-08T11:21:31 Reland "Vulkan: Support EXT_sRGB_write_control" This is a reland of 6073af536cf627742696823edc82c9b0a481a8bc with 2 changes - 1. Don't enable the extension even in nonConformant mode 2. Don't enable VK_KHR_image_format_list for swiftshader Original change's description: > Vulkan: Support EXT_sRGB_write_control > > Implement support for EXT_sRGB_write_control. This extension > requires VK_KHR_image_format_list to be supported. > > The spec requires this functionality to work with glBlitFramebuffer > as well but support for that will be added in a follow up change. > As such, this extension is only exposed in non-conformant mode. > > Bug: angleproject:5075 > Tests: SRGBFramebufferTest.*Vulkan* > Change-Id: I59b38f6cd810a3d0d67ec29f4f19c25f65f70862 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617243 > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:5075 Change-Id: I8e149d196a39c3c4769bfa8690792f3c53831299 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2762647 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Ian Elliott cd881848 2021-03-12T15:26:36 Actually skip a flaky/timeout test Also, create SwANGLE KHR 3.1 expectations section Bug: angleproject:5755 Change-Id: I902b3d3de0c3c4dd190d36c6b5f2def33420efc7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757125 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott 191bee56 2021-03-12T13:44:19 Suppress flaky test on win-swangle This test times out. It takes a while on my underpowered Windows laptop. Bug: angleproject:5755 Change-Id: Id112c170a5e57c8e765dd94277ce0cf2801fae6d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757118 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott 4f6d4d6f 2021-03-12T10:32:57 Suppress flaky EGL resize failure on Linux Bug: angleproject:5753 Change-Id: I0bf716b09d329e9881bf5ca146ef6839d898a1b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757107 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 7c7cf3e5 2021-03-11T14:27:51 Skip dEQP tests flakily timing out on SwANGLE Bug: chromium:1173237 Change-Id: I93810cb7cbaae847848eae0dc050c2c00df956af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2753144 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Peng Huang b27740f3 2021-03-09T16:15:15 Revert "Vulkan: Support EXT_sRGB_write_control" This reverts commit 6073af536cf627742696823edc82c9b0a481a8bc. Reason for revert: crbug.com/1186140 Original change's description: > Vulkan: Support EXT_sRGB_write_control > > Implement support for EXT_sRGB_write_control. This extension > requires VK_KHR_image_format_list to be supported. > > The spec requires this functionality to work with glBlitFramebuffer > as well but support for that will be added in a follow up change. > As such, this extension is only exposed in non-conformant mode. > > Bug: angleproject:5075 > Tests: SRGBFramebufferTest.*Vulkan* > Change-Id: I59b38f6cd810a3d0d67ec29f4f19c25f65f70862 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617243 > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:5075,chromium:1186140 Change-Id: Ib0d4d60fe7434fb950f99db2c210aab9af7d2d0e No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743663 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Peng Huang <penghuang@chromium.org>
Mohan Maiya 6073af53 2021-03-08T11:21:31 Vulkan: Support EXT_sRGB_write_control Implement support for EXT_sRGB_write_control. This extension requires VK_KHR_image_format_list to be supported. The spec requires this functionality to work with glBlitFramebuffer as well but support for that will be added in a follow up change. As such, this extension is only exposed in non-conformant mode. Bug: angleproject:5075 Tests: SRGBFramebufferTest.*Vulkan* Change-Id: I59b38f6cd810a3d0d67ec29f4f19c25f65f70862 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617243 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll a318b3d6 2021-03-05T16:38:47 Roll VK-GL-CTS from 9cdde06fb38a to 9be79728eafb (18 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/9cdde06fb38a..9be79728eafb 2021-03-02 ynovikov@google.com Fix Windows build 2021-03-01 alexander.galazin@arm.com Update Vulkan headers 2021-02-25 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master 2021-02-25 rgarcia@igalia.com Pipeline bind point tests 2021-02-25 rgarcia@igalia.com Add tests for sparseImageFloat32Atomics 2021-02-25 anholt@google.com Fix more spurious failures in KHR-GL*.transform_feedback.api_errors_test 2021-02-25 anholt@google.com Fix spurious failures on KHR-GL30.transform_feedback.api_errors_test 2021-02-25 tapani.palli@intel.com Print ints for pixel values instead of chars in error message 2021-02-25 thomas.spurden@broadcom.com Fix exit code for cts-runner 2021-02-25 mikko.tiusanen@siru.fi Tests for GLES3 framebuffer completeness 2021-02-25 alexander.galazin@arm.com Support GL 4.5 in the Program interface query tests 2021-02-25 lionel.g.landwerlin@intel.com Silence validation layers warning on missing sType 2021-02-25 mika.vainola@siru.fi Allow wildcards in waiver vendor strings 2021-02-25 boris.zanin@mobica.com Add a list of unused shaders into log 2021-02-25 boris.zanin@mobica.com Add concurrent transform feedback streams query tests 2021-02-24 gleese@broadcom.com Remove a waiver for a non-existant device 2021-02-23 mika.vainola@siru.fi Add tests for implicit unmap on free 2021-02-23 alexander.galazin@arm.com Merge vk-gl-cts/github-master into vk-gl-cts/master 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 jonahr@google.com,angle-bots+autoroll-info@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. 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/master/autoroll/README.md Bug: angleproject:5684, angleproject:5722 Tbr: jonahr@google.com,angle-bots+autoroll-info@google.com,ynovikov@google.com Change-Id: Ibd432a2135665ed89f93549e24923c108a08f97b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739041 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya 9b1c569b 2021-02-24T11:32:39 Vulkan: Handle vertex count and primitive mode error cases in TS When handling tessellation shaders these 2 requirements need to be met - 1. TCS - vertex count should be declared at least once 2. TES - primitive mode should be declared at least once After translating TCS/TES check whether these requirements are met and error out if they are not. Bug: angleproject:5557 Test: dEQP-GLES31 - functional.shaders.linkage.es31.tessellation.varying.rules.unspecified_* KHR-GLES32 - core.tessellation_shader.compilation_and_linking_errors.te_lacking_primitive_mode_declaration Change-Id: I727d548ad446646bbece1fb78197639537b5f395 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2714465 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi 999da35e 2021-02-18T17:29:20 Vulkan: Optimize glMemoryBarrier more The implementation assumed that the X_BARRIER_BIT bits implied two barriers; write->X and X->write. However, they only imply write->X, with the exception of SHADER_IMAGE_ACCESS_BARRIER_BIT and SHADER_STORAGE_BARRIER_BIT which handle X->write for images and buffers respectively. As a result, the other bits no longer set the MEMORY_BARRIER dirty bit as they don't guard against X->write usage. Bug: angleproject:5070 Change-Id: Id23904c455a5f56dc45fc6832a74fdfbba6a4827 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2705702 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 39d7fc18 2021-02-17T00:18:41 Vulkan: Don't break the render pass on dispatch calls The only reason a dispatch call may need to break the render pass implicitly is for read-after-writes where the write originates from the render pass but is not through a storage buffer/image. There are only two such scenrios possible: - Framebuffer attachment write -> texture sample - Transform feedback write -> ubo read All other uses of the buffers and textures that require breaking the render pass are handled by `glMemoryBarrier`. Bug: angleproject:5070 Change-Id: I92b50d69d8782097ee8ff477ac57da6209c326a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2698998 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
angle-autoroll 016c5ff0 2021-02-23T11:34:30 Roll VK-GL-CTS from 1a524349f06b to 9cdde06fb38a (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/1a524349f06b..9cdde06fb38a 2021-02-23 alexander.galazin@arm.com Merge pull request #241 from enunes/gles2-EXT_texture_rg 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 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/master/autoroll/README.md Bug: angleproject:5674 Tbr: ynovikov@google.com,angle-bots+autoroll-info@google.com Change-Id: Ie6e73c958321b224de7338c1bd5c3e7c719accb1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2714485 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Yuly Novikov 2be24692 2021-02-21T21:14:35 Skip more flaky crashing dEQP tests on Nexus 5X Bug: angleproject:5665 Change-Id: I29f7cdd39c13d105c52ab0803e6241205fc743fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2710908 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 6eb7ae4f 2021-02-21T19:43:44 Suppress 2 failing dEQP GLES3 tests on Mac AMD Metal Bug: angleproject:5666 Change-Id: Ie4b62868ebca6806bb40f78ce49f1fbf70f96fcf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2710907 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 5c931b61 2021-02-20T13:18:32 Skip more flaky crashing dEQP tests on Nexus 5X Bug: angleproject:5665 Change-Id: I17da18f451c90a767ac957ea03e1ce0eb38302d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2710623 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov be943b3b 2021-02-19T15:23:54 Skip flaky crashing dEQP tests on Nexus 5X Bug: angleproject:5665 Change-Id: Ifccd1d11edcbdfc57765144ba5dc65d12de53af2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2705766 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez dceb2412 2021-02-18T16:44:37 Roll VK-GL-CTS from eab348e95425 to beffa5287574 (5 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/eab348e95425..beffa5287574 2021-02-18 alexander.galazin@arm.com Support GL 4.5 in the Built-in Constant Tests 2021-02-18 ari.suonpaa@siru.fi Add tests for mixing matrix packing in nested structs 2021-02-18 gleese@broadcom.com Extend CopyImage tests to test astc_sliced_3d 2021-02-18 mika.vainola@siru.fi Fix undefined behavior in FloatToHalf 2021-02-18 mikko.tiusanen@siru.fi Add tests for all ES 3.0 internal formats Bug: angleproject:5661 Bug: angleproject:5662 Change-Id: Iab7a28e17523e0b69fb76fbd6281423db63569fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2703517 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Yuly Novikov 0a99bc39 2021-02-12T14:33:02 Remove dEQP expectations for tests removed from masterpass In https://chromium-review.googlesource.com/c/angle/angle/+/2690142 https://github.com/KhronosGroup/VK-GL-CTS/commit/7630a653d152f5da673e3992c0a1597d605c955f Bug: angleproject:5648 Bug: angleproject:3466, angleproject:3317, angleproject:4235 Change-Id: Ic4ee1d8b69319e839dbed192ce74811d0281b60e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2692513 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
angle-autoroll d0e8c636 2021-02-10T04:08:28 Roll VK-GL-CTS from 28d3d98b040d to fd70e387953e (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/28d3d98b040d..fd70e387953e 2021-02-05 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 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 syoussefi@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human is aware of the problem. 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/master/autoroll/README.md Bug: None Change-Id: I8f160df11b65f88e79010c37aeb7a89aa70b84e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2690142 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a7df19c8 2021-02-09T10:37:41 Roll VK-GL-CTS from b29bf0434c16 to 28d3d98b040d (82 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/b29bf0434c16..28d3d98b040d 2021-02-05 alexander.galazin@arm.com Remove GLES-only tests from the GL 4.5 package 2021-02-05 alexander.galazin@arm.com Support GL 4.5 in the Separate shader tests 2021-02-04 alanbaker@google.com VK_KHR_zero_initialize_workgroup_memory tests 2021-02-04 alexander.galazin@arm.com Update Vulkan headers 2021-02-03 alexander.galazin@arm.com Update glslang 2021-02-03 ari.suonpaa@siru.fi Change gradient generator for pipeline image tests 2021-02-03 gleese@broadcom.com Add tests for multisample texture size 2021-02-03 piotr.byszewski@mobica.com Fix memory scope in OpControlBarrier tests 2021-02-03 marcin.kantoch@amd.com VK_KHR_fragment_shading_rate pixel consistency 2021-01-29 ruoyu@amd.com Adjust texture data and threshold 2021-01-29 rgarcia@igalia.com Fix validation in mismatched format tests 2021-01-29 venni.ihanakangas@siru.fi Test descriptor set layout binding ordering 2021-01-29 ari.suonpaa@siru.fi Add descriptor update stress test 2021-01-29 antto.makinen@siru.fi Coverage tests for undefined values 2021-01-29 rgarcia@igalia.com Test attributes beyond static vertex stride 2021-01-28 gleese@broadcom.com Check for astc_sliced_3d extension in negative API tests 2021-01-28 rgarcia@igalia.com Disable dithering in nearest edge test cases 2021-01-28 rgarcia@igalia.com Check sparse image format support before creation 2021-01-28 rgarcia@igalia.com Additional conditional rendering tests 2021-01-28 estea@igalia.com Expand tests for image queries of null descriptors 2021-01-22 gleese@broadcom.com Stop dEQP-GL45 tests falling back to ES3.1 2021-01-22 apinheiro@igalia.com Add VariablePointerFeatures requirement for amber test requiring it 2021-01-22 apinheiro@igalia.com Avoid querying YCbCr combined sampler count in RGBA 2021-01-22 rgarcia@igalia.com Check unsupported formats with sparse AMD bias/lod 2021-01-22 mika.vainola@siru.fi Add command line option for filtering by runner 2021-01-22 antto.makinen@siru.fi Fix a Graphicsfuzz coverage test not to depend on an undefined value 2021-01-22 antto.makinen@siru.fi dEQP-VK.graphicsfuzz.cov-tail-duplicator-infinite-loops 2021-01-22 mika.vainola@siru.fi Add FrexpStruct comparison tests 2021-01-22 ari.suonpaa@siru.fi Use target environment for Amber shaders 2021-01-22 alexander.galazin@arm.com Add gitattributes 2021-01-22 piotr.byszewski@mobica.com Test negative depthBiasClamp values 2021-01-21 Kyle.Griffiths@imgtec.com Threshold Consistency for ES2 FBO Tests 2021-01-21 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master 2021-01-21 alexander.galazin@arm.com Support GL 4.5 in the GetTexLevelParameter tests 2021-01-21 alexander.galazin@arm.com Support GL 4.5 in the multisample interpolation states tests 2021-01-21 alexander.galazin@arm.com Support GL 4.5 in the Shader state query tests 2021-01-21 alexander.galazin@arm.com Support GL 4.5 in the Stencil texturing tests 2021-01-21 alexander.galazin@arm.com Support GL 4.5 in the Synchronization tests 2021-01-21 alexander.galazin@arm.com Support GL 4.5 in various multisample tests 2021-01-21 cheryl.wei@arm.com Fix ReadPixels format 2021-01-20 alexander.galazin@arm.com Support GL 4.5 in the Texture buffer syncronization tests 2021-01-20 alexander.galazin@arm.com Support GL 4.5 in the Texture Specification Tests 2021-01-20 alexander.galazin@arm.com Support GL 4.5 in the Query vertex attribute binding state tests 2021-01-20 greg@lunarg.com Add minimum nonUniform tests to descriptor indexing texts 2021-01-19 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the Texture size tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the Shader Image Load & Store Tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the gl_HelperInvocation tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the GL_EXT_shader_framebuffer_fetch tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the Common function tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the Opaque Type Indexing Tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the Internal format queries tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the Layout binding tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the Integer state query tests 2021-01-19 alexander.galazin@arm.com Suppotr GL 4.5 in the sRGB write control tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the Cube map array texture tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the base vertex extension drawing tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the indexed draw buffers tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the default vertex array object test 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the Boolean State Query tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the atomic operation with image tests 2021-01-19 alexander.galazin@arm.com Support GL 4.5 in the draw_indirect tests 2021-01-17 alexander.galazin@arm.com Notice of withdrawal of Vulkan CTS 1.2.1.x 2021-01-13 Alexander.Galazin@arm.com Merge "Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master" 2021-01-13 thomas.spurden@broadcom.com Add --force option to fetch_sources.py 2021-01-13 estea@igalia.com Fix checks for conditional rendering support 2021-01-13 slawomir.cygan@intel.com Check for VK_KHR_portability_subset extension before checking it's features 2021-01-13 estea@igalia.com Add striped 3D blitting tests 2021-01-11 estea@igalia.com Add tests for logical operations 2021-01-08 ruoyu@amd.com Disable-SeamlessCubeMap-In-Reference-ES2Context 2021-01-08 gleese@broadcom.com Test invalid Lods in the textureSize tests 2021-01-08 antto.makinen@siru.fi Add a batch of GraphicsFuzz coverage tests 2021-01-07 rgarcia@igalia.com Fix sync problems in conditional_rendering.draw_clear tests 2021-01-07 cwabbott0@gmail.com Don't access arrays out-of-bounds in robustness2 tests 2021-01-07 anholt@google.com pipeline statistics test: Fix compute shader setup in !GL4.3 case. 2021-01-06 rgarcia@igalia.com Clarify depth/stencil resolve write access sync 2020-12-29 alexander.galazin@arm.com Support GL 4.5 in the texture test utils 2020-12-29 alexander.galazin@arm.com Support GL 4.5 in the blend_equation_advanced tests 2020-12-29 alexander.galazin@arm.com Support GL 4.5 in the 'negative' tests 2020-12-29 alexander.galazin@arm.com Support GL 4.5 in geometry/tesselation shader tests 2020-12-29 alexander.galazin@arm.com Support GL 4.5 context in the precision and draw tests 2020-12-29 alexander.galazin@arm.com First steps towards running ES3.1 functional tests on GL4.5 drivers 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 geofflang@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human is aware of the problem. 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/master/autoroll/README.md Bug: angleproject:3687 Bug: angleproject:3688 Change-Id: I8de830ec9f56ab6a29218f83caaf96b86ceba648 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2679296 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 7e81056a 2021-02-01T11:16:14 Vulkan: Support integer type incomplete texture Support both signed and unsigned integer type incomplete textures. Bug: angleproject:5502 Bug: angleproject:4432 Tests: IncompleteTextureTestES3.*IntegerType* dEQP.KHR_GLES31/core_sample_variables_mask_rgba8*i_* Change-Id: Ic8c972aac0ca8589b26333b66dd0cc5fb5134043 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2613245 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 85efb9d5 2021-01-26T14:39:19 Log dEQP QPA files as test artifacts. This adds artifact output to the test runner. We add a fake test at the start of a test run that owns the artifacts. Bug: angleproject:5236 Change-Id: Ice8001bf1f2aafbd8123fee76e0e7fcc3e5a8a0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2657535 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 62387fc6 2021-01-27T13:58:01 Vulkan: Enable geometry/tessellation deqp KHR 3.2 tests Preliminary triaging is done for the failing tests. Additionally, the tests are only enabled for windows for now, due to failures on the Android and Linux bots, likely due to old drivers. Locally, the failures on Linux match the expectations for windows. Bug: angleproject:5557 Bug: angleproject:5579 Change-Id: I72d998097fad495c21414917ef09e132274f7c8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2653913 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Tim Van Patten badcf3bd 2021-01-27T17:14:43 Vulkan: Enable fbo.invalidate.whole.unbind_blit_msaa_[color|stencil] These test failures were fixed with a recent SwS CL: https://swiftshader-review.googlesource.com/c/SwiftShader/+/52088 Bug: angleproject:5044 Test: dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_color Test: dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil Change-Id: I36034c72e28fc07ecff0eaca31745c97f054b77e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2654526 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi ea71c6b6 2021-01-12T14:13:35 Vulkan: Emulate R32F images with R32UI GL requires that imageAtomicExchange be supported for r32f formats. However VK_FORMAT_FEATURE_STORAGE_*_ATOMIC_BIT is nearly unsupported everywhere without some Vulkan extension that brings in unnecessary support. This GL feature is emulated by transforming the shader to use r32ui for all images that originally specified r32f. floatToUintBits and uintBitsToFloat is used to maintain correct usage of the image* builtin functions. Bug: angleproject:5535 Change-Id: Ie607089935d3283b3ffa054f4b4385b81fb8f53d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2635453 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 186fe990 2021-01-15T15:49:30 Vulkan: Redo RewriteAtomicCounters With MonomorphizeUnsupportedFunctionsInVulkanGLSL and RewriteArrayOfArrayOfOpaqueUniforms transformations run, it is no longer possible to encounter array of array of atomic counters, or have any passed to functions. As a result, RewriteAtomicCounters is greatly simplified. Additionally, it is no longer necessary to pass binding/offset information for atomic counters around and they can use constants. This change removes dependency on the shaderStorageBufferArrayDynamicIndexing Vulkan feature. Bug: angleproject:3726 Bug: angleproject:3881 Change-Id: Ia43092a668f60d009eccbbceeed5deaf105a5895 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633687 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Trevor David Black 192a0147 2020-10-08T16:47:35 Multithreading in D3D11 minimum viable product Bug: b/168046573 Change-Id: I676a148333cbf5e9ca508768503e62cb14d8eeb0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2629618 Commit-Queue: Doug Horn <doughorn@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Trevor David Black <vantablack@google.com>
Jamie Madill b912eec5 2020-11-27T11:08:41 Vulkan: Support GL_EXT_tessellation_shader. Shader translator changes done in http://crrev.com/c/2633936 Adds a new DIRTY_BIT_PATCH_VERTICES state to Context. Supportes state query and transform feedback. 4 test suppressions remain as follow-up fixes. Adds a new varying packing mode for a simple Vulkan rule set. Based on work by Mohan Maiya (m.maiya@samsung.com). Test: dEQP-GLES31.functional.tessellation.* Bug: angleproject:3572 Change-Id: I4cad2cca30adb754fd12c83027673906541f566a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568234 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 6c5b766b 2021-01-16T11:33:00 Reland "Vulkan: Generate xfb support code in SPIR-V for extension path" This reverts commit d090627616641f7524655627bfd415de6f8af942. Reason for revert: Fixed parent CL Original change's description: > Revert "Vulkan: Generate xfb support code in SPIR-V for extension path" > > This reverts commit d06feeac1e79d6102e01c123a360bc9099d5bba3. > > Reason for revert: > Earlier CL breaks pre-rotation: > https://chromium-review.googlesource.com/c/angle/angle/+/2598584 > > Original change's description: > > Vulkan: Generate xfb support code in SPIR-V for extension path > > > > The only piece of code that's needed to be generated for the extension > > path is the following, at the right spot (right before depth correction > > and pre-rotation): > > > > ANGLEXfbPosition = gl_Position; > > > > The SPIR-V transformer already has gl_Position loaded for depth > > correction and pre-rotation, so this change simply adds an OpStore to > > ANGLEXfbPosition. > > > > As a result of this change, @@ XFB-OUT @@ is no longer emitted if > > the transform feedback extension is supported. With the above code now > > placed correctly for geometry shaders, transform feedback tests for > > geometry shaders are enabled. > > > > Bug: angleproject:3606 > > Change-Id: I13a7956ab62a1a6b4196ff999442b99b50226c0f > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617659 > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Charlie Lao <cclao@google.com> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com > > Change-Id: I74fa9fafe3c922cdb7cd09ee6351534e38528da9 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: angleproject:3606 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634048 > Reviewed-by: Tim Van Patten <timvp@google.com> > Commit-Queue: Tim Van Patten <timvp@google.com> TBR=timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com # Not skipping CQ checks because this is a reland. Bug: angleproject:3606 Change-Id: Ic49a0be10cdb58e2b47896554f272093e24f93b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2633711 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 60015ff6 2021-01-14T02:03:07 Vulkan: Redo RewriteStructSamplers This transformation is split into two. The first transformation solely takes out the samplers out of structs, and potentially generates array of array of samplers. A second transformation is added that takes any array of array of opaque uniforms and flattens it. A follow up change will simplify RewriteAtomicCounters which also handles array of arrays (which is no longer possible), and removes dependency on shaderStorageBufferArrayDynamicIndexing. Bug: angleproject:2703 Bug: angleproject:3881 Bug: angleproject:4071 Bug: angleproject:4211 Change-Id: I352bb2bbe65ac49f4d7d753c0ba3160fa3cc925a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2628138 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 d0906276 2021-01-16T00:11:27 Revert "Vulkan: Generate xfb support code in SPIR-V for extension path" This reverts commit d06feeac1e79d6102e01c123a360bc9099d5bba3. Reason for revert: Earlier CL breaks pre-rotation: https://chromium-review.googlesource.com/c/angle/angle/+/2598584 Original change's description: > Vulkan: Generate xfb support code in SPIR-V for extension path > > The only piece of code that's needed to be generated for the extension > path is the following, at the right spot (right before depth correction > and pre-rotation): > > ANGLEXfbPosition = gl_Position; > > The SPIR-V transformer already has gl_Position loaded for depth > correction and pre-rotation, so this change simply adds an OpStore to > ANGLEXfbPosition. > > As a result of this change, @@ XFB-OUT @@ is no longer emitted if > the transform feedback extension is supported. With the above code now > placed correctly for geometry shaders, transform feedback tests for > geometry shaders are enabled. > > Bug: angleproject:3606 > Change-Id: I13a7956ab62a1a6b4196ff999442b99b50226c0f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617659 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com Change-Id: I74fa9fafe3c922cdb7cd09ee6351534e38528da9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:3606 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634048 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi d06feeac 2021-01-08T00:48:18 Vulkan: Generate xfb support code in SPIR-V for extension path The only piece of code that's needed to be generated for the extension path is the following, at the right spot (right before depth correction and pre-rotation): ANGLEXfbPosition = gl_Position; The SPIR-V transformer already has gl_Position loaded for depth correction and pre-rotation, so this change simply adds an OpStore to ANGLEXfbPosition. As a result of this change, @@ XFB-OUT @@ is no longer emitted if the transform feedback extension is supported. With the above code now placed correctly for geometry shaders, transform feedback tests for geometry shaders are enabled. Bug: angleproject:3606 Change-Id: I13a7956ab62a1a6b4196ff999442b99b50226c0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617659 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop d38b9f86 2020-12-02T09:20:09 Allow GL_OES_shader_image_atomic when non-conformant On Android, force allowing it with: adb shell setprop debug.angle.feature_overrides_enabled \ exposeNonConformantExtensionsAndVersions If enabling multiple features, switch to using settings which don't have a character limit, but persist across reboots: adb shell settings put global angle_egl_features \ exposeNonConformantExtensionsAndVersions:foo:bar Test: Fortnite on ANGLE Bug: b/170755560 Bug: angleproject:5503 Change-Id: I58e3b265daa8ea1f645f47e0971c4454b8ddb3f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2570775 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott 16dbcc13 2021-01-08T20:50:16 dEQP: Avoid undefined right-shift behavior for GLhalf The FloatToHalf() function in "es31cVertexAttribBindingTests.cpp" will attempt to right-shift more than the number of bits in an integer (i.e. by 70) when converting 0.0f to GLhalf. Bug: angleproject:5500 Change-Id: I587e71a2cb1377b95ed74a1bba5f4ceef6a4a516 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2618665 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 46d3f02a 2021-01-05T17:56:24 Suppress dEQP.KHR_GLES31/core_vertex_attrib_binding_basicinputcase5 on Vulkan Pixel2 and SwiftShader. Ignore device and vendor in test config if we are running on SwiftShader. Bug: angleproject:5500 Change-Id: Ib07240dfe1c2ae1d6d081ffa389d041d97b22b36 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2611309 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
angle-autoroll 5c0ba543 2020-12-22T09:32:42 Roll VK-GL-CTS from 54509765b18d to b29bf0434c16 (15 revisions) Manually update deqp.gni to include new es3cNumberParsingTests files. https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/54509765b18d..b29bf0434c16 2020-12-19 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master 2020-12-18 alexander.galazin@arm.com Raise min CMake version to 3.10.2 2020-12-18 jeremyg@lunarg.com Fix Renderpass storeOp synchronization hazards 2020-12-18 jeremyg@lunarg.com Fix back-to-back transfer command synchronization hazards 2020-12-18 gleese@broadcom.com Simplify code for subgroup builtin mask tests 2020-12-18 jeremyg@lunarg.com Fix end of Renderpass synchronization hazards 2020-12-18 jeremyg@lunarg.com Fix additional RenderPass loadOp/stencilLoadOp sync hazards. 2020-12-18 jeremyg@lunarg.com Fix RenderPass stencilLoadOp synchronization hazards. 2020-12-18 jeremyg@lunarg.com Fix RenderPass loadOp synchronization hazards. 2020-12-17 mikko.tiusanen@siru.fi Tests for GLES3 number parsing 2020-12-17 mikko.tiusanen@siru.fi Tests for multiple clears within render pass 2020-12-17 rgarcia@igalia.com Enable nullDescriptor for AS ray query tests 2020-12-15 piotr.byszewski@mobica.com Test dynamic indexing of AS 2020-12-15 rgarcia@igalia.com Test dynamic indexing of ray queries 2020-12-13 piotr.byszewski@mobica.com Test procedural geometry with complex BB sets 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 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/master/autoroll/README.md Bug: None Tbr: ynovikov@google.com,angle-bots+autoroll-info@google.com Change-Id: I59e4aabcfbf496d02e18ba7b7aa06391ba90f434 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2600639 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 74788951 2020-12-22T13:11:17 Vulkan: Fix assertion in xfb of indirect calls An assertion was fired which was only valid when emulating transform feedback. The relevant block is conditioned to the respective feature. Bug: angleproject:3571 Change-Id: I287ef6d94c920ccda742e4032bfc389409a38e1f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2599951 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 00643e7d 2020-07-22T20:58:49 Use Android API to get storage path. This pipes through to a system call via JNI. This will allow Chromium changes to land that were prevented because ANGLE hard-coded some parts of this path. This in turn will allow us to more easily override these paths for changes needed for Android R support. Bug: chromium:1094062 Change-Id: I20d75b8ee40d418ba5c057f618640ef896248299 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2315483 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 282fb409 2020-12-11T16:09:10 Fix link validation of I/O block members Location and struct name matching for fields was missing as they only apply to I/O blocks and not varyings of struct type. Bug: angleproject:3580 Change-Id: I69083f39088458da72828b418be3068187a30fcc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587456 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 56330564 2020-12-10T00:46:04 Vulkan: Support layered framebuffers This feature is introduced by geometry shaders, where all the layers of a texture can be attached to a framebuffer. The geometry shader would use gl_Layer to decide which layer the primitive should be rendered to. Bug: angleproject:3571 Change-Id: Ib2ae8e227b226295f9e2f62f6b230839070bc95c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2582711 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 8326b26a 2020-12-11T13:59:40 Fix link validation with ambiguous instanceless interface blocks The following interface blocks should fail link: VS: layout(binding=0) buffer BufferBlockNameA { mediump float variable; }; FS: layout(binding=1) buffer BufferBlockNameB { mediump float variable; }; Because `variable` is ambiguous. Bug: angleproject:3580 Change-Id: I29576a6f152780819af0e9fb63249dbee7d9f2fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2587450 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d9318acc 2020-12-11T10:40:21 Roll VK-GL-CTS from 41331850eb21 to 54509765b18d (18 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/41331850eb21..54509765b18d 2020-12-10 boris.zanin@mobica.com Basic tests for VK_EXT_conservative_rasterization 2020-12-10 ari.suonpaa@siru.fi Add test for image copy special case 2020-12-10 mikko.tiusanen@siru.fi Add tests for GLES3 vector construction from other types 2020-12-10 alexander.galazin@arm.com Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master 2020-12-09 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master 2020-12-09 ari.suonpaa@siru.fi Add drawing tests for Android hardware buffer based color buffer 2020-12-09 rgarcia@igalia.com Test data spilling and unspilling around RT shader calls 2020-12-09 dominik.witczak@amd.com Add new tests that verify IgnoreIntersection/TerminateRay corner cases. 2020-12-09 rgarcia@igalia.com Test maxPipelineRayRecursionDepth can be zero 2020-12-09 gleese@broadcom.com Enable YCbCr filtering tests for non-separable chroma 2020-12-07 slawomir.cygan@intel.com Fix clang 10.0 build of ray tracing control flow tests 2020-12-07 slawomir.cygan@intel.com Remove merge conflict markers from mandatory_features.txt 2020-12-07 jan.mroczkowski@mobica.com Vulkan Portability support 2020-12-07 piotr.byszewski@mobica.com Disable conflicting fragment shading rate features 2020-12-07 alexander.galazin@arm.com Update Vulkan headers 2020-12-07 tzlatinski@nvidia.com Select SPIR-V for the robustness' compute shaders 2020-12-07 rgarcia@igalia.com Fix buffer offsets in push descriptor tests 2020-12-07 rgarcia@igalia.com Destroy deferred ops before destroying devices Bug: angleproject:5461 Change-Id: I86f70ea9b77c114ed9495215d83a6fee61adc76a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2586995 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8b851562 2020-12-08T16:51:51 Don't output matrix qualifiers in I/O blocks row_major and column_major only apply to uniform and buffer interface blocks per GLSL ES 3.2 spec. Bug: angleproject:3580 Change-Id: Iad0afeffc7ddb7bff2ebaec0ea0ec4eda26171a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580191 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi f691b3b5 2020-12-02T13:11:54 Vulkan: Support PrimitivesGenerated query This query uses the Vulkan transform feedback extension. In GL, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN and GL_PRIMITIVES_GENERATED queries can be independently begun/ended. However, Vulkan requires that queries from pools of the same type can only be active one at a time. This forbids the two GL queries from being handled by two VK queries when they are simultaneously begun. This change makes these queries share their QueryHelper objects. The Vulkan transform feedback queries unconditionally retrieve both results anyway, so this is just a matter of making sure the two GL queries are merged as one when they are simultaneously used. The change fixes a number of issues as collateral: - TransformFeedbackPrimitivesWritten queries when !emulated were not released - Stashed queries were never released - If no render pass is open when a query ends, then getResult(no_wait) ended up waiting Bug: angleproject:5404 Change-Id: I8ce13ea76ffd31b3152ded7c713c6466d0315504 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2573580 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4accbe92 2020-12-04T12:27:01 Fix separable Geometry shaders. Geometry shaders weren't being processed in some of the separable shader logic. This CL fixes two cases: one in Program and one in ProgramPipeline. Bug: angleproject:5409 Change-Id: I19adc5c11a54814d28dd20574a5e038ca9dbd021 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574827 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7354c67b 2020-12-04T12:21:10 Vulkan: Support for geometry shader with max_vertices=0 This is simply done by specifying max_vertices=1. Bug: angleproject:5411 Change-Id: I50318128cca0e96a8b7c7e5d01165b9ef46b4db8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574823 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi b35a468a 2020-12-04T12:14:37 Vulkan: Support geometry/tessellation primitive topologies Bug: angleproject:5406 Change-Id: Ifb7553e87164c204353e1ed94b8d64f5fb4b7206 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2574822 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi abe96578 2020-11-30T14:09:11 Vulkan: I/O blocks: Support unsized arrays Geometry shader inputs have an extra array dimension, which can be unsized as it can be derived from the primitive type. This change fixes the grammar to support such arrays. Additionally, it enables EXT_shader_io_blocks automatically with EXT_geometry_shader and EXT_tessellation_shader per spec. Bug: angleproject:3580 Change-Id: Ia7eb3e8be28c2eef2072dbe2a546fa34973104ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2568242 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8797714c 2020-12-01T11:39:25 Vulkan: Support OES_shader_io_blocks Enables OES/EXT_shader_io_blocks extensions in Vulkan backends. With shader I/O blocks, the varyings can now be an array of struct (the block itself) of struct (nested in the block). This change is missing a number of features. In particular, if the shader I/O block has a location decoration in the middle of the block, that is not handled yet. Based on changes from m.maiya@samsung.com and jmadill@chromium.org. Bug: angleproject:3580 Tests: dEQP-GLES31.functional.shaders.linkage.es31.io_block.* dEQP-GLES31.functional.separate_shader.validation.es31.io_blocks.* dEQP-GLES31.functional.program_interface_query.program_input.* dEQP-GLES31.functional.program_interface_query.program_output.* Change-Id: I593840475d2365ff6c9ce7b2290f5ee462a30dfb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2567645 Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 06c39376 2020-11-27T12:45:33 Vulkan: Minimize gl_PerVertex members As ANGLE doesn't redeclare gl_PerVertex, glslang always defines it with: gl_Position gl_PointSize gl_ClipDistance gl_CullDistance The unused members here contribute to varying component limits. The last two are unlikely to be used, and the second member is rarely used as well. This change keeps it simple and strips the trailing inactive members, which for all intents and purposes accurately minimizes this struct. Bug: angleproject:5405 Change-Id: I59c22af4988a3da7b1e428913d0ea13be9031cea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562754 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi fcb6b5a5 2020-11-25T22:16:15 Vulkan: Fix precision transformation for geometry shaders When a varying precision mismatch is present between two stages, the SPIR-V transformer transforms the following: in precision1 type1 inVar; out precision2 type2 outVar; void main() { f(inVar); outVar = g(); } to: in precision3 type1 inVarModified; out precision4 type2 outVarModified; precision1 type1 inVarTurnedPrivate; precision2 type2 outVarTurnedPrivate; void main() { // Input preamble inVarTurnedPrivate = inVarModified; f(inVarTurnedPrivate); outVarTurnedPrivate = g(); // Output preamble outVarModified = outVarTurnedPrivate; } This doesn't work for geometry shaders as they take the varying outputs on EmitVertex() as opposed to return from main. This change simply places the output preamble before every EmitVertex() instead of at the end of the shader, if it's a geometry shader. Bug: angleproject:5403 Change-Id: Ie395a3270c6903c54b49f64a26bc5297044cbaeb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561939 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi ab9aae05 2020-11-26T12:00:11 Vulkan: Implement multisampled incomplete textures Bug: angleproject:3588 Change-Id: I5b7d3151b34a77998b25dd4fa5761c92d74d8c81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2562120 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi f60823d3 2020-11-25T17:03:50 Vulkan: Experimentally enable geometry shaders Partial support for GS was added by jaedon1.lee@samsung.com already. This change enables the extension and adds suppressions for GLES3.1 dEQP tests. Suppressions for KHR GLES3.2 will be updated separately as currently GS shaders in "version 320" fail validation. Bug: angleproject:3571 Change-Id: Ic6ed65554937fd0cce2d0f6ea0ac2eb7e6ed9f10 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561445 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Anders Leino 4e913d34 2020-11-02T10:44:51 Vulkan: Work around Nvidia depth clamping bug In GL ES, depth is always clamped to [0,1]. The same is true in Vulkan, but not for implementations affected by Nvidia bug 3171019. This patch implements a workaround. The workaround introduced test failures on Linux with Nvidia Quadro P400 and driver version 418.56, so it's only applied conditionally, and as a result the test failure expectations are not removed completely. Bug: angleproject:3970 Change-Id: I0d9f855d7f3df72fea4af9f9b134ae3177cf820d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2514377 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi cf336839 2020-11-20T00:27:59 Vulkan: Initial expectations for GLES32 KHR tests Bug: angleproject:3647 Change-Id: I8eca26b01a0e2ec7b34ab39c448956f43b9f4511 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2551840 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 9041ca0c 2020-11-20T16:27:48 Limit testing of in-progress work to ANGLE's build of dEQP A new feature is added, exposeNonConformantExtensionsAndVersions, which is set by ANGLE's build of dEQP to allow exposing ES3.2 or extensions that are not yet entirely conformant. This would allow ANGLE to expose WIP extensions for regression testing without affecting partners that test ANGLE with dEQP's standalone build. Bug: angleproject:3647 Change-Id: Id1e6219f26b41d3f8cdc9763131b8052227761c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552926 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Sunny Sun <sunny.sun@arm.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao c2a74cbb 2020-11-23T11:48:14 Vulkan: Re-enable the tests that was disabled due to specConst The specialization constant crrev.com:/c/2514773 was hitting test failures on pixel2 devices but not able to reproduce on pixel4. Now I think the problem is likely attribute to QC driver bug http://b/173636783. And we have disabled specialization constant code path on older driver. This CL is to re-enable those tests that we skipped in that CL so that they gets tested. Bug: b/173636783 Change-Id: I3452abee26ebc6b8e81e68831fb2c698e464cf07 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2555858 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Mohan Maiya c4ca12e3 2020-11-20T09:02:54 Vulkan: Support the single-sampled targets Add support for gl_SampleMask for single-sampled targets. When dealing with a single-sampled target, gl_SampleMask is always be set to 0xFFFFFFFF. And when the target is single-sampled, sample shading is disabled to enable Bresenham line rasterization. Bug: angleproject:3588 Tests: dEQP-GLES31.functional.shaders.sample_variables. sample_mask.discard_half_per_pixel.* sample_mask.discard_half_per_sample.* sample_pos.correctness.* sample_mask_in.bit*_per_two_samples.* sample_mask.discard_half_per_two_samples.* sample_mask.inverse_per_* Change-Id: Ibb471261b8451ff01fab3dc43f2e965ae2999610 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477909 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Shahbaz Youssefi 4e5a50b6 2020-11-13T22:56:59 Vulkan: Drop dependency to VK_EXT_shader_atomic_float This VK extension exposes features that are not necessary for GL_OES_shader_image_atomic. Instead, support for necessary features for VK_FORMAT_R32_SFLOAT is used to determine support for this GL extension. Bug: angleproject:5342 Change-Id: Ia504cba69ffe51cfd7da69df28f58563cb1f0744 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2536908 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Brandon Schade 777749aa 2020-11-13T09:43:31 Vulkan: Fix image copies with renderbuffers When doing an EXT_copy_image copy, renderbuffers were being recreated due to a mismatch in sample count values. Bug: angleproject:3593 Test: dEQP-GLES31.functional.copy_image.*renderbuffer* Change-Id: Ic6b85ea098ab6382b56520b1ca6b76ac25801b54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2538076 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya cc5f7989 2020-11-19T07:59:01 Vulkan: Support gl_SampleMask with non-const index Add support for access to gl_SampleMask or gl_SampleMaskIn with non-constant index. Replace gl_SampleMask with ANGLESampleMask and reassign ANGLESampleMask to gl_SampleMask in the end. Bug: angleproject:3588 Tests: dEQP-GLES31.functional.shaders.sample_variables.sample_mask. discard_half_per_pixel.* discard_half_per_sample.* Change-Id: Ie668c3ccf4d40352574db57f5e43b2f17ef6d8b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477908 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 8a401051 2020-11-19T07:58:05 Vulkan: Support OES_sample_variables extension Enable OES_sample_variables extension on Vulkan backend. Add support for built-in variables, uniform state and constants - gl_SampleId, gl_SamplePosition, gl_SampleMask, gl_SampleMaskIn - gl_NumSamples - gl_MaxSamples Bug: angleproject:3588 Tests: dEQP-GLES31.functional.shaders.sample_variables.* KHR-GLES31.core.sample_variables.* Change-Id: Idf37c7b4ccb0331dbda7acd6389ff4e1022ba959 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477907 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8d63a7fc 2020-11-17T15:15:44 Basic support for running deqp khr gles32 tests Bug: angleproject:3647 Change-Id: Ia707ffcd41926662d1513f1a3bf49149b76f6b9c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2544920 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 8a58e38b 2020-11-18T15:25:25 Vulkan: Remove texture gather suppressions from khr deqp 3.1 Should have been removed when support for EXT_gpu_shader5 finished. Bug: angleproject:3569 Change-Id: I0e66e75873b550c7ff37bd26dae4388384c351bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2547219 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi b6ec24ab 2020-11-14T00:24:52 Vulkan: Support format reinterpretation in imageBuffers This is done by creating multiple buffer views over the buffer based on the format specified by the attached shaders. Bug: angleproject:3573 Change-Id: I0372a988938050cc092d8a0959a59d1c893fc6f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2536909 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 2ffff6d0 2020-11-12T10:56:06 Vulkan: Support image buffers This change does not support reinterpreted formats yet. Additionally, despite lack of support for RGB32 formats, EXT_texture_buffer is exposed by this extension. Those formats don't support the STORAGE_TEXEL_BUFFER feature on any known hardware. Bug: angleproject:3573 Change-Id: I85f45eb23f6a0aa533488bb98d9f226d59af4d76 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2534395 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 7c66cdf8 2020-11-17T14:07:17 Default deqp to Vulkan on !Apple To avoid having to specify --use-angle=vulkan every time. Particularly useful for running deqp tests on Android through renderdoc as setting more-than-one command line argument is impossible. Bug: angleproject:3647 Change-Id: I5ed6ec8fc4febc7f0febe0922a121b26df5581f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2544906 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8dd6a197 2020-11-17T10:22:19 Vulkan: 270 degree prerotation deqp expectations Bug: angleproject:5044 Change-Id: I1c63ee77a38beab491256b983724956478b9d117 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2543293 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 946d527a 2020-11-16T15:42:10 GL: Support OES_shader_image_atomic Bug: angleproject:5342 Change-Id: I4fc4133b1f5bba001112c0d06764146e449c3314 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2542310 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 86d7e4d8 2020-11-10T15:55:34 Vulkan: Support texture buffers Texture buffers are placed in the same descriptor set with the rest of the textures. However, the different code paths that handle textures have special cases for texture buffers as they create a different descriptor type (texel buffer instead of combined image sampler). Image view serials are used to track the buffer view serials as well so the texture descriptor cache can handle texture buffers as well. This CL is missing storage texel buffer support. Bug: angleproject:3573 Change-Id: Iff80ca22ff9b9957a0c9a3c7aaada1fa54b24ec8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2532653 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi d3a14089 2020-11-16T14:49:41 Vulkan: prerotation deqp expectations Bug: angleproject:5348 Bug: angleproject:5349 Bug: angleproject:5350 Change-Id: Ie25554833cc759fd7923133c470df57ba12b4118 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2542222 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 60570b85 2020-11-13T15:33:12 Update emulated_prerotation_ to emulatedPrerotation The feature names were recently updated to match their member variables, however a few instances of "emulated_prerotation_" were missed, which breaks using the --emulated-pre-rotation flag for dEQP tests. Bug: b/172704839 Change-Id: I6af5cd866bff0752964e193132280f5e8fcf1528 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2536902 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 5b52afae 2020-11-11T15:26:39 Fix texture buffer width query If glTexBuffer is used, the width should be calculated based on the buffer size. Since ES doesn't have immutable buffers, EXT_texture_buffer allows mutable buffers to be attached to the texture. This means that updates to the buffer must update the image description. This is done by having the texture observe the attached buffer. Bug: angleproject:3573 Bug: angleproject:5334 Test: dEQP-GLES31.functional.state_query.texture_level.texture_buffer.width_* Test: TextureBufferTestES31.QueryWidthAfterBufferResize Change-Id: I7d9e5344a3d4ea70da7ba525f13b5876481a70a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2533495 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 620cb770 2020-11-11T14:45:14 Fix texture buffer unbind and size query - Fixes a crash with glTexBuffer given 0 as buffer. - Fixes query of TEXTURE_BUFFER_SIZE. If glTexBuffer is used to bind a buffer, and the buffer is modified, the result of this query must adapt to the new buffer size. The spec mentions that unlike Desktop GL, ES doesn't have immutable buffers, and so they had no choice but to allow mutable buffers. Bug: angleproject:3573 Test: KHR-GLES31.core.texture_buffer.texture_buffer_parameters Test: dEQP-GLES31.functional.texture.texture_buffer.state_query.texture_buffer_size_integer Change-Id: Iec77c14ccf0e9ee11a171dbe2c7386678304bcc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2533494 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 9eff9895 2020-11-12T15:29:07 Sensible default for --emulated-pre-rotation on rotated targets For angle_deqp_gles3*_rotateN_tests, this change defaults --emulated-pre-rotation to N. Bug: angleproject:4901 Change-Id: I24d1b93d6601b85e608c9632de546283f519632a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2535675 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 6a39c8cc 2020-11-12T11:29:54 Vulkan: Skip copy_tex_image_conversions.* on Pixel 2 The dEQP tests KHR-GLES3.copy_tex_image_conversions.* are crashing on Pixel 2 after outputting many VVL errors: VUID-vkAllocateMemory-maxMemoryAllocationCount-04101 Skipping the tests for now to unblock the VVL rolls. Bug: angleproject:5340 Change-Id: I8e7606da5262454bbc8c8658886e03f05265c24f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2534403 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Charlie Lao 15ead5d5 2020-11-02T12:25:32 Reland "Vulkan: Let shader use rotation specialized constant" This is a reland of 47b3db22be33213eea4ad58f2453ee1088324ceb Original change's description: > Vulkan: Let shader use rotation specialized constant > > If use rotation specialized constant is enabled via compiler options, > this CL will use rotation specialized constant to generate flipXY, > rotation matrix and negFlipXY. This allows the driver to optimize for > the minimum instructions for rotation. > > Bug: b/171750979 > Change-Id: I9851ac999d4d35b9f230f796e5445bca0dcb1e77 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2514773 > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Ian Elliott <ianelliott@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> Bug: b/171750979 Change-Id: I9efde40eb138bacb161cce483a30ec01fee0983b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2533933 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten c3607098 2020-11-11T16:06:51 Revert "Vulkan: Let shader use rotation specialized constant" This reverts commit 47b3db22be33213eea4ad58f2453ee1088324ceb. Reason for revert: Broke the ANGLE roll into Chromium: https://chromium-review.googlesource.com/c/chromium/src/+/2531069 [1875/27343] SOLINK ./libGLESv2.so FAILED: libGLESv2.so libGLESv2.so.TOC /b/s/w/ir/cipd_bin_packages/cpython/bin/python "../../build/toolchain/gcc_solink_wrapper.py" --readelf="readelf" --nm="nm" --sofile="./libGLESv2.so" --tocfile="./libGLESv2.so.TOC" --output="./libGLESv2.so" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-soname="libGLESv2.so" -Wl,--fatal-warnings -Wl,--build-id -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,defs -Wl,--as-needed -fuse-ld=lld -Wl,--color-diagnostics -Wl,--no-call-graph-profile-sort -m64 -Werror -nostdlib++ --sysroot=../../build/linux/debian_sid_amd64-sysroot -L../../build/linux/debian_sid_amd64-sysroot/usr/local/lib/x86_64-linux-gnu -L../../build/linux/debian_sid_amd64-sysroot/lib/x86_64-linux-gnu -L../../build/linux/debian_sid_amd64-sysroot/usr/lib/x86_64-linux-gnu -Wl,-rpath=\$ORIGIN -Wl,--export-dynamic -Wl,-rpath=\$ORIGIN -o "./libGLESv2.so" @"./libGLESv2.so.rsp" ld.lld: error: undefined symbol: sh::TranslatorVulkan::GetDriverUniformFlipXYRef(sh::TVariable const*) >>> referenced by RewriteDfdy.cpp:134 (../../third_party/angle/src/compiler/translator/tree_ops/RewriteDfdy.cpp:134) >>> translator/RewriteDfdy.o:(sh::(anonymous namespace)::Traverser::visitUnaryWithRotation(sh::Visit, sh::TIntermUnary*)) in archive obj/third_party/angle/libtranslator.a >>> referenced by RewriteDfdy.cpp:200 (../../third_party/angle/src/compiler/translator/tree_ops/RewriteDfdy.cpp:200) >>> translator/RewriteDfdy.o:(sh::(anonymous namespace)::Traverser::visitUnaryWithoutRotation(sh::Visit, sh::TIntermUnary*)) in archive obj/third_party/angle/libtranslator.a ld.lld: error: undefined symbol: sh::TranslatorVulkan::GetDriverUniformFragRotationMatrixRef(sh::TVariable const*) >>> referenced by RewriteDfdy.cpp:136 (../../third_party/angle/src/compiler/translator/tree_ops/RewriteDfdy.cpp:136) >>> translator/RewriteDfdy.o:(sh::(anonymous namespace)::Traverser::visitUnaryWithRotation(sh::Visit, sh::TIntermUnary*)) in archive obj/third_party/angle/libtranslator.a clang: error: linker command failed with exit code 1 (use -v to see invocation) Original change's description: > Vulkan: Let shader use rotation specialized constant > > If use rotation specialized constant is enabled via compiler options, > this CL will use rotation specialized constant to generate flipXY, > rotation matrix and negFlipXY. This allows the driver to optimize for > the minimum instructions for rotation. > > Bug: b/171750979 > Change-Id: I9851ac999d4d35b9f230f796e5445bca0dcb1e77 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2514773 > Commit-Queue: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Ian Elliott <ianelliott@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> TBR=ianelliott@google.com,timvp@google.com,syoussefi@chromium.org,jmadill@chromium.org,cclao@google.com Change-Id: Id3976259d1f4049aa62b679ad5b25c2ac337c92b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: b/171750979 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2532702 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Charlie Lao 47b3db22 2020-11-02T12:25:32 Vulkan: Let shader use rotation specialized constant If use rotation specialized constant is enabled via compiler options, this CL will use rotation specialized constant to generate flipXY, rotation matrix and negFlipXY. This allows the driver to optimize for the minimum instructions for rotation. Bug: b/171750979 Change-Id: I9851ac999d4d35b9f230f796e5445bca0dcb1e77 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2514773 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Mohan Maiya 34130c2e 2020-11-07T15:11:14 Vulkan: Rewrite interpolateAtOffset to account for Y-flip In order to fully suppot OES_shader_multisample_interpolation rewrite interpolateAtOffset's offset parameter to account for Y-coordinate flip. Bug: angleproject:3589 Tests: dEQP-GLES31.functional.shaders.multisample_interpolation. interpolate_at_offset.*.default_framebuffer Change-Id: I6bf72ceb1c0466ff5d4a92b72d1ec9e2552d6f2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2524711 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 21eb41ac 2020-11-05T16:54:25 Generate executables for prerotation deqp tests This change generates angle_deqp_gles*_rotate*_tests executables which choose the appropriate mustpass file. Bug: angleproject:4901 Change-Id: Ie6ac4b80d480b0f590b5baf1fa244fd601b5beed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2522415 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 43acf3ba 2020-07-31T15:43:57 GL: Compiler changes for GL_OES_texture_buffer This extension is core in GLES 3.2 This CL enables the extension, added 412 new dEQP tests for texture buffer. 410 of these tests pass, but there are two tests that fail, detailed in anglebug.com/4933 Also includes a fix for completeness checks. Based on a CL by Jonah Ryan-Davis. Bug: angleproject:3573 Bug: angleproject:4933 Change-Id: I45759d765c88c64f21b592eab01d910dc4bc8da3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2521239 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Antonio Maiorano 940dc786 2020-11-05T13:54:56 Re-enable GLES31 test that is no longer flaky Fixed by: https://swiftshader-review.googlesource.com/c/SwiftShader/+/50008 The specific flaky crash was reported here: https://bugs.chromium.org/p/angleproject/issues/detail?id=4482#c15 Bug: angleproject:4482 Change-Id: Ia77b4b094446d14866bee5fd461a0a4eea52491e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2521237 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Antonio Maiorano <amaiorano@google.com>
Shahbaz Youssefi bb5848d8 2020-11-06T10:12:29 Vulkan: Remove vertex attribute aliasing suppressions Some suppresions on the GLES3 dEQP expectations file were not removed. Bug: angleproject:4249 Change-Id: Idcf2da50bb4ae4e6feb62fdb1d44d78aba9041a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2522420 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade 1e494cae 2020-10-07T19:26:01 Vulkan: Add support for EXT_copy_image Add support for GL_EXT_copy_image which allows image data transfer between image objects. This is implemented by using the vkCmdCopyImage API call. Bug: angleproject:3593 Test: dEQP-GLES31.functional.copy_image.* Change-Id: I30a34a8711b5d2e5834064d7453e03d6ec0df478 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2393955 Commit-Queue: Brandon Schade <b.schade@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Le Hoang Quyen ca8b58d7 2020-10-25T22:32:45 Metal: Enable dEQP GLES3 tests on AMD Bug: angleproject:2634 Bug: angleproject:4235 Change-Id: I159b635b9d02b019a2012da24801a4bdd090961e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2497340 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 09932e04 2020-10-29T00:31:49 Vulkan: Support emulated pre-rotation in dEQP testing Similarly to end2end tests, the window dimensions are swapped with emulated prerotation at 90 and 270 degrees, while maintaining to the application that dimensions are as requested. The following new command line argument can be used to select an emulated prerotation: --emulated-pre-rotation=90 --emulated-pre-rotation=180 --emulated-pre-rotation=270 For example: $ ./angle_deqp_gles2_tests --use-angle=vulkan \ --deqp-case=*draw* \ --emulated-pre-rotation=270 Additionally, the deqp test expectations can be marked with the following new tags to add suppressions for failing tests under prerotation: PREROTATION PREROTATION90 PREROTATION180 PREROTATION270 Bug: angleproject:4901 Change-Id: I7a68c1a1e7da4366cde981469c589d8d900c40c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2506810 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Le Hoang Quyen aff43fa0 2020-10-25T16:12:59 Metal: prepare to run dEQP GLES3 tests Bug: angleproject:2634 Bug: angleproject:4235 Change-Id: I6618b9de94ce88f8cbf81a163d0821b25ab07186 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2494528 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 5d0458fa 2020-10-23T12:52:34 Vulkan: Add OES_shader_multisample_interpolation support Support OES_shader_multisample_interpolation extension if maxInterpolationOffset >= 0.5 Bug: angleproject:3589 Tests: dEQP-GLES31.functional.shaders.multisample_interpolation.* dEQP-GLES31.functional.state_query.multisample_interpolation.* Change-Id: I42997f10be82e3be8b63c56833cbbf791bf4be9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477905 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Courtney Goeltzenleuchter cfd70489 2020-10-22T10:26:19 Re-enable dEQP-EGL.functional.fence_sync.* Tests appear to pass now. Going to be changing functionality in this area so prefer to have them enabled. Bug: b/154030730 Bug: angleproject:3271 Change-Id: I1c0ffe40b726943c146fa06aa16de79d434760bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2493182 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Alexis Hétu fbec291e 2020-10-21T19:32:38 Allow rendering to half float in ES2 contexts when possible According to the EXT_color_buffer_half_float spec: "Dependencies on OES_texture_half_float If OES_texture_half_float is not supported, then all references to RGBA16F_EXT, RGB16F_EXT, RG16F_EXT, R16F_EXT, HALF_FLOAT_OES and half should be ignored. If OES_texture_half_float is supported, textures created with: <internalformat> = RGBA <format> = RGBA <type> = HALF_FLOAT_OES are renderable." This fixes 4 viz_unittests when running with SwANGLE: All/GLI420ConverterPixelTest.ScaleAndConvert/0 All/GLI420ConverterPixelTest.ScaleAndConvert/1 GLScalerPixelTest.Example_ScaleAndExportForScreenVideoCapture GLScalerPixelTest.ScalesWithColorManagement The original attempt at landing this change (https://chromium-review.googlesource.com/c/angle/angle/+/2489726) was reverted due to dEQP failures on the Metal backend. After some investigation, it was decided to simply disable the 2 offending tests for now. Bug: angleproject:5174 Change-Id: Id1e382b72d91109e4718c729cc6c5f0a0f413d7d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491930 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Shahbaz Youssefi d7475437 2020-10-20T15:04:18 Vulkan: Support vertex attribute aliasing for matrix types This change builds on vertex attribute aliasing SPIR-V tranformation for non-matrix types to add support for matrix attribute types. This is done by turning every matrix attribute declaration into multiple vector attribute declarations, and reusing the same mechanism for resolving aliasing between non-matrix types. Take the following example: attribute mat4 a; // location 0 attribute vec3 b; // location 1 attribute mat3 c; // location 1 attribute vec4 d; // location 2 The shader is modified as such: attribute vec4 a_0; // location 0 attribute vec4 a_1; // location 1 attribute vec4 a_2; // location 2 attribute vec4 a_3; // location 3 attribute vec3 c_0; // location 4 attribute vec4 d; // location 5 attribute vec3 c_2; // location 6 mat4 a; mat3 c; and in the beginning of main(), the following code is inserted: a = mat4(a_0, a_1, a_2, a_3); c = mat3(c_0, d.xyz, c_2); The shader continues to use a and c as before. Bug: angleproject:4249 Change-Id: Idfcb8c6037ca0c1f21de8203d7e2a1b66fed6e7e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488128 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>