From 140fa2a2bdba11f3fc50c055dc6038d257f92ed8 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Wed, 28 Jul 2021 16:35:48 +0200 Subject: [PATCH] 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: (cherry picked from commit 7a14484bca7619e016b9b901637ee3172b9dca70) --- .pick_status.json | 2 +- .../ci/deqp-freedreno-a630-fails.txt | 24 ++----------------- src/freedreno/ir3/ir3_compiler_nir.c | 3 ++- 3 files changed, 5 insertions(+), 24 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index a6e0b33225c..a30f6ef9c64 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1975,7 +1975,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 fb130509949..9ecc65566cc 100644 --- a/src/freedreno/ci/deqp-freedreno-a630-fails.txt +++ b/src/freedreno/ci/deqp-freedreno-a630-fails.txt @@ -20,28 +20,8 @@ dEQP-VK.api.info.vulkan1p2.property_extensions_consistency,Fail dEQP-VK.api.info.vulkan1p2_limits_validation.khr_multiview,Fail dEQP-VK.compute.basic.max_local_size_x,Crash dEQP-VK.compute.basic.max_local_size_y,Crash -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 1ef24bd76a0..a1e9f1800ae 100644 --- a/src/freedreno/ir3/ir3_compiler_nir.c +++ b/src/freedreno/ir3/ir3_compiler_nir.c @@ -3520,7 +3520,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 void