summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Cencora <m.cencora@gmail.com>2009-08-16 02:04:29 +0200
committerMaciej Cencora <m.cencora@gmail.com>2009-08-16 02:04:29 +0200
commitfd97f2f8b836bf4370d2a57988de3fe88bd50489 (patch)
tree582a1423b6cfb24523320e6ca0333b7bcae7d92f
parent30e9c753b8434778a167f708550983688677b232 (diff)
r300: disable ZTOP only when occlusion queries are used
-rw-r--r--src/mesa/drivers/dri/r300/r300_state.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c
index f39d7460b2..6081c33786 100644
--- a/src/mesa/drivers/dri/r300/r300_state.c
+++ b/src/mesa/drivers/dri/r300/r300_state.c
@@ -462,7 +462,7 @@ static GLboolean current_fragment_program_writes_depth(GLcontext* ctx)
static void r300SetEarlyZState(GLcontext * ctx)
{
r300ContextPtr r300 = R300_CONTEXT(ctx);
- GLuint topZ = R300_ZTOP_DISABLE;
+ GLuint topZ = R300_ZTOP_ENABLE;
GLuint w_fmt, fgdepthsrc;
if (ctx->Color.AlphaEnabled && ctx->Color.AlphaFunc != GL_ALWAYS)
@@ -471,6 +471,8 @@ static void r300SetEarlyZState(GLcontext * ctx)
topZ = R300_ZTOP_DISABLE;
else if (ctx->FragmentProgram._Current && ctx->FragmentProgram._Current->UsesKill)
topZ = R300_ZTOP_DISABLE;
+ else if (r300->query.current)
+ topZ = R300_ZTOP_DISABLE;
if (topZ != r300->hw.zstencil_format.cmd[2]) {
/* Note: This completely reemits the stencil format.