[Piglit] [PATCH] vulkan/shader_draw_parameters: Add a test for gl_BaseVertex
Neil Roberts
nroberts at igalia.com
Thu Nov 8 12:29:31 UTC 2018
gl_BaseVertex has slightly different semantics under Vulkan and GL so
this is worth testing.
---
.../base-vertex.vk_shader_test | 66 +++++++++++++++++++
1 file changed, 66 insertions(+)
create mode 100644 tests/vulkan/shader_draw_parameters/base-vertex.vk_shader_test
diff --git a/tests/vulkan/shader_draw_parameters/base-vertex.vk_shader_test b/tests/vulkan/shader_draw_parameters/base-vertex.vk_shader_test
new file mode 100644
index 000000000..c4c8c3e32
--- /dev/null
+++ b/tests/vulkan/shader_draw_parameters/base-vertex.vk_shader_test
@@ -0,0 +1,66 @@
+# Tests that gl_BaseVertex is firstVertex for non-indexed calls or
+# vertexOffset for indexed ones.
+
+[require]
+framebuffer R32G32B32A32_SFLOAT
+VK_KHR_shader_draw_parameters
+
+[vertex shader]
+#version 450
+#extension GL_ARB_shader_draw_parameters: require
+
+layout(location = 0) in vec4 piglit_vertex;
+layout(location = 0) out vec4 color;
+
+layout(std140, push_constant) uniform block {
+ uint expected_base_vertex;
+};
+
+void
+main()
+{
+ if (gl_BaseVertexARB == expected_base_vertex)
+ color = vec4(0.0, 1.0, 0.0, 1.0);
+ else
+ color = vec4(1.0, gl_BaseVertexARB / 255.0, 0.0, 1.0);
+
+ gl_Position = piglit_vertex;
+}
+
+[fragment shader]
+#version 450
+
+layout(location = 0) in vec4 color_in;
+layout(location = 0) out vec4 color_out;
+
+void
+main()
+{
+ color_out = color_in;
+}
+
+[indices]
+0 1 2 3
+
+[vertex data]
+0/R32G32_SFLOAT
+-1 -1
+-1 -1
+-1 -1
+-1 -1
+-1 -1
+1 -1
+-1 1
+1 1
+
+[test]
+clear color 0.8 0.0 0.0 0.0
+clear
+
+uniform uint 0 4
+
+draw arrays GL_TRIANGLE_STRIP 4 4
+probe all rgba 0.0 1.0 0.0 1.0
+
+draw arrays indexed GL_TRIANGLE_STRIP 4 4
+probe all rgba 0.0 1.0 0.0 1.0
--
2.17.1
More information about the Piglit
mailing list