summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-07-21 11:56:09 -0700
committerJason Ekstrand <[email protected]>2016-07-22 16:48:54 -0700
commitb820c8b78c8e72426dbf6188e21c34fb956ddbcf (patch)
treef2e01538d3e3522692950143bb77496c5d1ab771
parent561be50a1ac63cd2f157cf6d305569e5a33f12da (diff)
spirv/nir: Refactor type handling in handle_texture
Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Cc: "12.0" <[email protected]>
-rw-r--r--src/compiler/spirv/spirv_to_nir.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index a0aeadfc7a1..284a2c8d30c 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -1335,6 +1335,9 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
} else {
image_type = sampled.sampler->var->var->interface_type;
}
+ const enum glsl_sampler_dim sampler_dim = glsl_get_sampler_dim(image_type);
+ const bool is_array = glsl_sampler_type_is_array(image_type);
+ const bool is_shadow = glsl_sampler_type_is_shadow(image_type);
/* Figure out the base texture operation */
nir_texop texop;
@@ -1485,11 +1488,11 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
memcpy(instr->src, srcs, instr->num_srcs * sizeof(*instr->src));
- instr->sampler_dim = glsl_get_sampler_dim(image_type);
- instr->is_array = glsl_sampler_type_is_array(image_type);
- instr->is_shadow = glsl_sampler_type_is_shadow(image_type);
- instr->is_new_style_shadow = instr->is_shadow &&
- glsl_get_components(ret_type->type) == 1;
+ instr->sampler_dim = sampler_dim;
+ instr->is_array = is_array;
+ instr->is_shadow = is_shadow;
+ instr->is_new_style_shadow =
+ is_shadow && glsl_get_components(ret_type->type) == 1;
instr->component = gather_component;
if (has_coord) {