OSDN Git Service

mesa: don't compile integer clear shaders for unsupported APIs
authorOliver McFadden <oliver.mcfadden@linux.intel.com>
Sat, 26 May 2012 07:13:07 +0000 (10:13 +0300)
committerOliver McFadden <oliver.mcfadden@linux.intel.com>
Wed, 30 May 2012 12:20:34 +0000 (15:20 +0300)
Discovered while running the Khronos conformance test suite and
receiving "implementation error: meta program compile failed."

This bug was recently introduced by the i965 clear patch set and would
only be detected while using the ES2 API and only on gen6+ hardware.

Signed-off-by: Oliver McFadden <oliver.mcfadden@linux.intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/common/meta.c

index 95336fc..a20e419 100644 (file)
@@ -1793,7 +1793,7 @@ meta_glsl_clear_init(struct gl_context *ctx, struct clear_state *clear)
    clear->ColorLocation = _mesa_GetUniformLocationARB(clear->ShaderProg,
                                                      "color");
 
-   if (ctx->Const.GLSLVersion >= 130) {
+   if (ctx->API == API_OPENGL && ctx->Const.GLSLVersion >= 130) {
       vs = compile_shader_with_debug(ctx, GL_VERTEX_SHADER, vs_int_source);
       fs = compile_shader_with_debug(ctx, GL_FRAGMENT_SHADER, fs_int_source);