Mesa (master): spirv: Handle PhysicalStorageBuffer in memory barriers
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jan 14 23:05:01 UTC 2020
Module: Mesa
Branch: master
Commit: d8440a3d2f4fb8a0b816c8e0884738de9797f09d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d8440a3d2f4fb8a0b816c8e0884738de9797f09d
Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date: Wed Jan 8 13:30:43 2020 -0800
spirv: Handle PhysicalStorageBuffer in memory barriers
PhysicalStorageBuffer is lowered to nir_var_mem_global, and
SPIR-V 1.5rev1 in section "3.25. Memory Semantics <id>" says
UniformMemory
Apply the memory-ordering constraints to StorageBuffer,
PhysicalStorageBuffer, or Uniform Storage Class memory.
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3322>
---
src/compiler/spirv/spirv_to_nir.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index 9337482e30f..dd53cee3be6 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -2101,8 +2101,12 @@ vtn_emit_scoped_memory_barrier(struct vtn_builder *b, SpvScope scope,
nir_variable_mode modes = 0;
if (semantics & (SpvMemorySemanticsUniformMemoryMask |
- SpvMemorySemanticsImageMemoryMask))
- modes |= nir_var_mem_ubo | nir_var_mem_ssbo | nir_var_uniform;
+ SpvMemorySemanticsImageMemoryMask)) {
+ modes |= nir_var_uniform |
+ nir_var_mem_ubo |
+ nir_var_mem_ssbo |
+ nir_var_mem_global;
+ }
if (semantics & SpvMemorySemanticsWorkgroupMemoryMask)
modes |= nir_var_mem_shared;
if (semantics & SpvMemorySemanticsOutputMemoryMask) {
More information about the mesa-commit
mailing list