yum-mirror/slang

Making it easier to work with shaders

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

ArielG-NVLegalization of non-struct when function expects struct, resolves #3840 (#3880)94ced35a5

master
1.6 KiB76 linesraw
1//TEST:SIMPLE(filecheck=CHECK): -target hlsl -stage raygeneration -entry main
2
3RaytracingAccelerationStructure as;
4
5struct testStruct
6{
7    int data;
8}
9
10RWStructuredBuffer<int> outputBuffer1;
11
12void main()
13{
14    RayDesc ray;
15    ray.Origin = float3(0);
16    ray.TMin = 1e-6;
17    ray.Direction = float3(0,0,1);
18    ray.TMax = 100.0f;
19
20    testStruct someInData1;
21    someInData1.data = 5;
22
23    // CHECK: TraceRay(
24    TraceRay(as,
25             1,
26             0xff,
27             0,
28             0,
29             2,
30             ray,
31             someInData1);
32    outputBuffer1[0] = outputBuffer1[0]+someInData1.data;
33
34    // CHECK: TraceMotionRay(
35    TraceMotionRay(as,
36            1,
37            0xff,
38            0,
39            0,
40            2,
41            ray,
42            0.0f,
43            someInData1);
44    outputBuffer1[0] = outputBuffer1[0]+someInData1.data;
45
46    // CHECK: NvTraceRayHitObject(
47    HitObject::TraceRay(as,
48             1,
49             0xff,
50             0,
51             0,
52             2,
53             ray,
54             someInData1);
55    outputBuffer1[0] = outputBuffer1[0]+someInData1.data;
56
57    // CHECK: TraceMotionRay(
58    HitObject::TraceMotionRay(as,
59            1,
60            0xff,
61            0,
62            0,
63            2,
64            ray,
65            0.0f,
66            someInData1);
67    outputBuffer1[0] = outputBuffer1[0]+someInData1.data;
68
69    // CHECK: NvInvokeHitObject(
70    HitObject hitObject_HitOrMiss;
71    HitObject::Invoke(
72        as,
73        hitObject_HitOrMiss,
74        someInData1);
75    outputBuffer1[0] = outputBuffer1[0]+someInData1.data;
76}