zink: add some spirv builder handling for sampled image ops
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Tue, 18 Oct 2022 15:36:10 +0000 (11:36 -0400)
committerMarge Bot <emma+marge@anholt.net>
Thu, 27 Oct 2022 22:01:34 +0000 (22:01 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19327>

src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c
src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h

index cd9cae6..0e74dec 100644 (file)
@@ -1330,6 +1330,12 @@ spirv_builder_type_image(struct spirv_builder *b, SpvId sampled_type,
 }
 
 SpvId
+spirv_builder_emit_sampled_image(struct spirv_builder *b, SpvId result_type, SpvId image, SpvId sampler)
+{
+   return spirv_builder_emit_binop(b, SpvOpSampledImage, result_type, image, sampler);
+}
+
+SpvId
 spirv_builder_type_sampled_image(struct spirv_builder *b, SpvId image_type)
 {
    uint32_t args[] = { image_type };
@@ -1337,6 +1343,13 @@ spirv_builder_type_sampled_image(struct spirv_builder *b, SpvId image_type)
 }
 
 SpvId
+spirv_builder_type_sampler(struct spirv_builder *b)
+{
+   uint32_t args[1] = {0};
+   return get_type_def(b, SpvOpTypeSampler, args, 0);
+}
+
+SpvId
 spirv_builder_type_pointer(struct spirv_builder *b,
                            SpvStorageClass storage_class, SpvId type)
 {
index db7c64f..10eed69 100644 (file)
@@ -394,6 +394,10 @@ spirv_builder_type_image(struct spirv_builder *b, SpvId sampled_type,
 
 SpvId
 spirv_builder_type_sampled_image(struct spirv_builder *b, SpvId image_type);
+SpvId
+spirv_builder_type_sampler(struct spirv_builder *b);
+SpvId
+spirv_builder_emit_sampled_image(struct spirv_builder *b, SpvId result_type, SpvId image, SpvId sampler);
 
 SpvId
 spirv_builder_type_pointer(struct spirv_builder *b,