summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_emit.c
diff options
context:
space:
mode:
authorJoakim Sindholt <opensource@zhasha.com>2009-02-13 05:08:54 +0100
committerCorbin Simpson <MostAwesomeDude@gmail.com>2009-02-12 20:24:27 -0800
commit92661bcbad13c8750f63e3a30b6c616d2f1094d3 (patch)
tree5e59f2666263083b9cf4c9f7f266d3aa23f0719b /src/gallium/drivers/r300/r300_emit.c
parent0d60a3f33cbc071fb5aca95b96f35908059b0435 (diff)
r300-gallium: fix OUT_CS_ONE_REG and use where applicable
Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Diffstat (limited to 'src/gallium/drivers/r300/r300_emit.c')
-rw-r--r--src/gallium/drivers/r300/r300_emit.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c
index 8391663f7f..a4d520a674 100644
--- a/src/gallium/drivers/r300/r300_emit.c
+++ b/src/gallium/drivers/r300/r300_emit.c
@@ -114,17 +114,15 @@ void r500_emit_fragment_shader(struct r300_context* r300,
struct r500_fragment_shader* fs)
{
CS_LOCALS(r300);
- int i;
- /* XXX Problem: OUT_CS_ONE_REG causes card crash */
- /* BEGIN_CS(8 + (shader->shader.instruction_count * 6) + 6); */
- BEGIN_CS(10 + (shader->shader.instruction_count * 12));
+ int i = 0;
+ BEGIN_CS(11 + (shader->shader.instruction_count * 6));
OUT_CS_REG(R500_US_CONFIG, R500_ZERO_TIMES_ANYTHING_EQUALS_ZERO);
OUT_CS_REG(R500_US_PIXSIZE, fs->shader.stack_size);
OUT_CS_REG(R500_US_CODE_ADDR, R500_US_CODE_START_ADDR(0) |
R500_US_CODE_END_ADDR(fs->instruction_count));
OUT_CS_REG(R500_GA_US_VECTOR_INDEX, R500_GA_US_VECTOR_INDEX_TYPE_INSTR);
- /* OUT_CS_ONE_REG(R500_GA_US_VECTOR_DATA,
+ OUT_CS_ONE_REG(R500_GA_US_VECTOR_DATA,
shader->shader.instruction_count * 6);
for (i = 0; i < shader->shader.instruction_count; i++) {
OUT_CS(shader->instructions[i].inst0);
@@ -133,14 +131,6 @@ void r500_emit_fragment_shader(struct r300_context* r300,
OUT_CS(shader->instructions[i].inst3);
OUT_CS(shader->instructions[i].inst4);
OUT_CS(shader->instructions[i].inst5);
- } */
- for (i = 0; i < shader->shader.instruction_count; i++) {
- OUT_CS_REG(R500_GA_US_VECTOR_DATA, shader->instructions[i].inst0);
- OUT_CS_REG(R500_GA_US_VECTOR_DATA, shader->instructions[i].inst1);
- OUT_CS_REG(R500_GA_US_VECTOR_DATA, shader->instructions[i].inst2);
- OUT_CS_REG(R500_GA_US_VECTOR_DATA, shader->instructions[i].inst3);
- OUT_CS_REG(R500_GA_US_VECTOR_DATA, shader->instructions[i].inst4);
- OUT_CS_REG(R500_GA_US_VECTOR_DATA, shader->instructions[i].inst5);
}
R300_PACIFY;
END_CS;