summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2022-04-22 09:05:26 -0400
committerMarge Bot <emma+marge@anholt.net>2022-04-24 15:56:05 +0000
commita6a4bf0f1eae36cb68d5c67653ac013fe0fbde8a (patch)
tree359c04cfe354659167573c05e61e2c8128c776aa
parent5f0ac8ac191aee88a893053f366bd17ac629045b (diff)
glsl/nir: set new_style_shadow for sparse tex ops as necessary
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 <marek.olsak@amd.com> Reviewed-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16097>
-rw-r--r--src/compiler/glsl/glsl_to_nir.cpp4
1 files 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;