yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
edc85fc46
master
1//TEST:SIMPLE(filecheck=SPIRV): -stage compute -entry computeMain -target spirv -emit-spirv-directly -fspv-reflect 2 3// Test ability to directly output SPIR-V reflection info on parameters. 4 5Texture2D mTexture : MY_HLSL_SEMANTIC; 6struct MyElement 7{ 8 float x; 9} 10StructuredBuffer<MyElement> myBuffer : MY_HLSL_SEMANTIC1; 11AppendStructuredBuffer<float> myAppendBuffer : MY_HLSL_SEMANTIC2; 12ByteAddressBuffer bw; 13[numthreads(8, 8, 1)] 14void computeMain() 15{ 16 float4 color = mTexture.Load(int3(0, 0, 0)); 17 myAppendBuffer.Append(color.x + myBuffer[0].x + bw.Load(0)); 18} 19 20// SPIRV-DAG: OpExtension "SPV_GOOGLE_user_type" 21 22// SPIRV-DAG: OpDecorateString %mTexture UserTypeGOOGLE "texture2d" 23// SPIRV-DAG: OpDecorateString %mTexture UserSemantic "MY_HLSL_SEMANTIC" 24 25// SPIRV-DAG: OpDecorateString %myBuffer UserTypeGOOGLE "structuredbuffer:<MyElement>" 26// SPIRV-DAG: OpDecorateString %myBuffer UserSemantic "MY_HLSL_SEMANTIC1" 27 28// SPIRV-DAG: OpDecorateString %myAppendBuffer_counter UserTypeGOOGLE "appendstructuredbuffer:<float>" 29// SPIRV-DAG: OpDecorateString %myAppendBuffer_counter UserSemantic "MY_HLSL_SEMANTIC2" 30 31// SPIRV-DAG: OpDecorateString %myAppendBuffer_elements UserTypeGOOGLE "appendstructuredbuffer:<float>" 32// SPIRV-DAG: OpDecorateString %myAppendBuffer_elements UserSemantic "MY_HLSL_SEMANTIC2" 33// SPIRV-DAG: OpDecorateId %myAppendBuffer_elements CounterBuffer %myAppendBuffer_counter 34 35// SPIRV-DAG: OpDecorateString %bw UserTypeGOOGLE "byteaddressbuffer"