summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Whitwell <[email protected]>2008-05-27 11:10:50 +0100
committerKeith Whitwell <[email protected]>2008-05-27 11:10:50 +0100
commit5dc44184fa9f07465b7ff2be94394c55392ce5e9 (patch)
tree0b2480e05bf6b5c77242d60371170e9c092df147
parent4e2567f0ab6afd701bea4c35e388663e90f5cb6c (diff)
draw: fix writemask/shufps confusion
-rw-r--r--src/gallium/auxiliary/draw/draw_vs_aos.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vs_aos.c b/src/gallium/auxiliary/draw/draw_vs_aos.c
index 99630e4f759..434bd2a9ab9 100644
--- a/src/gallium/auxiliary/draw/draw_vs_aos.c
+++ b/src/gallium/auxiliary/draw/draw_vs_aos.c
@@ -687,17 +687,18 @@ static void store_dest( struct aos_compilation *cp,
sse_movss(cp->func, dst, get_xmm(cp, result));
break;
- case TGSI_WRITEMASK_XY:
+ case TGSI_WRITEMASK_ZW:
sse_shufps(cp->func, dst, get_xmm(cp, result), SHUF(X, Y, Z, W));
break;
- case TGSI_WRITEMASK_ZW:
+ case TGSI_WRITEMASK_XY:
result = get_xmm_writable(cp, result);
sse_shufps(cp->func, result, dst, SHUF(X, Y, Z, W));
dst = result;
break;
case TGSI_WRITEMASK_YZW:
+ result = get_xmm_writable(cp, result);
sse_movss(cp->func, result, dst);
dst = result;
break;
@@ -891,7 +892,7 @@ static void emit_print( struct aos_compilation *cp,
unsigned idx )
{
struct x86_reg ecx = x86_make_reg( file_REG32, reg_CX );
- struct x86_reg arg = get_reg_ptr( cp, file, idx );
+ struct x86_reg arg = aos_get_shader_reg_ptr( cp, file, idx );
unsigned i;
/* There shouldn't be anything on the x87 stack. Can add this