diff options
author | Brian Paul <[email protected]> | 2009-08-31 13:28:31 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-08-31 19:34:47 -0600 |
commit | 18656201ef62da1892d66e0899001ae82e2555c2 (patch) | |
tree | 9c352094dd6b5c40191aab9623de9059db57a3b6 /src | |
parent | 31a5a9e9cc943ae38077658302e43c05b80983d7 (diff) |
swrast: can't use deferred texture/shading if using KIL instruction
If the fragment program uses KIL, we have to execute it before z/stencil
testing. Otherwise, deferred texture/shading lets us skip shading for
pixels that fail z/stencil testing.
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/swrast/s_context.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mesa/swrast/s_context.c b/src/mesa/swrast/s_context.c index e7c2ace32c7..abf00085651 100644 --- a/src/mesa/swrast/s_context.c +++ b/src/mesa/swrast/s_context.c @@ -220,6 +220,9 @@ _swrast_update_deferred_texture(GLcontext *ctx) /* Z comes from fragment program/shader */ swrast->_DeferredTexture = GL_FALSE; } + else if (fprog && fprog->UsesKill) { + swrast->_DeferredTexture = GL_FALSE; + } else if (ctx->Query.CurrentOcclusionObject) { /* occlusion query depends on shader discard/kill results */ swrast->_DeferredTexture = GL_FALSE; |