Module: Mesa
Branch: main
Commit: 6ef8470bb429c1c6d3ee87cccb68754e7aa572c2
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6ef8470bb429c1c6d3ee87cccb68754e7aa572c2

Author: Mike Blumenkrantz <[email protected]>
Date:   Tue Oct 18 11:36:10 2022 -0400

zink: add some spirv builder handling for sampled image ops

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19327>

---

 src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c | 13 +++++++++++++
 src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h |  4 ++++
 2 files changed, 17 insertions(+)

diff --git a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c 
b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c
index cd9cae6d679..0e74decceb9 100644
--- a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c
+++ b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c
@@ -1329,6 +1329,12 @@ spirv_builder_type_image(struct spirv_builder *b, SpvId 
sampled_type,
    return get_type_def(b, SpvOpTypeImage, args, ARRAY_SIZE(args));
 }
 
+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)
 {
@@ -1336,6 +1342,13 @@ spirv_builder_type_sampled_image(struct spirv_builder 
*b, SpvId image_type)
    return get_type_def(b, SpvOpTypeSampledImage, args, ARRAY_SIZE(args));
 }
 
+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)
diff --git a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h 
b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h
index db7c64f17d0..10eed69a80a 100644
--- a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h
+++ b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h
@@ -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,

Reply via email to