[Piglit] [PATCH] arb_xfb3: Fix draw_using_invalid_stream_index test

Chris Forbes chrisf at ijw.co.nz
Sat Oct 18 01:11:30 PDT 2014


- The GS declared no input layout so failed to compile. Apparently
  nVIDIA's implementation is sloppy about this.
- The shaders were compiled and then never actually used.
- Vertex data was similarly uploaded, and then never actually used.

Just trim this down to the bare minimum required to hit the stream index
out of range error, assuming an implementation which emits this error
before checking if EndTransformFeedback has ever been called with the
xfb object bound. This matches the error order in the spec.

Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
---
 .../draw_using_invalid_stream_index.c              | 30 ++--------------------
 1 file changed, 2 insertions(+), 28 deletions(-)

diff --git a/tests/spec/arb_transform_feedback3/draw_using_invalid_stream_index.c b/tests/spec/arb_transform_feedback3/draw_using_invalid_stream_index.c
index 89f1e78..b159d1a 100644
--- a/tests/spec/arb_transform_feedback3/draw_using_invalid_stream_index.c
+++ b/tests/spec/arb_transform_feedback3/draw_using_invalid_stream_index.c
@@ -38,26 +38,10 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
 
 PIGLIT_GL_TEST_CONFIG_END
 
-static const char gs_text[] =
-        "#version 150\n"
-        "#extension GL_ARB_gpu_shader5 : enable\n"
-        "layout(points, max_vertices = 1, stream = 0) out;\n"
-        "\n"
-        "void main() {\n"
-        "    gl_Position = gl_in[0].gl_Position;\n"
-        "    EmitStreamVertex(0);\n"
-        "}\n";
-
 void
 piglit_init(int argc, char **argv)
 {
-        static const float verts[] = {
-                -1.0f, -1.0f,
-                 1.0f, -1.0f,
-                -1.0f,  1.0f,
-                 1.0f,  1.0f,
-        };
-	GLuint vao, buf, tfb;
+	GLuint vao, tfb;
 	GLint max_stream;
 	bool pass;
 
@@ -70,24 +54,14 @@ piglit_init(int argc, char **argv)
 		piglit_report_result(PIGLIT_FAIL);
 	}
 
-	piglit_build_simple_program_multiple_shaders(
-			GL_VERTEX_SHADER, vs_pass_thru_text,
-			GL_GEOMETRY_SHADER, gs_text, 0);
-
 	/* Test is run under desktop OpenGL 3.2 -> use of VAOs is required */
 	glGenVertexArrays(1, &vao);
 	glBindVertexArray(vao);
 
-        glGenBuffers(1, &buf);
-        glBindBuffer(GL_ARRAY_BUFFER, buf);
-        glBufferData(GL_ARRAY_BUFFER, sizeof(verts), verts, GL_STATIC_DRAW);
-        glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, NULL);
-        glEnableVertexAttribArray(0);
-
 	glGenTransformFeedbacks(1, &tfb);
 	glBindTransformFeedback(GL_TRANSFORM_FEEDBACK, tfb);
 
-	glDrawTransformFeedbackStream(GL_TRIANGLE_STRIP, tfb, max_stream);
+	glDrawTransformFeedbackStream(GL_POINTS, tfb, max_stream);
 
 	pass = piglit_check_gl_error(GL_INVALID_VALUE);
 
-- 
2.1.2



More information about the Piglit mailing list