diff options
author | Eric Anholt <eric@anholt.net> | 2010-10-07 09:13:09 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-10-07 16:41:13 -0700 |
commit | 4d202da7a4951eb534f77014238e7cdca9f781e9 (patch) | |
tree | 9a7afe95a078f017a663177c9d9386b0be2ce0f7 /src/mesa/drivers | |
parent | 1ae5cc2e67a02b3105b5539b5dbc6a69cbb57889 (diff) |
i965: Disable emitting if () statements on gen6 until we really fix them.
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_context.c | 3 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 4b44e2adec..fa82dfda8f 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -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); diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index b93c27ec8f..0b342c22b0 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -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); |