But at the time the mesa3d file
src/gallium/drivers/nouveau/nv30/nv30_screen.c
is called and when the various PUSH_DATA begin to be called there is not yet
a call to nouveau_pushbuf_space. So it would generate a seg fault in
push->curr. Again, sorry for the confusion and thanks for the reply.
Awaiting
for an answer if possible. Thanks in advance.

2015-11-02 14:44 GMT-03:00 Ilia Mirkin <imir...@alum.mit.edu>:

> 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
> <dmjcu...@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@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/nouveau
> >
>
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to