Previously, we just gave them exactly the same type as the respective
image (which already had a sampler2D or similar type). Now they have
their own base type and a pointer to the vtn_type for the image.
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
case vtn_base_type_pointer:
case vtn_base_type_image:
case vtn_base_type_sampler:
+ case vtn_base_type_sampled_image:
/* Nothing more to do */
break;
}
case SpvOpTypeSampledImage:
- val->type = vtn_value(b, w[2], vtn_value_type_type)->type;
+ val->type->base_type = vtn_base_type_sampled_image;
+ val->type->image = vtn_value(b, w[2], vtn_value_type_type)->type;
+ val->type->type = val->type->image->type;
break;
case SpvOpTypeSampler:
vtn_base_type_pointer,
vtn_base_type_image,
vtn_base_type_sampler,
+ vtn_base_type_sampled_image,
vtn_base_type_function,
};
SpvAccessQualifier access_qualifier;
};
+ /* Members for sampled image types */
+ struct {
+ /* For sampled images, the image type */
+ struct vtn_type *image;
+ };
+
/* Members for function types */
struct {
/* For functions, the vtn_type for each parameter */