diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/hlsl.meta.slang | 8 | ||||
| -rw-r--r-- | source/slang/slang-emit-glsl.cpp | 5 |
2 files changed, 7 insertions, 6 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 58ddb1401..70b1f2151 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -5457,12 +5457,12 @@ __target_intrinsic(GL_NV_ray_tracing, "transpose(gl_WorldToObjectNV)") __target_intrinsic(GL_EXT_ray_tracing, "transpose(gl_WorldToObjectEXT)") float3x4 WorldToObject3x4(); -__target_intrinsic(GL_NV_ray_tracing, "(gl_ObjectToWorldNV)") -__target_intrinsic(GL_EXT_ray_tracing, "(gl_ObjectToWorld3x4EXT)") +__target_intrinsic(GL_NV_ray_tracing, "transpose(gl_ObjectToWorldNV)") +__target_intrinsic(GL_EXT_ray_tracing, "transpose(gl_ObjectToWorld3x4EXT)") float4x3 ObjectToWorld4x3(); -__target_intrinsic(GL_NV_ray_tracing, "(gl_WorldToObjectNV)") -__target_intrinsic(GL_EXT_ray_tracing, "(gl_WorldToObject3x4EXT)") +__target_intrinsic(GL_NV_ray_tracing, "transpose(gl_WorldToObjectNV)") +__target_intrinsic(GL_EXT_ray_tracing, "transpose(gl_WorldToObject3x4EXT)") float4x3 WorldToObject4x3(); // NOTE! diff --git a/source/slang/slang-emit-glsl.cpp b/source/slang/slang-emit-glsl.cpp index c377b40c6..37c38dd95 100644 --- a/source/slang/slang-emit-glsl.cpp +++ b/source/slang/slang-emit-glsl.cpp @@ -155,13 +155,14 @@ void GLSLSourceEmitter::_emitGLSLStructuredBuffer(IRGlobalParam* varDecl, IRHLSL m_writer->emit("layout("); m_writer->emit(getTargetReq()->getForceGLSLScalarBufferLayout() ? "scalar" : "std430"); - + bool isReadOnly = (as<IRHLSLStructuredBufferType>(structuredBufferType) != nullptr); auto layout = getVarLayout(varDecl); if (layout) { // We can use ShaderResource/DescriptorSlot interchangably here. // This is possible because vk-shift-* - const LayoutResourceKindFlags kinds = LayoutResourceKindFlag::ShaderResource | LayoutResourceKindFlag::DescriptorTableSlot; + const LayoutResourceKindFlags kinds = (isReadOnly ? LayoutResourceKindFlag::ShaderResource : LayoutResourceKindFlag::UnorderedAccess) + | LayoutResourceKindFlag::DescriptorTableSlot; EmitVarChain chain(layout); |
