summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_state.c
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2012-12-02 04:40:36 +0100
committerMarek Olšák <maraeo@gmail.com>2012-12-02 07:07:33 +0100
commit62cba629c09aaf236b2750785b899934b531b17a (patch)
treeb2c06871245874ef5a838847d037a60c946ce190 /src/gallium/drivers/r300/r300_state.c
parente5f1f8d52e6bfdf087f930425eb5092f52a29940 (diff)
Revert "r300g: fix occlusion queries when depth test is disabled or zbuffer is missing"
It broke Hyper-Z terribly.
Diffstat (limited to 'src/gallium/drivers/r300/r300_state.c')
-rw-r--r--src/gallium/drivers/r300/r300_state.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c
index e5e68d22dd0..02a263eabda 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -578,10 +578,6 @@ static void*
dsa->z_stencil_control |=
(r300_translate_depth_stencil_function(state->depth.func) <<
R300_Z_FUNC_SHIFT);
- } else {
- /* We must enable depth test, otherwise occlusion queries won't work. */
- dsa->z_buffer_control |= R300_Z_ENABLE;
- dsa->z_stencil_control |= R300_ZS_ALWAYS;
}
/* Stencil buffer setup. */
@@ -665,13 +661,11 @@ static void*
OUT_CB_REG(R500_FG_ALPHA_VALUE, dsa->alpha_value);
END_CB;
- /* We must enable depth test, otherwise occlusion queries won't work.
- * We setup a dummy zbuffer to silent the CS checker, see emit_fb_state. */
BEGIN_CB(dsa->cb_zb_no_readwrite, 10);
OUT_CB_REG(R300_FG_ALPHA_FUNC, dsa->alpha_function);
OUT_CB_REG_SEQ(R300_ZB_CNTL, 3);
- OUT_CB(R300_Z_ENABLE);
- OUT_CB(R300_ZS_ALWAYS);
+ OUT_CB(0);
+ OUT_CB(0);
OUT_CB(0);
OUT_CB_REG(R500_ZB_STENCILREFMASK_BF, 0);
OUT_CB_REG(R500_FG_ALPHA_VALUE, dsa->alpha_value);
@@ -680,8 +674,8 @@ static void*
BEGIN_CB(dsa->cb_fp16_zb_no_readwrite, 10);
OUT_CB_REG(R300_FG_ALPHA_FUNC, dsa->alpha_function_fp16);
OUT_CB_REG_SEQ(R300_ZB_CNTL, 3);
- OUT_CB(R300_Z_ENABLE);
- OUT_CB(R300_ZS_ALWAYS);
+ OUT_CB(0);
+ OUT_CB(0);
OUT_CB(0);
OUT_CB_REG(R500_ZB_STENCILREFMASK_BF, 0);
OUT_CB_REG(R500_FG_ALPHA_VALUE, dsa->alpha_value);
@@ -827,14 +821,12 @@ void r300_mark_fb_state_dirty(struct r300_context *r300,
/* Now compute the fb_state atom size. */
r300->fb_state.size = 2 + (8 * state->nr_cbufs);
- if (r300->cbzb_clear) {
+ if (r300->cbzb_clear)
r300->fb_state.size += 10;
- } else if (state->zsbuf) {
+ else if (state->zsbuf) {
r300->fb_state.size += 10;
if (r300->hyperz_enabled)
r300->fb_state.size += 8;
- } else if (state->nr_cbufs) {
- r300->fb_state.size += 10;
}
/* The size of the rest of atoms stays the same. */