yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
ebe8ddefc
master
1//TEST:SIMPLE(filecheck=CHECK):-entry gsMain -stage geometry -target spirv -emit-spirv-directly 2 3struct GsOut 4{ 5 float2 uv : TexCoord; 6 float2 texelPos : TexelPosition; 7 float4 posH : SV_Position; 8}; 9 10// CHECK-DAG: OpEntryPoint Geometry %gsMain "main" %[[OUT1:[A-Za-z0-9_]+]] %[[OUT2:[A-Za-z0-9_]+]] %gl_Position 11// CHECK-DAG: %[[OUT1]] = OpVariable %_ptr_Output_v2float Output 12// CHECK-DAG: %[[OUT2]] = OpVariable %_ptr_Output_v2float Output 13// CHECK-DAG: %gl_Position = OpVariable %_ptr_Output_v4float Output 14 15// CHECK-DAG: OpExecutionMode %gsMain Invocations 1 16// CHECK-DAG: OpExecutionMode %gsMain OutputTriangleStrip 17// CHECK-DAG: OpExecutionMode %gsMain Triangles 18// CHECK-DAG: OpExecutionMode %gsMain OutputVertices 15 19 20// CHECK: OpStore %gl_Position 21// CHECK: OpEmitVertex 22// CHECK: OpEndPrimitive 23 24[maxvertexcount(15)] 25void gsMain(uint triIdx : SV_PrimitiveID, inout TriangleStream<GsOut> outStream) 26{ 27 for (int j = 0; j < 5; j++) 28 { 29 for (int i = 0; i < 3; i++) 30 { 31 GsOut v; 32 v.uv = float2(j,i); 33 v.texelPos = float2(0,0); 34 v.posH = float4(j, i, 1, 1); 35 outStream.Append(v); 36 } 37 outStream.RestartStrip(); 38 } 39}