yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
e043428c5
master
1//TEST:SIMPLE(filecheck=HLSL):-target hlsl -entry hullMain -stage hull -allow-glsl 2//TEST:SIMPLE(filecheck=GLSL):-target glsl -entry hullMain -stage hull -allow-glsl 3//TEST:SIMPLE(filecheck=SPIRV):-target spirv -entry hullMain -stage hull -allow-glsl 4 5//HLSL: hullMain 6 7//GLSL-DAG: location = 0 8//GLSL-DAG: location = 1 9//GLSL-DAG: location = 2 10 11//SPIRV-DAG: OpDecorate {{.*}} Location 0 12//SPIRV-DAG: OpDecorate {{.*}} Location 1 13//SPIRV-DAG: OpDecorate {{.*}} Location 2 14 15struct HsOut 16{ 17 float2 pos; 18 float2 hm; 19}; 20 21struct HscOut 22{ 23 float EdgeTessFactor[4] : SV_TessFactor; 24 float InsideTessFactor[2] : SV_InsideTessFactor; 25 uint instanceId; 26}; 27 28[domain("quad")] 29[partitioning("integer")] 30[outputtopology("triangle_ccw")] 31[outputcontrolpoints(4)] 32[patchconstantfunc("constants")] 33HsOut hullMain() 34{ 35 HsOut o; 36 o.pos = 1; 37 o.hm = 2; 38 return o; 39} 40 41HscOut constants() 42{ 43 HscOut o; 44 o.instanceId = 123; 45 o.EdgeTessFactor[0] = 1; 46 o.EdgeTessFactor[1] = 2; 47 o.EdgeTessFactor[2] = 3; 48 o.EdgeTessFactor[3] = 4; 49 o.InsideTessFactor[0] = 0.5; 50 o.InsideTessFactor[1] = 0.5; 51 return o; 52}