yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

ArielG-NVImplement 8.14-8.19 of OpenGL-GLSL specificationa697b2c67

master
3.4 KiB88 linesraw
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}