summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2013-01-08 14:32:41 +0100
committerMarek Olšák <[email protected]>2013-01-08 14:33:18 +0100
commita75ddfd55d24363046f11b2fd2de25563698fa39 (patch)
tree756bd540e1a7e66658144ee768bee7c33a9b8913 /src/gallium/drivers/r300
parenta60c567fcf29f5d2a41222a8826fee2cb0eb4458 (diff)
r300g: fix assertion failure in emit_dsa_state
Broken by 8ed6b1400bc8a78f46340f41aaf2e88b24c23267.
Diffstat (limited to 'src/gallium/drivers/r300')
-rw-r--r--src/gallium/drivers/r300/r300_cs.h4
-rw-r--r--src/gallium/drivers/r300/r300_emit.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/src/gallium/drivers/r300/r300_cs.h b/src/gallium/drivers/r300/r300_cs.h
index c208e672f42..744e19e44e2 100644
--- a/src/gallium/drivers/r300/r300_cs.h
+++ b/src/gallium/drivers/r300/r300_cs.h
@@ -96,8 +96,8 @@
OUT_CS(CP_PACKET3(op, count))
#define OUT_CS_TABLE(values, count) do { \
- memcpy(cs_copy->buf + cs_copy->cdw, values, count * 4); \
- cs_copy->cdw += count; \
+ memcpy(cs_copy->buf + cs_copy->cdw, (values), (count) * 4); \
+ cs_copy->cdw += (count); \
CS_USED_DW(count); \
} while (0)
diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c
index 3f61444abea..4163d2d1430 100644
--- a/src/gallium/drivers/r300/r300_emit.c
+++ b/src/gallium/drivers/r300/r300_emit.c
@@ -100,8 +100,10 @@ void r300_emit_dsa_state(struct r300_context* r300, unsigned size, void* state)
R300_FG_ALPHA_FUNC_CFG_3_OF_6;
}
+ BEGIN_CS(size);
OUT_CS_REG(R300_FG_ALPHA_FUNC, alpha_func);
- WRITE_CS_TABLE(fb->zsbuf ? &dsa->cb_begin : dsa->cb_zb_no_readwrite, size-2);
+ OUT_CS_TABLE(fb->zsbuf ? &dsa->cb_begin : dsa->cb_zb_no_readwrite, 8);
+ END_CS;
}
static void get_rc_constant_state(