yum-mirror/slang

Making it easier to work with shaders

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

Yong HeDirect SPIRV: Rasterization pipeline tests. (#3216)73292d9f3

master
885 B30 linesraw
1// fragment-shader-interlock.slang
2
3// Test that explicit use of fragment-shader interlock (FSI)
4// operations is supported by Slang
5
6//TEST:SIMPLE(filecheck=CHECK):-target spirv -entry main -stage fragment
7//TEST:SIMPLE(filecheck=CHECK):-emit-spirv-directly -target spirv -entry main -stage fragment
8
9
10// CHECK: OpCapability FragmentShaderPixelInterlockEXT
11// CHECK: OpExtension "SPV_EXT_fragment_shader_interlock"
12// CHECK: OpEntryPoint Fragment %main "main"
13
14// CHECK-DAG: OpExecutionMode %main OriginUpperLeft
15
16// CHECK-DAG: OpExecutionMode %main PixelInterlockOrderedEXT
17
18[shader("fragment")]
19void main(
20    float4 coords : COORDS,
21    uniform RasterizerOrderedTexture2D<float4> texture,
22    out float4 result : SV_Target)
23{
24    beginInvocationInterlock();
25
26    result = texture[uint2(coords.xy)];
27    texture[uint2(coords.xy)] = result + coords;
28
29    endInvocationInterlock();
30}