summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2010-06-05 04:18:28 +0200
committerMarek Olšák <maraeo@gmail.com>2010-06-05 07:03:15 +0200
commitdf36bc8dad477bcfb8012962907562489697a09c (patch)
tree807e6af4b77aefe65db38c6311cba7e2ff6d2619 /src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c
parente629de94b53f49826626447a2e81cd9b01360a75 (diff)
r300/compiler: implement SEQ unwound for r3xx VS, natively for r5xx VS
Fixes piglit/glsl-vs-vec4-indexing-4.
Diffstat (limited to 'src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c')
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c
index 02bef5603f..755161cdc7 100644
--- a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c
+++ b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c
@@ -353,6 +353,8 @@ static void translate_vertex_program(struct r300_vertex_program_compiler * compi
return;
}
+ assert(compiler->Base.is_r500 || vpi->Opcode != RC_OPCODE_SEQ);
+
switch (vpi->Opcode) {
case RC_OPCODE_ADD: ei_vector2(compiler->code, VE_ADD, vpi, inst); break;
case RC_OPCODE_ARL: ei_vector1(compiler->code, VE_FLT2FIX_DX, vpi, inst); break;
@@ -372,6 +374,7 @@ static void translate_vertex_program(struct r300_vertex_program_compiler * compi
case RC_OPCODE_POW: ei_pow(compiler->code, vpi, inst); break;
case RC_OPCODE_RCP: ei_math1(compiler->code, ME_RECIP_DX, vpi, inst); break;
case RC_OPCODE_RSQ: ei_math1(compiler->code, ME_RECIP_SQRT_DX, vpi, inst); break;
+ case RC_OPCODE_SEQ: ei_vector2(compiler->code, VE_SET_EQUAL, vpi, inst); break;
case RC_OPCODE_SGE: ei_vector2(compiler->code, VE_SET_GREATER_THAN_EQUAL, vpi, inst); break;
case RC_OPCODE_SLT: ei_vector2(compiler->code, VE_SET_LESS_THAN, vpi, inst); break;
default: