From 475df98f04c8ceb5fda175b65b059bf6aa8ba249 Mon Sep 17 00:00:00 2001 From: antonino Date: Fri, 5 May 2023 17:39:38 +0200 Subject: [PATCH] nir: handle interface blocks in `copy_vars` Fixes: 99121c9b779 ("nir/gs: fix array type copying for passthrough gs") Part-of: (cherry picked from commit 8f22669f9b0417b3195d43721eacad8b7e92d3d5) --- .pick_status.json | 2 +- src/compiler/nir/nir_passthrough_gs.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 51a7f7b0b62..7e89f4f1169 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2992,7 +2992,7 @@ "description": "nir: handle interface blocks in `copy_vars`", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "99121c9b77930aa6b6da8fcd087e4f03aac19323" }, diff --git a/src/compiler/nir/nir_passthrough_gs.c b/src/compiler/nir/nir_passthrough_gs.c index c1eb7df8602..4250aa4cc27 100644 --- a/src/compiler/nir/nir_passthrough_gs.c +++ b/src/compiler/nir/nir_passthrough_gs.c @@ -126,7 +126,7 @@ static void copy_vars(nir_builder *b, nir_deref_instr *dst, nir_deref_instr *src) { assert(glsl_get_bare_type(dst->type) == glsl_get_bare_type(src->type)); - if (glsl_type_is_struct(dst->type)) { + if (glsl_type_is_struct_or_ifc(dst->type)) { for (unsigned i = 0; i < glsl_get_length(dst->type); ++i) { copy_vars(b, nir_build_deref_struct(b, dst, i), nir_build_deref_struct(b, src, i)); }