Browse Source

r300g: if no DS buffer is set, disable reading from and writing to it

It fixes another "Bad CS" issue.
tags/7.8-rc1
Marek Olšák 16 years ago
parent
commit
1a4f242be6
2 changed files with 10 additions and 2 deletions
  1. 9
    2
      src/gallium/drivers/r300/r300_emit.c
  2. 1
    0
      src/gallium/drivers/r300/r300_state.c

+ 9
- 2
src/gallium/drivers/r300/r300_emit.c View File

@@ -121,8 +121,15 @@ void r300_emit_dsa_state(struct r300_context* r300,
}*/

OUT_CS_REG_SEQ(R300_ZB_CNTL, 3);
OUT_CS(dsa->z_buffer_control);
OUT_CS(dsa->z_stencil_control);

if (r300->framebuffer_state.zsbuf) {
OUT_CS(dsa->z_buffer_control);
OUT_CS(dsa->z_stencil_control);
} else {
OUT_CS(0);
OUT_CS(0);
}

OUT_CS(dsa->stencil_ref_mask);
OUT_CS_REG(R300_ZB_ZTOP, r300->ztop_state.z_buffer_top);


+ 1
- 0
src/gallium/drivers/r300/r300_state.c View File

@@ -522,6 +522,7 @@ static void
}
r300->dirty_state |= R300_NEW_FRAMEBUFFERS;
r300->dirty_state |= R300_NEW_BLEND;
r300->dirty_state |= R300_NEW_DSA;
}

/* Create fragment shader state. */

Loading…
Cancel
Save