yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
e0de98e9a
master
1//TEST:SIMPLE(filecheck=CHECK_GLSL): -stage compute -entry computeMain -allow-glsl -target glsl 2//TEST:SIMPLE(filecheck=CHECK_SPV): -stage compute -entry computeMain -allow-glsl -target spirv -emit-spirv-directly 3 4// CHECK_SPV: OpEntryPoint 5 6//CHECK_GLSL: volatile 7//CHECK_SPV: OpDecorate %{{.*}} Volatile 8volatile buffer MyBlockName1 9{ 10 uint data1; 11} inputBuffer1; 12 13//CHECK_GLSL: restrict 14//CHECK_SPV: OpDecorate %{{.*}} Restrict 15restrict buffer MyBlockName2 16{ 17 uint data1; 18} inputBuffer2; 19 20//CHECK_GLSL: {{(writeonly|volatile)}} {{(writeonly|volatile)}} 21//CHECK_SPV: OpDecorate %{{.*}} {{(NonReadable|Volatile)}} 22//CHECK_SPV: OpDecorate %{{.*}} {{(NonReadable|Volatile)}} 23writeonly volatile buffer MyBlockName3 24{ 25 uint data1; 26} inputBuffer3; 27 28//CHECK_GLSL: writeonly 29//CHECK_SPV: OpDecorate %{{.*}} NonReadable 30writeonly buffer MyBlockName4 31{ 32 uint data1; 33} inputBuffer4; 34 35//CHECK_GLSL: readonly 36//CHECK_SPV: OpDecorate %{{.*}} NonWritable 37readonly buffer MyBlockName5 38{ 39 uint data1; 40} inputBuffer5; 41 42//CHECK_GLSL: coherent 43//CHECK_SPV: OpDecorate %{{.*}} Coherent 44coherent buffer MyBlockName6 45{ 46 uint data1; 47} inputBuffer6; 48 49// CHECK_GLSL: main 50layout(local_size_x = 1) in; 51void computeMain() 52{ 53 inputBuffer1.data1 = 1; 54 inputBuffer2.data1 = 1; 55 inputBuffer3.data1 = 1; 56 inputBuffer4.data1 = 1; 57 int v = inputBuffer5.data1; 58 // ensure code is not optimized out 59 inputBuffer6.data1 = v; 60}