summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_emit.c
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-12-05 17:48:00 +0100
committerMichel Dänzer <michel@daenzer.net>2009-12-05 17:59:49 +0100
commit56a4342a0493ad1d502d4791ab941ef171d36e60 (patch)
tree11b85592643a25e902404da955921fc3bede05ac /src/gallium/drivers/r300/r300_emit.c
parent01537a84dfe65cd1512d6fbf71e975fad5639432 (diff)
r300g: Need to emit a hardware scissor rectangle even if scissor is disabled.
Just make it cover the whole framebuffer in that case. Otherwise the kernel CS checker may complain, e.g. running progs/demos/gearbox. That runs fast now here, but doesn't look right yet.
Diffstat (limited to 'src/gallium/drivers/r300/r300_emit.c')
-rw-r--r--src/gallium/drivers/r300/r300_emit.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c
index 60be03f54f..04dca29216 100644
--- a/src/gallium/drivers/r300/r300_emit.c
+++ b/src/gallium/drivers/r300/r300_emit.c
@@ -570,8 +570,13 @@ void r300_emit_scissor_state(struct r300_context* r300,
BEGIN_CS(3);
OUT_CS_REG_SEQ(R300_SC_SCISSORS_TL, 2);
- OUT_CS(scissor->scissor_top_left);
- OUT_CS(scissor->scissor_bottom_right);
+ if (r300->rs_state->rs.scissor) {
+ OUT_CS(scissor->scissor_top_left);
+ OUT_CS(scissor->scissor_bottom_right);
+ } else {
+ OUT_CS(scissor->no_scissor_top_left);
+ OUT_CS(scissor->no_scissor_bottom_right);
+ }
END_CS;
}