summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2010-06-18 21:20:57 -0700
committerMarek Olšák <[email protected]>2010-07-03 04:32:31 +0200
commitf381c52081b2cbff31c2f38abf16dffcc08f681c (patch)
tree487291353936ffb561cb3924845d491df5db6171 /src/gallium
parent3c3b7e02eb80727382f7239c7d53f90bc748a194 (diff)
r300/compiler: Use hardware flow control instructions for loops on r500.
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/r300/r300_fs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/drivers/r300/r300_fs.c b/src/gallium/drivers/r300/r300_fs.c
index 424f831731d..b145ded6399 100644
--- a/src/gallium/drivers/r300/r300_fs.c
+++ b/src/gallium/drivers/r300/r300_fs.c
@@ -246,13 +246,14 @@ static void r300_emit_fs_code_to_buffer(
if (r300->screen->caps.is_r500) {
struct r500_fragment_program_code *code = &generic_code->code.r500;
- shader->cb_code_size = 17 +
+ shader->cb_code_size = 19 +
((code->inst_end + 1) * 6) +
imm_count * 7;
NEW_CB(shader->cb_code, shader->cb_code_size);
OUT_CB_REG(R500_US_CONFIG, R500_ZERO_TIMES_ANYTHING_EQUALS_ZERO);
OUT_CB_REG(R500_US_PIXSIZE, code->max_temp_idx);
+ OUT_CB_REG(R500_US_FC_CTRL, code->us_fc_ctrl);
OUT_CB_REG(R500_US_CODE_RANGE,
R500_US_CODE_RANGE_ADDR(0) | R500_US_CODE_RANGE_SIZE(code->inst_end));
OUT_CB_REG(R500_US_CODE_OFFSET, 0);