[Piglit] [PATCH 1/5] util: Add support for separate shader objects to piglit_draw_rect_from_arrays
Ian Romanick
idr at freedesktop.org
Fri Apr 25 20:03:48 PDT 2014
From: Ian Romanick <ian.d.romanick at intel.com>
Previosly it only looked at GL_CURRENT_PROGRAM to determine whether the
active vertex shader used piglit_vertex as an input. With
ARB_separate_shader_objects, it also needs to look at the
GL_VERTEX_SHADER associated with the current
GL_PROGRAM_PIPELINE_BINDING.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
tests/util/piglit-util-gl-common.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/tests/util/piglit-util-gl-common.c b/tests/util/piglit-util-gl-common.c
index 4abbd57..45ca099 100644
--- a/tests/util/piglit-util-gl-common.c
+++ b/tests/util/piglit-util-gl-common.c
@@ -608,6 +608,25 @@ piglit_draw_rect_from_arrays(const void *verts, const void *tex)
glGetIntegerv(GL_CURRENT_PROGRAM, (GLint *) &prog);
+ /* If no there is no program bound to the traditional,
+ * monolithic program binding pipe (via glUseProgram), get the
+ * vertex shader program attached to the current program
+ * pipeline.
+ */
+ if (prog == 0 &&
+ (piglit_get_gl_version() >= 42
+ || piglit_is_extension_supported("GL_ARB_separate_shader_objects"))) {
+ GLuint pipe;
+
+ glGetIntegerv(GL_PROGRAM_PIPELINE_BINDING,
+ (GLint *) &pipe);
+ if (pipe != 0)
+ glGetProgramPipelineiv(pipe,
+ GL_VERTEX_SHADER,
+ (GLint *) &prog);
+ }
+
+
/* If there is a current program and that program has an
* active attribute named piglit_vertex, don't use the fixed
* function inputs.
--
1.8.1.4
More information about the Piglit
mailing list