yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
a697b2c67
master
1//TEST:SIMPLE(filecheck=CHECK_GLSL): -target glsl -stage fragment -entry main -allow-glsl 2//TEST:SIMPLE(filecheck=CHECK_SPV): -target spirv -emit-spirv-directly -stage fragment -entry main -allow-glsl 3//TEST:SIMPLE(filecheck=CHECK_HLSL): -target hlsl -stage fragment -entry main -allow-glsl 4 5#version 450 6// CHECK_SPV-DAG: OpEntryPoint 7 8// CHECK_SPV-DAG: InputAttachmentIndex 0 9// CHECK_SPV-DAG: InputAttachmentIndex 1 10// CHECK_SPV-DAG: InputAttachmentIndex 2 11// CHECK_SPV-DAG: InputAttachmentIndex 3 12// CHECK_SPV-DAG: InputAttachmentIndex 4 13// CHECK_SPV-DAG: InputAttachmentIndex 5 14 15// CHECK_SPV-DAG: OpTypeImage %float SubpassData 2 0 0 2 Unknown 16// CHECK_GLSL-DAG: input_attachment_index = 0 17// CHECK_GLSL-DAG: subpassInput 18// CHECK_HLSL-DAG: vk::input_attachment_index(0) 19// CHECK_HLSL-DAG: SubpassInput<float4> 20layout (input_attachment_index = 0, set = 0, binding = 0) uniform subpassInput subpass; 21 22// CHECK_SPV-DAG: OpTypeImage %float SubpassData 2 0 1 2 Unknown 23// CHECK_GLSL-DAG: input_attachment_index = 1 24// CHECK_GLSL-DAG: subpassInputMS 25// CHECK_HLSL-DAG: vk::input_attachment_index(1) 26// CHECK_HLSL-DAG: SubpassInputMS<float4> 27layout (input_attachment_index = 1, set = 0, binding = 1) uniform subpassInputMS subpassMS; 28 29// CHECK_SPV-DAG: OpTypeImage %uint SubpassData 2 0 0 2 Unknown 30// CHECK_GLSL-DAG: input_attachment_index = 2 31// CHECK_GLSL-DAG: usubpassInput 32// CHECK_HLSL-DAG: vk::input_attachment_index(2) 33// CHECK_HLSL-DAG: SubpassInput<uint4> 34layout (input_attachment_index = 2, set = 0, binding = 2) uniform usubpassInput usubpass; 35 36// CHECK_SPV-DAG: OpTypeImage %uint SubpassData 2 0 1 2 Unknown 37// CHECK_GLSL-DAG: input_attachment_index = 3 38// CHECK_GLSL-DAG: usubpassInputMS 39// CHECK_HLSL-DAG: vk::input_attachment_index(3) 40// CHECK_HLSL-DAG: SubpassInputMS<uint4> 41layout (input_attachment_index = 3, set = 0, binding = 3) uniform usubpassInputMS usubpassMS; 42 43// CHECK_SPV-DAG: OpTypeImage %int SubpassData 2 0 0 2 Unknown 44// CHECK_GLSL-DAG: input_attachment_index = 4 45// CHECK_GLSL-DAG: isubpassInput 46// CHECK_HLSL-DAG: vk::input_attachment_index(4) 47// CHECK_HLSL-DAG: SubpassInput<int4> 48layout (input_attachment_index = 4, set = 0, binding = 4) uniform isubpassInput isubpass; 49 50// CHECK_SPV-DAG: OpTypeImage %int SubpassData 2 0 1 2 Unknown 51// CHECK_GLSL-DAG: input_attachment_index = 5 52// CHECK_GLSL-DAG: isubpassInputMS 53// CHECK_HLSL-DAG: vk::input_attachment_index(5) 54// CHECK_HLSL-DAG: SubpassInputMS<int4> 55layout (input_attachment_index = 5, set = 0, binding = 5) uniform isubpassInputMS isubpassMS; 56 57layout (location = 0) out vec4 outColor; 58 59// CHECK_GLSL-DAG: void main() 60// CHECK_HLSL-DAG: main() 61void main() { 62// CHECK_SPV: OpImageRead 63// CHECK_GLSL: subpassLoad 64// CHECK_HLSL: SubpassLoad 65// CHECK_SPV: OpImageRead 66// CHECK_GLSL: subpassLoad 67// CHECK_HLSL: SubpassLoad 68// CHECK_SPV: OpImageRead 69// CHECK_GLSL: subpassLoad 70// CHECK_HLSL: SubpassLoad 71// CHECK_SPV: OpImageRead 72// CHECK_GLSL: subpassLoad 73// CHECK_HLSL: SubpassLoad 74// CHECK_SPV: OpImageRead 75// CHECK_GLSL: subpassLoad 76// CHECK_HLSL: SubpassLoad 77// CHECK_SPV: OpImageRead 78// CHECK_GLSL: subpassLoad 79// CHECK_HLSL: SubpassLoad 80 outColor = vec4(true 81 && subpassLoad(subpass) == vec4(1) 82 && subpassLoad(subpassMS, 0) == vec4(1) 83 && subpassLoad(isubpass) == ivec4(1) 84 && subpassLoad(isubpassMS, 0) == ivec4(1) 85 && subpassLoad(usubpass) == uvec4(1) 86 && subpassLoad(usubpassMS, 0) == uvec4(1) 87 ); 88}