yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
64a43b17a
master
1//TEST:SIMPLE(filecheck=DXIL):-target dxil-assembly -entry main -stage closesthit -profile sm_6_5 -DNV_SHADER_EXTN_SLOT=u0 2 3// DXIL: main 4 5// DXIL call void @dx.op.rawBufferStore.i32(i32 140, %dx.types.Handle %80, i32 %79, i32 0, i32 93, i32 undef, i32 undef, i32 undef, i8 1, i32 4) ; RawBufferStore(uav,index,elementOffset,value0,value1,value2,value3,mask,alignment) 6 7[[vk::binding(0)]] 8uniform RaytracingAccelerationStructure accelStruct : register(t0); 9 10struct RayPayload 11{ 12 float RayHitT; 13}; 14 15struct CallableParams 16{ 17 float value; 18}; 19 20#define T_MIN 0.01f 21#define T_MAX 1e4f 22 23[shader("closesthit")] 24void main( inout RayPayload payload, in BuiltInTriangleIntersectionAttributes attribs ) 25{ 26 float2 dir = (DispatchRaysIndex().xy / DispatchRaysDimensions().xy) * 2.0f - 1.0f; 27 float aspectRatio = DispatchRaysDimensions().x / DispatchRaysDimensions().y; 28 29 RayDesc rayDesc; 30 rayDesc.Origin = float3(0.0f, 0.0f, 0.0f); 31 rayDesc.Direction = normalize(float3(dir.x * aspectRatio, -dir.y, 1)); ; 32 rayDesc.TMin = T_MIN; 33 rayDesc.TMax = T_MAX; 34 35 //RayPayload payload; 36 payload.RayHitT = T_MAX; 37 38 val += GetClusterID(); 39 40 payload.RayHitT = val; 41}