summaryrefslogtreecommitdiffstats
path: root/tests/modules/environment.slang
diff options
context:
space:
mode:
Diffstat (limited to 'tests/modules/environment.slang')
-rw-r--r--tests/modules/environment.slang29
1 files changed, 29 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;
+}