----- Original Message ----- > --- > src/gallium/auxiliary/util/u_transfer.c | 34 > ++++++++++++++++++------------ > 1 files changed, 20 insertions(+), 14 deletions(-) > > diff --git a/src/gallium/auxiliary/util/u_transfer.c > b/src/gallium/auxiliary/util/u_transfer.c > index 1fa8d94..f1c2a09 100644 > --- a/src/gallium/auxiliary/util/u_transfer.c > +++ b/src/gallium/auxiliary/util/u_transfer.c > @@ -18,8 +18,6 @@ void u_default_transfer_inline_write( struct > pipe_context *pipe, > { > struct pipe_transfer *transfer = NULL; > uint8_t *map = NULL; > - const uint8_t *src_data = data; > - unsigned i; > > assert(!(usage & PIPE_TRANSFER_READ)); > > @@ -45,18 +43,26 @@ void u_default_transfer_inline_write( struct > pipe_context *pipe, > if (map == NULL) > goto out; > > - for (i = 0; i < box->depth; i++) { > - util_copy_rect(map, > - resource->format, > - transfer->stride, /* bytes */ > - 0, 0, > - box->width, > - box->height, > - src_data, > - stride, /* bytes */ > - 0, 0); > - map += transfer->layer_stride; > - src_data += layer_stride; > + if (resource->target == PIPE_BUFFER) { > + memcpy(map, data, box->width);
Not sure if it was email's fault, but indentation looks off. Please also these sanity checks: assert(box->width == 1); assert(box->depth == 1); Otherwise looks great. Another alternative would be to have special cases in util_copy_rect for width == 1 && depth == 1, but I think the special case here is worth it, given the buffer simplicity. Jose _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev