Mesa (staging/21.2): ir3: Preserve gl_ViewportIndex in the binning shader

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jul 28 23:00:08 UTC 2021


Module: Mesa
Branch: staging/21.2
Commit: bfc6597375c15137f6395445a3152d3abfa00c20
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bfc6597375c15137f6395445a3152d3abfa00c20

Author: Connor Abbott <cwabbott0 at gmail.com>
Date:   Wed Jul 28 16:35:48 2021 +0200

ir3: Preserve gl_ViewportIndex in the binning shader

Fixes dEQP-VK.draw.shader_viewport_index.* with TU_DEBUG=forcebin.

Fixes: efff7342204 ("turnip: multiViewport and VK_EXT_shader_viewport_index_layer")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12104>
(cherry picked from commit 7a14484bca7619e016b9b901637ee3172b9dca70)

---

 .pick_status.json                              |  2 +-
 src/freedreno/ci/deqp-freedreno-a630-fails.txt | 25 +------------------------
 src/freedreno/ir3/ir3_compiler_nir.c           |  3 ++-
 3 files changed, 4 insertions(+), 26 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index c132863fe56..8f149ef479d 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -175,7 +175,7 @@
         "description": "ir3: Preserve gl_ViewportIndex in the binning shader",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "efff73422049d738b4adfaa34d5fde78a2805d5e"
     },
diff --git a/src/freedreno/ci/deqp-freedreno-a630-fails.txt b/src/freedreno/ci/deqp-freedreno-a630-fails.txt
index 14b1f9e4e47..ed2a0d48c9c 100644
--- a/src/freedreno/ci/deqp-freedreno-a630-fails.txt
+++ b/src/freedreno/ci/deqp-freedreno-a630-fails.txt
@@ -21,30 +21,7 @@ dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail,Fail
 dEQP-VK.compute.basic.max_local_size_x,Crash
 dEQP-VK.compute.basic.max_local_size_y,Crash
 
-# shader_viewport and atomic_operations fails to reproduce on anholt's cheza,
-# even with a failing caselist from CI.
-dEQP-VK.draw.shader_viewport_index.fragment_shader_10,Fail
-dEQP-VK.draw.shader_viewport_index.fragment_shader_12,Fail
-dEQP-VK.draw.shader_viewport_index.fragment_shader_13,Fail
-dEQP-VK.draw.shader_viewport_index.fragment_shader_14,Fail
-dEQP-VK.draw.shader_viewport_index.fragment_shader_16,Fail
-dEQP-VK.draw.shader_viewport_index.fragment_shader_2,Fail
-dEQP-VK.draw.shader_viewport_index.fragment_shader_4,Fail
-dEQP-VK.draw.shader_viewport_index.fragment_shader_5,Fail
-dEQP-VK.draw.shader_viewport_index.fragment_shader_6,Fail
-dEQP-VK.draw.shader_viewport_index.fragment_shader_8,Fail
-dEQP-VK.draw.shader_viewport_index.fragment_shader_9,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_10,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_11,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_13,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_14,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_15,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_2,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_3,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_5,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_6,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_7,Fail
-dEQP-VK.draw.shader_viewport_index.vertex_shader_9,Fail
+# only fails with TU_DEBUG=forcebin
 dEQP-VK.glsl.atomic_operations.add_unsigned_geometry,Fail
 dEQP-VK.glsl.atomic_operations.and_signed_geometry,Fail
 dEQP-VK.glsl.atomic_operations.and_unsigned_geometry,Fail
diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c
index 0c5d0529047..62d22f50beb 100644
--- a/src/freedreno/ir3/ir3_compiler_nir.c
+++ b/src/freedreno/ir3/ir3_compiler_nir.c
@@ -3828,7 +3828,8 @@ static bool
 output_slot_used_for_binning(gl_varying_slot slot)
 {
    return slot == VARYING_SLOT_POS || slot == VARYING_SLOT_PSIZ ||
-          slot == VARYING_SLOT_CLIP_DIST0 || slot == VARYING_SLOT_CLIP_DIST1;
+          slot == VARYING_SLOT_CLIP_DIST0 || slot == VARYING_SLOT_CLIP_DIST1 ||
+          slot == VARYING_SLOT_VIEWPORT;
 }
 
 static struct ir3_instruction *



More information about the mesa-commit mailing list