yum-mirror/slang

Making it easier to work with shaders

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

Harsh Aggarwal (NVIDIA)cluster acceleration structure optix 6431 (#7028)64a43b17a

master
1.2 KiB41 linesraw
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}