diff options
author | Corbin Simpson <[email protected]> | 2008-06-14 17:51:04 -0700 |
---|---|---|
committer | Corbin Simpson <[email protected]> | 2008-06-14 17:59:10 -0700 |
commit | 7413c55d93ccdf7ba58932d6186f1e6230df0e8a (patch) | |
tree | c17d2bf3bc3b2abcc5f7a1889b05dfd8fbe640b0 /src/mesa/drivers/dri | |
parent | 43da1189610fcaa5ade69620734a7b1e5caf84c4 (diff) |
r5xx: Detangle FP fallback and translation switches.
r5xx should fallback if it encounters a bad FP.
TODO: Re-enable the dumb shader so we don't have to completely fallback.
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r-- | src/mesa/drivers/dri/r300/r500_fragprog.c | 7 | ||||
-rw-r--r-- | src/mesa/drivers/dri/r300/r500_fragprog_emit.c | 2 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/r300/r500_fragprog.c b/src/mesa/drivers/dri/r300/r500_fragprog.c index 7cf32acd4e2..0483c09ba07 100644 --- a/src/mesa/drivers/dri/r300/r500_fragprog.c +++ b/src/mesa/drivers/dri/r300/r500_fragprog.c @@ -331,20 +331,19 @@ void r500TranslateFragmentShader(r300ContextPtr r300, radeonCompilerDump(&compiler.compiler); } - if (!r500FragmentProgramEmit(&compiler)) - fp->error = GL_TRUE; + fp->translated = r500FragmentProgramEmit(&compiler); radeonCompilerCleanup(&compiler.compiler); r300UpdateStateParameters(r300->radeon.glCtx, _NEW_PROGRAM); - fp->translated = GL_TRUE; if (RADEON_DEBUG & DEBUG_PIXEL) { fprintf(stderr, "Mesa program:\n"); fprintf(stderr, "-------------\n"); _mesa_print_program(&fp->mesa_program.Base); fflush(stdout); - dump_program(&fp->code); + if (fp->translated) + dump_program(&fp->code); } } diff --git a/src/mesa/drivers/dri/r300/r500_fragprog_emit.c b/src/mesa/drivers/dri/r300/r500_fragprog_emit.c index 3b515515ef1..59c90486531 100644 --- a/src/mesa/drivers/dri/r300/r500_fragprog_emit.c +++ b/src/mesa/drivers/dri/r300/r500_fragprog_emit.c @@ -1296,7 +1296,7 @@ static GLboolean parse_program(struct r500_pfs_compile_state *cs) fpi = clause->Instructions + ip; counter = do_inst(cs, fpi, counter); - if (cs->compiler->fp->error == GL_TRUE) + if (cs->compiler->fp->error) return GL_FALSE; } } |