diff options
| author | Yong He <yonghe@outlook.com> | 2024-01-24 15:36:49 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-24 15:36:49 -0800 |
| commit | e7b6de334f320429462a0257e2191ccf3cbc9a0d (patch) | |
| tree | 7e2f6802a2f6fa5217903948efbd994b51e103b7 /source/slang/slang-emit-glsl.cpp | |
| parent | dd57306d951dbcaf6471659fcd1d2c37738f36d0 (diff) | |
[SPIRV] Support `globallycoherent` and `[vk::index()]`. (#3488)
* [SPIRV] Support `globallycoherent` modifier.
* Fix.
* Disable executable cooperative vector tests.
* Update expected failure.
* [SPIRV] Emit varying output index decoration.
* Add test.
* Update tests.
* Fix test.
* Emit `SpvExecutionModeEarlyFragmentTests`.
* Lower `StructuredBuffer<bool>`.
* Support globallycoherent on ByteAddressBuffer.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-emit-glsl.cpp')
| -rw-r--r-- | source/slang/slang-emit-glsl.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/source/slang/slang-emit-glsl.cpp b/source/slang/slang-emit-glsl.cpp index bff82acf3..0fc0c855a 100644 --- a/source/slang/slang-emit-glsl.cpp +++ b/source/slang/slang-emit-glsl.cpp @@ -179,7 +179,7 @@ void GLSLSourceEmitter::_emitGLSLStructuredBuffer(IRGlobalParam* varDecl, IRHLSL m_writer->emit(space); } } - + m_writer->emit(") "); /* @@ -194,7 +194,10 @@ void GLSLSourceEmitter::_emitGLSLStructuredBuffer(IRGlobalParam* varDecl, IRHLSL HLSLAppendStructuredBufferType - Write HLSLConsumeStructuredBufferType - TODO (JS): Its possible that this can be readonly, but we currently don't support on GLSL */ - + if (varDecl->findDecoration<IRGloballyCoherentDecoration>()) + { + m_writer->emit("coherent "); + } if (as<IRHLSLStructuredBufferType>(structuredBufferType)) { m_writer->emit("readonly "); @@ -264,9 +267,13 @@ void GLSLSourceEmitter::_emitGLSLByteAddressBuffer(IRGlobalParam* varDecl, IRByt m_writer->emit(space); } } - m_writer->emit(") "); + if (varDecl->findDecoration<IRGloballyCoherentDecoration>()) + { + m_writer->emit("coherent "); + } + /* If the output type is a buffer, and we can determine it is only readonly we can prefix before buffer with 'readonly' |
