yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
37b5bd72
main
1#version 450 2#extension GL_EXT_buffer_reference : require 3 4struct Payload { uvec2 values; }; 5 6layout(buffer_reference, std430) coherent volatile buffer BlockQualifiedRef { Payload data[]; }; 7 8layout(buffer_reference, std430) buffer MemberQualifiedRef { 9 coherent uint coherentValue; 10 volatile uint volatileValue; 11}; 12 13layout(push_constant) uniform Push { BlockQualifiedRef ref; MemberQualifiedRef members; } pc; 14layout(binding = 0) buffer Result { uvec2 value; } result; 15 16// Check that per-load/store memory semantics are generated when qualifiers 17// are used on whole buffer reference blocks as well as individual members 18 19void main() 20{ 21 result.value = pc.ref.data[0].values; 22 pc.ref.data[1].values = result.value; 23 result.value.x = pc.members.coherentValue + pc.members.volatileValue; 24 pc.members.coherentValue = 5; 25 pc.members.volatileValue = 6; 26}