Fix storage packing qualifiers missing on "shaderRecordNV" buffers
This commit is contained in:
parent
b1d406e481
commit
8d64d5e776
@ -1,7 +1,7 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : require
|
||||
|
||||
layout(shaderRecordNV) buffer sbt
|
||||
layout(shaderRecordNV, std430) buffer sbt
|
||||
{
|
||||
vec3 direction;
|
||||
float tmax;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#version 460
|
||||
#extension GL_NV_ray_tracing : require
|
||||
|
||||
layout(shaderRecordNV) buffer sbt
|
||||
layout(shaderRecordNV, std430) buffer sbt
|
||||
{
|
||||
vec3 direction;
|
||||
float tmax;
|
||||
|
@ -1457,14 +1457,14 @@ string CompilerGLSL::layout_for_variable(const SPIRVariable &var)
|
||||
|
||||
// Do not emit set = decoration in regular GLSL output, but
|
||||
// we need to preserve it in Vulkan GLSL mode.
|
||||
if (var.storage != StorageClassPushConstant)
|
||||
if (var.storage != StorageClassPushConstant && var.storage != StorageClassShaderRecordBufferNV)
|
||||
{
|
||||
if (flags.get(DecorationDescriptorSet) && options.vulkan_semantics)
|
||||
attr.push_back(join("set = ", dec.set));
|
||||
}
|
||||
|
||||
bool push_constant_block = options.vulkan_semantics && var.storage == StorageClassPushConstant;
|
||||
bool ssbo_block = var.storage == StorageClassStorageBuffer ||
|
||||
bool ssbo_block = var.storage == StorageClassStorageBuffer || var.storage == StorageClassShaderRecordBufferNV ||
|
||||
(var.storage == StorageClassUniform && typeflags.get(DecorationBufferBlock));
|
||||
bool emulated_ubo = var.storage == StorageClassPushConstant && options.emit_push_constant_as_uniform_buffer;
|
||||
bool ubo_block = var.storage == StorageClassUniform && typeflags.get(DecorationBlock);
|
||||
@ -1486,6 +1486,9 @@ string CompilerGLSL::layout_for_variable(const SPIRVariable &var)
|
||||
if (!can_use_buffer_blocks && var.storage == StorageClassUniform)
|
||||
can_use_binding = false;
|
||||
|
||||
if (var.storage == StorageClassShaderRecordBufferNV)
|
||||
can_use_binding = false;
|
||||
|
||||
if (can_use_binding && flags.get(DecorationBinding))
|
||||
attr.push_back(join("binding = ", dec.binding));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user