mesa: add some minor fixes for geometry shaders
[mesa.git] / src / mesa / main / shaderapi.c
index 1e237a95da1fa3d30e039a8bdabd30a4ead9fc3d..b58e30de9c4c14f3cd24c396c5507f50c6634dfa 100644 (file)
@@ -925,6 +925,8 @@ print_shader_info(const struct gl_shader_program *shProg)
       printf("  vert prog %u\n", shProg->VertexProgram->Base.Id);
    if (shProg->FragmentProgram)
       printf("  frag prog %u\n", shProg->FragmentProgram->Base.Id);
+   if (shProg->GeometryProgram)
+      printf("  geom prog %u\n", shProg->GeometryProgram->Base.Id);
 }
 
 
@@ -1075,6 +1077,7 @@ validate_shader_program(const struct gl_shader_program *shProg,
                         char *errMsg)
 {
    const struct gl_vertex_program *vp = shProg->VertexProgram;
+   const struct gl_geometry_program *gp = shProg->GeometryProgram;
    const struct gl_fragment_program *fp = shProg->FragmentProgram;
 
    if (!shProg->LinkStatus) {
@@ -1104,6 +1107,9 @@ validate_shader_program(const struct gl_shader_program *shProg,
    if (vp && !validate_samplers(&vp->Base, errMsg)) {
       return GL_FALSE;
    }
+   if (gp && !validate_samplers(&gp->Base, errMsg)) {
+      return GL_FALSE;
+   }
    if (fp && !validate_samplers(&fp->Base, errMsg)) {
       return GL_FALSE;
    }
@@ -1790,6 +1796,8 @@ _mesa_UseShaderProgramEXT(GLenum type, GLuint program)
    GET_CURRENT_CONTEXT(ctx);
    struct gl_shader_program *shProg = NULL;
 
+   ASSERT_OUTSIDE_BEGIN_END(ctx);
+
    if (!validate_shader_target(ctx, type)) {
       _mesa_error(ctx, GL_INVALID_ENUM, "glUseShaderProgramEXT(type)");
       return;