Mesa (master): zink: add spirv builder util functions for emitting xfb decorations
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jun 17 22:01:36 UTC 2020
Module: Mesa
Branch: master
Commit: 14dbf51d7fdf2e1e601039f9fea8be9c28c58e1f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=14dbf51d7fdf2e1e601039f9fea8be9c28c58e1f
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Mon Jun 1 14:55:38 2020 -0400
zink: add spirv builder util functions for emitting xfb decorations
based on patches originally written by Dave Airlie <airlied at redhat.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5163>
---
.../drivers/zink/nir_to_spirv/spirv_builder.c | 24 ++++++++++++++++++++++
.../drivers/zink/nir_to_spirv/spirv_builder.h | 12 +++++++++++
2 files changed, 36 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 bc5d08091b1..4f4b790cddc 100644
--- a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c
+++ b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c
@@ -224,6 +224,30 @@ spirv_builder_emit_array_stride(struct spirv_builder *b, SpvId target,
emit_decoration(b, target, SpvDecorationArrayStride, args, ARRAY_SIZE(args));
}
+void
+spirv_builder_emit_offset(struct spirv_builder *b, SpvId target,
+ uint32_t offset)
+{
+ uint32_t args[] = { offset };
+ emit_decoration(b, target, SpvDecorationOffset, args, ARRAY_SIZE(args));
+}
+
+void
+spirv_builder_emit_xfb_buffer(struct spirv_builder *b, SpvId target,
+ uint32_t buffer)
+{
+ uint32_t args[] = { buffer };
+ emit_decoration(b, target, SpvDecorationXfbBuffer, args, ARRAY_SIZE(args));
+}
+
+void
+spirv_builder_emit_xfb_stride(struct spirv_builder *b, SpvId target,
+ uint32_t stride)
+{
+ uint32_t args[] = { stride };
+ emit_decoration(b, target, SpvDecorationXfbStride, args, ARRAY_SIZE(args));
+}
+
void
spirv_builder_emit_index(struct spirv_builder *b, SpvId target, int index)
{
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 9d29699127c..d13426a637a 100644
--- a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h
+++ b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h
@@ -108,6 +108,18 @@ void
spirv_builder_emit_array_stride(struct spirv_builder *b, SpvId target,
uint32_t stride);
+void
+spirv_builder_emit_offset(struct spirv_builder *b, SpvId target,
+ uint32_t offset);
+
+void
+spirv_builder_emit_xfb_buffer(struct spirv_builder *b, SpvId target,
+ uint32_t buffer);
+
+void
+spirv_builder_emit_xfb_stride(struct spirv_builder *b, SpvId target,
+ uint32_t stride);
+
void
spirv_builder_emit_member_offset(struct spirv_builder *b, SpvId target,
uint32_t member, uint32_t offset);
More information about the mesa-commit
mailing list