zink: add some spirv builder functions for barriers
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7486>
This commit is contained in:
parent
95e15f774d
commit
fb1793bf9c
|
@ -1167,6 +1167,25 @@ spirv_builder_emit_var(struct spirv_builder *b, SpvId type,
|
|||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
spirv_builder_emit_memory_barrier(struct spirv_builder *b, SpvScope scope, SpvMemorySemanticsMask semantics)
|
||||
{
|
||||
spirv_buffer_prepare(&b->instructions, b->mem_ctx, 3);
|
||||
spirv_buffer_emit_word(&b->instructions, SpvOpMemoryBarrier | (3 << 16));
|
||||
spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, scope));
|
||||
spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, semantics));
|
||||
}
|
||||
|
||||
void
|
||||
spirv_builder_emit_control_barrier(struct spirv_builder *b, SpvScope scope, SpvScope mem_scope, SpvMemorySemanticsMask semantics)
|
||||
{
|
||||
spirv_buffer_prepare(&b->instructions, b->mem_ctx, 4);
|
||||
spirv_buffer_emit_word(&b->instructions, SpvOpControlBarrier | (4 << 16));
|
||||
spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, scope));
|
||||
spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, mem_scope));
|
||||
spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, semantics));
|
||||
}
|
||||
|
||||
SpvId
|
||||
spirv_builder_import(struct spirv_builder *b, const char *name)
|
||||
{
|
||||
|
|
|
@ -351,6 +351,12 @@ SpvId
|
|||
spirv_builder_emit_var(struct spirv_builder *b, SpvId type,
|
||||
SpvStorageClass storage_class);
|
||||
|
||||
void
|
||||
spirv_builder_emit_memory_barrier(struct spirv_builder *b, SpvScope scope, SpvMemorySemanticsMask semantics);
|
||||
|
||||
void
|
||||
spirv_builder_emit_control_barrier(struct spirv_builder *b, SpvScope scope, SpvScope mem_scope, SpvMemorySemanticsMask semantics);
|
||||
|
||||
SpvId
|
||||
spirv_builder_import(struct spirv_builder *b, const char *name);
|
||||
|
||||
|
|
Loading…
Reference in New Issue