From 7413c55d93ccdf7ba58932d6186f1e6230df0e8a Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Sat, 14 Jun 2008 17:51:04 -0700 Subject: [PATCH] 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. --- src/mesa/drivers/dri/r300/r500_fragprog.c | 7 +++---- 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 7cf32ac..0483c09 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 3b51551..59c9048 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; } } -- 2.7.4