diff options
author | Ian Romanick <[email protected]> | 2012-02-10 16:00:27 -0800 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2012-02-15 14:50:40 -0800 |
commit | 3e22d4e5fc32dafcb9669a9d6376323aa88e300c (patch) | |
tree | c24c3f91b1f38235cf8b6aed9fe763618de4d60c | |
parent | 8f3be339850ead96f9c6200db4e0db1f74e39d13 (diff) |
swrast: Only avoid empty _TexEnvPrograms
If the generated shader for _TexEnvProgram is empty, force the use of
the fixed-function code. Otherwise, go ahead and use the shader.
This works around a mysterious issue on i915 where fixed-function
software fallbacks are not working correctly.
This isn't really the fix we want, but it works around the issue.
Signed-off-by: Ian Romanick <[email protected]>
Reviewed-by: Chad Versace <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45872
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45876
-rw-r--r-- | src/mesa/swrast/s_fragprog.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/swrast/s_fragprog.c b/src/mesa/swrast/s_fragprog.c index cd20d8e3647..8d59371c836 100644 --- a/src/mesa/swrast/s_fragprog.c +++ b/src/mesa/swrast/s_fragprog.c @@ -40,7 +40,8 @@ GLboolean _swrast_use_fragment_program(struct gl_context *ctx) { struct gl_fragment_program *fp = ctx->FragmentProgram._Current; - return fp && fp != ctx->FragmentProgram._TexEnvProgram; + return fp && !(fp == ctx->FragmentProgram._TexEnvProgram + && fp->Base.NumInstructions == 0); } /** |