- Block names
The extension spec gives examples such as:
resourceheap {
accelerationStructureKHR myAccelerationStructure;
} myResourceHeapView;
The GLSL spec does not allow omitting the block-name of an interface-block. Current glslang behavior agrees with the base spec but diverges from some of the examples given in the extension spec, producing the following output:
ERROR: <source>:5: '' : syntax error, unexpected LEFT_BRACE
Are the examples in the extension spec intended to work as-is?
- Instance names
It seems that resourceheap and samplerheap blocks currently require an instance name. If no instance name is provided, the following error is printed:
ERROR: <source>:5: 'ResourceHeap' : layout(descriptor_heap) decorated block should be explicitly declared with a run-time sized array type.
Is this intended behavior? I think it would stand to reason to allow omitting the instance name, thus making the following two lines more or less equivalent:
layout(descriptor_heap) uniform texture2D textures[];
resourceheap TextureHeap { texture2D textures[]; };
The extension spec gives examples such as:
resourceheap { accelerationStructureKHR myAccelerationStructure; } myResourceHeapView;The GLSL spec does not allow omitting the
block-nameof aninterface-block. Currentglslangbehavior agrees with the base spec but diverges from some of the examples given in the extension spec, producing the following output:Are the examples in the extension spec intended to work as-is?
It seems that
resourceheapandsamplerheapblocks currently require an instance name. If no instance name is provided, the following error is printed:Is this intended behavior? I think it would stand to reason to allow omitting the instance name, thus making the following two lines more or less equivalent: