mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-30 16:30:10 +01:00
spirv: Remove the type from sampled_image
We have types on all vtn_values at this point so there's no reason to carry the redundant type information. Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
This commit is contained in:
parent
a3dc975ee7
commit
4f9688e571
4 changed files with 2 additions and 8 deletions
|
|
@ -2246,8 +2246,6 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
|
|||
struct vtn_value *val =
|
||||
vtn_push_value(b, w[2], vtn_value_type_sampled_image);
|
||||
val->sampled_image = ralloc(b, struct vtn_sampled_image);
|
||||
val->sampled_image->type =
|
||||
vtn_value(b, w[1], vtn_value_type_type)->type;
|
||||
val->sampled_image->image =
|
||||
vtn_value(b, w[3], vtn_value_type_pointer)->pointer;
|
||||
val->sampled_image->sampler =
|
||||
|
|
@ -2272,12 +2270,11 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
|
|||
sampled = *sampled_val->sampled_image;
|
||||
} else {
|
||||
vtn_assert(sampled_val->value_type == vtn_value_type_pointer);
|
||||
sampled.type = sampled_val->pointer->type;
|
||||
sampled.image = NULL;
|
||||
sampled.sampler = sampled_val->pointer;
|
||||
}
|
||||
|
||||
const struct glsl_type *image_type = sampled.type->type;
|
||||
const struct glsl_type *image_type = sampled_val->type->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);
|
||||
nir_alu_type dest_type = nir_type_invalid;
|
||||
|
|
@ -2300,7 +2297,7 @@ vtn_handle_texture(struct vtn_builder *b, SpvOp opcode,
|
|||
break;
|
||||
|
||||
case SpvOpImageFetch:
|
||||
if (glsl_get_sampler_dim(image_type) == GLSL_SAMPLER_DIM_MS) {
|
||||
if (sampler_dim == GLSL_SAMPLER_DIM_MS) {
|
||||
texop = nir_texop_txf_ms;
|
||||
} else {
|
||||
texop = nir_texop_txf;
|
||||
|
|
|
|||
|
|
@ -315,7 +315,6 @@ vtn_cfg_handle_prepass_instruction(struct vtn_builder *b, SpvOp opcode,
|
|||
vtn_push_value(b, w[2], vtn_value_type_sampled_image);
|
||||
|
||||
val->sampled_image = ralloc(b, struct vtn_sampled_image);
|
||||
val->sampled_image->type = type;
|
||||
|
||||
struct vtn_type *sampler_type = rzalloc(b, struct vtn_type);
|
||||
sampler_type->base_type = vtn_base_type_sampler;
|
||||
|
|
|
|||
|
|
@ -537,7 +537,6 @@ struct vtn_image_pointer {
|
|||
};
|
||||
|
||||
struct vtn_sampled_image {
|
||||
struct vtn_type *type;
|
||||
struct vtn_pointer *image; /* Image or array of images */
|
||||
struct vtn_pointer *sampler; /* Sampler */
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2490,7 +2490,6 @@ vtn_handle_variables(struct vtn_builder *b, SpvOp opcode,
|
|||
struct vtn_value *val =
|
||||
vtn_push_value(b, w[2], vtn_value_type_sampled_image);
|
||||
val->sampled_image = ralloc(b, struct vtn_sampled_image);
|
||||
val->sampled_image->type = base_val->sampled_image->type;
|
||||
val->sampled_image->image =
|
||||
vtn_pointer_dereference(b, base_val->sampled_image->image, chain);
|
||||
val->sampled_image->sampler = base_val->sampled_image->sampler;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue