Am 07.04.2015 um 02:15 schrieb Dave Airlie: > From: Dave Airlie <airl...@redhat.com> > > arb_stencil_texturing-draw failed under softpipe because we got a float > back from the texturing function, and then tried to U2F it, stencil > texturing returns ints, so we should fix the tiling to retrieve > the stencil values as integers not floats. > > Signed-off-by: Dave Airlie <airl...@redhat.com> > --- > src/gallium/auxiliary/util/u_tile.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/src/gallium/auxiliary/util/u_tile.c > b/src/gallium/auxiliary/util/u_tile.c > index 6252e5d..f5edb8b 100644 > --- a/src/gallium/auxiliary/util/u_tile.c > +++ b/src/gallium/auxiliary/util/u_tile.c > @@ -214,13 +214,13 @@ s8x24_get_tile_rgba(const unsigned *src, > unsigned i, j; > > for (i = 0; i < h; i++) { > - float *pRow = p; > + uint32_t *pRow = p; > > for (j = 0; j < w; j++, pRow += 4) { > pRow[0] = > pRow[1] = > pRow[2] = > - pRow[3] = (float)((*src++ >> 24) & 0xff); > + pRow[3] = ((*src++ >> 24) & 0xff); > } > > p += dst_stride; > @@ -241,12 +241,12 @@ x24s8_get_tile_rgba(const unsigned *src, > unsigned i, j; > > for (i = 0; i < h; i++) { > - float *pRow = p; > + uint32_t *pRow = p; > for (j = 0; j < w; j++, pRow += 4) { > pRow[0] = > pRow[1] = > pRow[2] = > - pRow[3] = (float)(*src++ & 0xff); > + pRow[3] = (*src++ & 0xff); > } > p += dst_stride; > } > @@ -265,12 +265,12 @@ s8_get_tile_rgba(const unsigned char *src, > unsigned i, j; > > for (i = 0; i < h; i++) { > - float *pRow = p; > + uint32_t *pRow = p; > for (j = 0; j < w; j++, pRow += 4) { > pRow[0] = > pRow[1] = > pRow[2] = > - pRow[3] = (float)(*src++ & 0xff); > + pRow[3] = (*src++ & 0xff); > } > p += dst_stride; > } >
I am kinda surprised the code is all there to actually make it work... int32_t *pRow = p is an implicit cast from a float ptr to a int ptr though and probably violates strict aliasing rules. I guess though to fix it properly you'd need to use a void ptr in the interface or something. Though it's an improvement in any case. Roland _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev