Mesa (master): tnl: Fix zeroing of the 3ub part of a 3ub+1ub attrib pair in SSE.

Eric Anholt anholt at kemper.freedesktop.org
Tue Dec 9 21:31:39 UTC 2008


Module: Mesa
Branch: master
Commit: 3b9bc821e1dfe39905585746166183264c335416
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b9bc821e1dfe39905585746166183264c335416

Author: Guillaume Melquiond <guillaume.melquiond at gmail.com>
Date:   Tue Dec  9 13:15:05 2008 -0800

tnl: Fix zeroing of the 3ub part of a 3ub+1ub attrib pair in SSE.

Bug #16520.

---

 src/mesa/tnl/t_vertex_sse.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/mesa/tnl/t_vertex_sse.c b/src/mesa/tnl/t_vertex_sse.c
index 07adc1e..7a255d6 100644
--- a/src/mesa/tnl/t_vertex_sse.c
+++ b/src/mesa/tnl/t_vertex_sse.c
@@ -354,6 +354,7 @@ static GLboolean build_vertex_emit( struct x86_program *p )
    struct x86_reg temp = x86_make_reg(file_XMM, 0);
    struct x86_reg vp0 = x86_make_reg(file_XMM, 1);
    struct x86_reg vp1 = x86_make_reg(file_XMM, 2);
+   struct x86_reg temp2 = x86_make_reg(file_XMM, 3);
    GLubyte *fixup, *label;
 
    /* Push a few regs?
@@ -526,7 +527,8 @@ static GLboolean build_vertex_emit( struct x86_program *p )
 	    sse_shufps(&p->func, temp, temp, SHUF(W,X,Y,Z));
 
 	    get_src_ptr(p, srcECX, vtxESI, &a[1]);
-	    emit_load(p, temp, 1, x86_deref(srcECX), a[1].inputsize);
+	    emit_load(p, temp2, 1, x86_deref(srcECX), a[1].inputsize);
+	    sse_movss(&p->func, temp, temp2);
 	    update_src_ptr(p, srcECX, vtxESI, &a[1]);
 
 	    /* Rearrange and possibly do BGR conversion:




More information about the mesa-commit mailing list