[Nouveau] help with push

Ilia Mirkin imirkin at alum.mit.edu
Mon Nov 2 09:44:48 PST 2015


See libdrm's pushbuf.c -- iirc push->cur points to a GART-mapped bo.

http://cgit.freedesktop.org/mesa/drm/tree/nouveau/pushbuf.c#n682

nouveau_pushbuf_data(push, NULL, 0, 0);
nouveau_bo_ref(bo, &nvpb->bo);
nouveau_bo_ref(NULL, &bo);

nvpb->bgn = nvpb->bo->map;
nvpb->ptr = nvpb->bgn;
push->cur = nvpb->bgn;
push->end = push->cur + (nvpb->bo->size / 4);
push->end -= 2 + push->rsvd_kick; /* space for suffix */

Not sure what problem you're trying to solve.

  -ilia

On Mon, Nov 2, 2015 at 12:31 PM, Daniel Melo Jorge da Cunha
<dmjcunha at gmail.com> wrote:
> Hi, sorry if I misunderstood everything...
>
> In the file src/gallium/drivers/nouveau/nv30/nv30_screen.c there is loans of
> PUSH_DATA which is basically *push->curr = data;
>
> I'm thinking that somehow push->curr is the bo->map = drm_mmap(...)
> that is called in nouveau_bo_map. But I cannot see how they are linked...
> Because when nouveau_bo_map calls nouveau_bo_wait
> push = cli_push_get(client, bo) returns NULL...
>
> Is push->curr the region of memory that we send data to the card?
> If so, how is it mapped?
> Has bo->map something to do with it? If so, how are they linked?
>
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/nouveau
>


More information about the Nouveau mailing list