yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
73292d9f3
master
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}