On Fri, Dec 5, 2014 at 9:16 AM, Jose Fonseca <jfons...@vmware.com> wrote:
> From: José Fonseca <jfons...@vmware.com>
>
> Matches what u_vbuf_get_minmax_index() does.

Hm, nouveau nv50 (and probably nvc0) does:

      if (ib->buffer) {
         nv50->idxbuf.offset = ib->offset;
         BCTX_REFN(nv50->bufctx_3d, INDEX, nv04_resource(ib->buffer), RD);
      } else {
         nv50->idxbuf.user_buffer = ib->user_buffer;
      }

Is the offset really supposed to be applied to the user buffer? I
figured the point of the offset was that you couldn't provide an
offset into a pipe_resource otherwise, while with a user ptr, you can
just add it in yourself...

> ---
>  src/gallium/auxiliary/indices/u_primconvert.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/auxiliary/indices/u_primconvert.c 
> b/src/gallium/auxiliary/indices/u_primconvert.c
> index 4632781..eba1f9e 100644
> --- a/src/gallium/auxiliary/indices/u_primconvert.c
> +++ b/src/gallium/auxiliary/indices/u_primconvert.c
> @@ -137,8 +137,9 @@ util_primconvert_draw_vbo(struct primconvert_context *pc,
>        src = ib->user_buffer;
>        if (!src) {
>           src = pipe_buffer_map(pc->pipe, ib->buffer,
> -                               PIPE_TRANSFER_READ, &src_transfer) + 
> ib->offset;
> +                               PIPE_TRANSFER_READ, &src_transfer);
>        }
> +      src = (const uint8_t *)src + ib->offset;
>     }
>     else {
>        u_index_generator(pc->primtypes_mask,
> --
> 2.1.0
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to