diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/modules/environment.slang | 29 | ||||
| -rw-r--r-- | tests/modules/hit.slang | 24 |
2 files changed, 53 insertions, 0 deletions
diff --git a/tests/modules/environment.slang b/tests/modules/environment.slang new file mode 100644 index 000000000..915e04c54 --- /dev/null +++ b/tests/modules/environment.slang @@ -0,0 +1,29 @@ +module environment; + +uint lcg(inout uint prev) +{ + const uint LCG_A = 1664525u; + const uint LCG_C = 1013904223u; + prev = (LCG_A * prev + LCG_C); + return prev & 0x00FFFFFF; +} + +public float rnd(inout uint prev) +{ + return ((float) lcg(prev) / (float) 0x01000000); +} + +public struct Environment_sample_data +{ + uint alias; + float q; +}; + +public float3 environment_sample(StructuredBuffer <Environment_sample_data> sample_buffer, inout int seed) +{ + float3 xi; + xi.x = rnd(seed); + xi.y = rnd(seed); + xi.z = rnd(seed); + return xi.z; +} diff --git a/tests/modules/hit.slang b/tests/modules/hit.slang new file mode 100644 index 000000000..d175275b4 --- /dev/null +++ b/tests/modules/hit.slang @@ -0,0 +1,24 @@ +//TEST:COMPILE: tests/modules/environment.slang -o tests/modules/environment.slang-module +//TEST:COMPILE: tests/modules/hit.slang -stage closesthit -entry closesthit -target dxil -o monolithic.dxil + +import environment; + +StructuredBuffer <Environment_sample_data> environment_sample_buffer; + +float3 sample_lights(inout uint seed) +{ + return environment_sample(environment_sample_buffer, seed); +} + +struct RadianceHitInfo +{ + float3 contribution; +}; + +struct Attributes +{ + float2 bary; +}; + +[shader("closesthit")] +void closesthit(inout RadianceHitInfo payload, Attributes attrib) {} |
