From a6a4bf0f1eae36cb68d5c67653ac013fe0fbde8a Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 22 Apr 2022 09:05:26 -0400 Subject: [PATCH] glsl/nir: set new_style_shadow for sparse tex ops as necessary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this needs the sparse result type, which is not the ir type Fixes: f4a972b7483 ("glsl/nir: convert sparse ir_texture to nir") Reviewed-by: Marek Olšák Reviewed-by: Qiang Yu Part-of: --- src/compiler/glsl/glsl_to_nir.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index bbc0aa93ad6..47e9b0d3756 100644 --- a/src/compiler/glsl/glsl_to_nir.cpp +++ b/src/compiler/glsl/glsl_to_nir.cpp @@ -2478,12 +2478,12 @@ nir_visitor::visit(ir_texture *ir) (glsl_sampler_dim) ir->sampler->type->sampler_dimensionality; instr->is_array = ir->sampler->type->sampler_array; instr->is_shadow = ir->sampler->type->sampler_shadow; - if (instr->is_shadow) - instr->is_new_style_shadow = (ir->type->vector_elements == 1); const glsl_type *dest_type = ir->is_sparse ? ir->type->field_type("texel") : ir->type; assert(dest_type != glsl_type::error_type); + if (instr->is_shadow) + instr->is_new_style_shadow = (dest_type->vector_elements == 1); instr->dest_type = nir_get_nir_type_for_glsl_type(dest_type); instr->is_sparse = ir->is_sparse;