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,
