diff options
author | Brian Paul <[email protected]> | 2006-04-24 16:33:25 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2006-04-24 16:33:25 +0000 |
commit | f12ea2d402e8f6d29dfd40c731351ff210887b58 (patch) | |
tree | c613ed5675a6ba7c4f625b4e54f9e419208ce21b /src | |
parent | 9cd1cc0535bd0b80c0c2550a03aeb872b10d7ff0 (diff) |
extended swizzle (bug 6727)
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/r300/r300_vertexprog.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_vertexprog.c b/src/mesa/drivers/dri/r300/r300_vertexprog.c index f794c9aa67a..9e32cfcfef9 100644 --- a/src/mesa/drivers/dri/r300/r300_vertexprog.c +++ b/src/mesa/drivers/dri/r300/r300_vertexprog.c @@ -916,6 +916,16 @@ void r300_translate_vertex_shader(struct r300_vertex_program *vp) fprintf(stderr, "Dont know how to handle op %d yet\n", vpi->Opcode); exit(-1); break; + case OPCODE_SWZ: + hw_op=(src[0].File == PROGRAM_TEMPORARY) ? R300_VPI_OUT_OP_MAD_2 : R300_VPI_OUT_OP_MAD; + + o_inst->op=MAKE_VSF_OP(hw_op, t_dst_index(vp, &vpi->DstReg), + t_dst_mask(vpi->DstReg.WriteMask), t_dst_class(vpi->DstReg.File)); + o_inst->src1=t_src(vp, &src[0]); + o_inst->src2=ONE_SRC_0; + o_inst->src3=ZERO_SRC_0; + + goto next; case OPCODE_END: break; default: |