summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/nv-extensions/multi-view-per-view-attributes.slang17
-rw-r--r--tests/nv-extensions/multi-view-per-view-attributes.slang.glsl44
2 files changed, 61 insertions, 0 deletions
diff --git a/tests/nv-extensions/multi-view-per-view-attributes.slang b/tests/nv-extensions/multi-view-per-view-attributes.slang
new file mode 100644
index 000000000..ca398ba16
--- /dev/null
+++ b/tests/nv-extensions/multi-view-per-view-attributes.slang
@@ -0,0 +1,17 @@
+//TEST:CROSS_COMPILE: -profile vs_5_0 -entry main -target spirv-assembly
+
+struct VS_OUT
+{
+ float4 left : SV_Position;
+ float4 right : NV_X_RIGHT;
+ uint4 mask : NV_VIEWPORT_MASK;
+};
+
+VS_OUT main(float4 ll, float4 rr)
+{
+ VS_OUT res;
+ res.left = ll;
+ res.right = rr;
+ res.mask = 0x1;
+ return res;
+} \ No newline at end of file
diff --git a/tests/nv-extensions/multi-view-per-view-attributes.slang.glsl b/tests/nv-extensions/multi-view-per-view-attributes.slang.glsl
new file mode 100644
index 000000000..4e2609834
--- /dev/null
+++ b/tests/nv-extensions/multi-view-per-view-attributes.slang.glsl
@@ -0,0 +1,44 @@
+#version 450
+//TEST_IGNORE_FILE:
+
+#extension GL_NVX_multiview_per_view_attributes : require
+
+struct VS_OUT
+{
+ vec4 left;
+ vec4 right;
+ uvec4 mask;
+};
+
+VS_OUT main_(vec4 ll, vec4 rr)
+{
+ VS_OUT res;
+ res.left = ll;
+ res.right = rr;
+ res.mask = uvec4(0x1);
+ return res;
+}
+
+layout(location = 0)
+in vec4 SLANG_in_ll;
+
+layout(location = 1)
+in vec4 SLANG_in_rr;
+
+void main()
+{
+ vec4 ll = SLANG_in_ll;
+ vec4 rr = SLANG_in_rr;
+
+ VS_OUT main_result = main_(ll, rr);
+
+ uvec4 SLANG_tmp_0 = main_result.mask;
+
+ gl_Position = main_result.left;
+ gl_PositionPerViewNV[1] = main_result.right;
+ gl_ViewportMaskPerViewNV[0] = int(SLANG_tmp_0.x);
+ gl_ViewportMaskPerViewNV[1] = int(SLANG_tmp_0.y);
+ gl_ViewportMaskPerViewNV[2] = int(SLANG_tmp_0.z);
+ gl_ViewportMaskPerViewNV[3] = int(SLANG_tmp_0.w);
+ gl_PositionPerViewNV[0] = gl_Position;
+}