i965: Disable emitting if () statements on gen6 until we really fix them.

This commit is contained in:
Eric Anholt 2010-10-07 09:13:09 -07:00
parent 1ae5cc2e67
commit 4d202da7a4
2 changed files with 7 additions and 0 deletions

View file

@ -122,6 +122,9 @@ GLboolean brwCreateContext( int api,
(i == MESA_SHADER_FRAGMENT);
ctx->ShaderCompilerOptions[i].EmitNoIndirectTemp =
(i == MESA_SHADER_FRAGMENT);
if (intel->gen == 6)
ctx->ShaderCompilerOptions[i].EmitNoIfs = GL_TRUE;
}
ctx->Const.VertexProgram.MaxNativeInstructions = (16 * 1024);

View file

@ -118,6 +118,7 @@ brw_compile_shader(GLcontext *ctx, struct gl_shader *shader)
GLboolean
brw_link_shader(GLcontext *ctx, struct gl_shader_program *prog)
{
struct intel_context *intel = intel_context(ctx);
if (using_new_fs == -1)
using_new_fs = getenv("INTEL_NEW_FS") != NULL;
@ -162,6 +163,9 @@ brw_link_shader(GLcontext *ctx, struct gl_shader_program *prog)
GL_TRUE, /* temp */
GL_TRUE /* uniform */
) || progress;
if (intel->gen == 6) {
progress = do_if_to_cond_assign(shader->ir) || progress;
}
} while (progress);
validate_ir_tree(shader->ir);