cell: fix broken negative texcoord conversion
authorBrian Paul <brian.paul@tungstengraphics.com>
Tue, 14 Oct 2008 18:52:16 +0000 (12:52 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Tue, 14 Oct 2008 18:54:31 +0000 (12:54 -0600)
src/gallium/drivers/cell/spu/spu_texture.c

index 267f2302f60eabe6acd15457aac04e6567dd4779..83cf7dc39423388719bde31b3ccab122a51007f3 100644 (file)
@@ -138,8 +138,8 @@ sample_texture4_bilinear(vector float s, vector float t,
    vector float ss = spu_madd(s, spu.texture[unit].level[level].width4,  spu_splats(-0.5f));
    vector float tt = spu_madd(t, spu.texture[unit].level[level].height4, spu_splats(-0.5f));
 
-   vector unsigned int is0 = spu_convtu(ss, 0);
-   vector unsigned int it0 = spu_convtu(tt, 0);
+   vector unsigned int is0 = (vector unsigned int) spu_convts(ss, 0);
+   vector unsigned int it0 = (vector unsigned int) spu_convts(tt, 0);
 
    /* is + 1, it + 1 */
    vector unsigned int is1 = spu_add(is0, 1);
@@ -281,8 +281,8 @@ sample_texture4_bilinear_2(vector float s, vector float t,
    vector float tt = spu_madd(t, spu.texture[unit].level[level].height4, half);
 
    /* convert float coords to fixed-pt coords with 8 fraction bits */
-   vector unsigned int is = spu_convtu(ss, 8);
-   vector unsigned int it = spu_convtu(tt, 8);
+   vector unsigned int is = (vector unsigned int) spu_convts(ss, 8);
+   vector unsigned int it = (vector unsigned int) spu_convts(tt, 8);
 
    /* compute integer texel weights in [0, 255] */
    vector signed int sWeights0 = spu_and((vector signed int) is, 255);