From: Corbin Simpson Date: Sun, 15 Jun 2008 00:51:04 +0000 (-0700) Subject: r5xx: Detangle FP fallback and translation switches. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7413c55d93ccdf7ba58932d6186f1e6230df0e8a;p=mesa.git 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. --- 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; } }