[Mesa-dev] [PATCH 2/2] gallium/util: add fast path for buffers in u_default_transfer_inline_write

Jose Fonseca jfonseca at vmware.com
Mon Feb 27 07:15:31 PST 2012



----- Original Message -----
> On Mon, Feb 27, 2012 at 10:32 AM, Jose Fonseca <jfonseca at vmware.com>
> wrote:
> > ----- 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.
> 
> I'll fix that.
> 
> >
> > Please also these sanity checks:
> >
> >   assert(box->width == 1);
> >   assert(box->depth == 1);
> 
> I guess you mean box->height. Anyway, will do.

Indeed my thinko. Thanks.

Jose


More information about the mesa-dev mailing list