diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index e29bd390d6f..270a3a24eea 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -3147,6 +3147,7 @@ vtn_handle_image(struct vtn_builder *b, SpvOp opcode, break; case SpvOpImageQuerySize: + case SpvOpImageQuerySamples: res_val = vtn_untyped_value(b, w[3]); image.image = vtn_get_image(b, w[3], &access); image.coord = NULL; @@ -3280,6 +3281,7 @@ vtn_handle_image(struct vtn_builder *b, SpvOp opcode, OP(AtomicFMaxEXT, atomic_fmax) OP(ImageQueryFormat, format) OP(ImageQueryOrder, order) + OP(ImageQuerySamples, samples) #undef OP default: vtn_fail_with_opcode("Invalid image opcode", opcode); @@ -3290,6 +3292,7 @@ vtn_handle_image(struct vtn_builder *b, SpvOp opcode, intrin->src[0] = nir_src_for_ssa(&image.image->dest.ssa); switch (opcode) { + case SpvOpImageQuerySamples: case SpvOpImageQuerySize: case SpvOpImageQuerySizeLod: case SpvOpImageQueryFormat: @@ -3321,6 +3324,7 @@ vtn_handle_image(struct vtn_builder *b, SpvOp opcode, nir_intrinsic_set_access(intrin, access); switch (opcode) { + case SpvOpImageQuerySamples: case SpvOpImageQueryFormat: case SpvOpImageQueryOrder: /* No additional sources */ @@ -5359,7 +5363,6 @@ vtn_handle_body_instruction(struct vtn_builder *b, SpvOp opcode, case SpvOpImageSparseDrefGather: case SpvOpImageQueryLod: case SpvOpImageQueryLevels: - case SpvOpImageQuerySamples: vtn_handle_texture(b, opcode, w, count); break; @@ -5372,6 +5375,7 @@ vtn_handle_body_instruction(struct vtn_builder *b, SpvOp opcode, vtn_handle_image(b, opcode, w, count); break; + case SpvOpImageQuerySamples: case SpvOpImageQuerySizeLod: case SpvOpImageQuerySize: { struct vtn_type *image_type = vtn_get_value_type(b, w[3]);