search for: push_kick

Displaying 20 results from an estimated 33 matches for "push_kick".

Did you mean: push_back
2015 Aug 03
3
"enable dri3 support without glamor" causes gnome-shell regression on nv4x
Hi, On 30-07-15 16:09, Ilia Mirkin wrote: > FWIW this is a fail on nv50+ as well. See for example > https://bugs.freedesktop.org/show_bug.cgi?id=91445 > > My suspicion is that this is due to the lack of PUSH_KICK in the *Done > exa handlers -- works fine with DRI2, but DRI3 has no synchronization > and so the commands never get flushed out. Easily verified by sticking > PUSH_KICK's everywhere. I do not believe that that is the problem, in my case it clearly seems to be a pitch / swizzle proble...
2014 Jun 23
2
[Mesa-dev] [PATCH try 2 2/2] gallium/nouveau: move pushbuf and fences to context
...ntext_kick_notify. >> It would be great if you could detail the list of transformations that >> were done in the commit description, as well as what the "new way" is >> (if any) for the various concepts. > I moved the pushbuf and fences to each context separately. The PUSH_KICK on context switch ensures > that the previous context is flushed. >> This change doesn't have any of the locking -- is that coming in a >> future change? Otherwise we're still vulnerable to multiple threads >> trying to render at the same time. (Now with screen sharing,...
2015 Jul 30
2
"enable dri3 support without glamor" causes gnome-shell regression on nv4x
Hi Maarten, xf86-video-nouveau causes a garbled display when running gnome-shell on nv4x (tested with nv43 and nv46) since this commit: http://cgit.freedesktop.org/nouveau/xf86-video-nouveau/commit/?id=241e7289f25a342a457952b9b0e539c2f0b81d99 I've seen some discussion about issues caused by enabling dri, but AFAIK no solution let. I have time to help with debugging / fixing this, but I
2015 Aug 03
2
"enable dri3 support without glamor" causes gnome-shell regression on nv4x
...m> wrote: >> Hi, >> >> On 30-07-15 16:09, Ilia Mirkin wrote: >>> >>> FWIW this is a fail on nv50+ as well. See for example >>> https://bugs.freedesktop.org/show_bug.cgi?id=91445 >>> >>> My suspicion is that this is due to the lack of PUSH_KICK in the *Done >>> exa handlers -- works fine with DRI2, but DRI3 has no synchronization >>> and so the commands never get flushed out. Easily verified by sticking >>> PUSH_KICK's everywhere. >> >> >> I do not believe that that is the problem, in my ca...
2014 Jun 23
0
[Mesa-dev] [PATCH try 2 2/2] gallium/nouveau: move pushbuf and fences to context
...offset in nv30_context_kick_notify. > It would be great if you could detail the list of transformations that > were done in the commit description, as well as what the "new way" is > (if any) for the various concepts. I moved the pushbuf and fences to each context separately. The PUSH_KICK on context switch ensures that the previous context is flushed. > This change doesn't have any of the locking -- is that coming in a > future change? Otherwise we're still vulnerable to multiple threads > trying to render at the same time. (Now with screen sharing, even if > the...
2014 Jun 23
0
[Mesa-dev] [PATCH try 2 2/2] gallium/nouveau: move pushbuf and fences to context
...y. >>> It would be great if you could detail the list of transformations that >>> were done in the commit description, as well as what the "new way" is >>> (if any) for the various concepts. >> I moved the pushbuf and fences to each context separately. The PUSH_KICK on context switch ensures >> that the previous context is flushed. >>> This change doesn't have any of the locking -- is that coming in a >>> future change? Otherwise we're still vulnerable to multiple threads >>> trying to render at the same time. (Now with...
2014 Jun 21
3
[Mesa-dev] [PATCH try 2 2/2] gallium/nouveau: move pushbuf and fences to context
...ence, > struct nouveau_pushbuf *push = nv30->base.pushbuf; > > if (fence) > - nouveau_fence_ref(nv30->screen->base.fence.current, > + nouveau_fence_ref(nv30->base.fence.current, > (struct nouveau_fence **)fence); > > PUSH_KICK(push); > @@ -159,6 +157,22 @@ nv30_context_destroy(struct pipe_context *pipe) > { > struct nv30_context *nv30 = nv30_context(pipe); > > + /* need to flush before destroying the bufctx */ > + nouveau_pushbuf_kick(nv30->base.pushbuf, nv30->base.pushbuf->channel); &...
2020 Aug 06
3
[PATCH] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
...push, NV507D, SET_NOTIFIER_CONTROL, + NVDEF(NV507D, SET_NOTIFIER_CONTROL, MODE, WRITE) | + NVVAL(NV507D, SET_NOTIFIER_CONTROL, OFFSET, NV50_DISP_CORE_NTFY >> 2) | + NVDEF(NV507D, SET_NOTIFIER_CONTROL, NOTIFY, ENABLE)); PUSH_MTHD(push, NV507D, GET_CAPABILITIES, 0x00000000); - return PUSH_KICK(push); + ret = PUSH_KICK(push); + if (ret) + return ret; + + return 0; } int -- 2.26.2
2012 Apr 20
3
[Bug 48954] New: nv25 PGRAPH error and X freeze
https://bugs.freedesktop.org/show_bug.cgi?id=48954 Bug #: 48954 Summary: nv25 PGRAPH error and X freeze Classification: Unclassified Product: xorg Version: git Platform: x86 (IA32) OS/Version: Linux (All) Status: NEW Severity: normal Priority: medium Component: Driver/nouveau
2014 Jun 17
0
[PATCH try 2 2/2] gallium/nouveau: move pushbuf and fences to context
...*pipe, struct pipe_fence_handle **fence, struct nouveau_pushbuf *push = nv30->base.pushbuf; if (fence) - nouveau_fence_ref(nv30->screen->base.fence.current, + nouveau_fence_ref(nv30->base.fence.current, (struct nouveau_fence **)fence); PUSH_KICK(push); @@ -159,6 +157,22 @@ nv30_context_destroy(struct pipe_context *pipe) { struct nv30_context *nv30 = nv30_context(pipe); + /* need to flush before destroying the bufctx */ + nouveau_pushbuf_kick(nv30->base.pushbuf, nv30->base.pushbuf->channel); + + if (nv30->base.fence...
2020 Aug 07
4
[PATCH v2 1/2] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
...push, NV507D, SET_NOTIFIER_CONTROL, + NVDEF(NV507D, SET_NOTIFIER_CONTROL, MODE, WRITE) | + NVVAL(NV507D, SET_NOTIFIER_CONTROL, OFFSET, NV50_DISP_CORE_NTFY >> 2) | + NVDEF(NV507D, SET_NOTIFIER_CONTROL, NOTIFY, ENABLE)); PUSH_MTHD(push, NV507D, GET_CAPABILITIES, 0x00000000); - return PUSH_KICK(push); + + ret = PUSH_KICK(push); + if (ret) + return ret; + + core->func->update(core, interlock, false); + if (core->func->ntfy_wait_done(disp->sync, NV50_DISP_CORE_NTFY, + core->chan.base.device)) + NV_ERROR(drm, "core notifier timeout\n"); + + return 0;...
2015 Aug 10
2
"enable dri3 support without glamor" causes gnome-shell regression on nv4x
..., Ilia Mirkin wrote: >>>>> >>>>> >>>>> FWIW this is a fail on nv50+ as well. See for example >>>>> https://bugs.freedesktop.org/show_bug.cgi?id=91445 >>>>> >>>>> My suspicion is that this is due to the lack of PUSH_KICK in the *Done >>>>> exa handlers -- works fine with DRI2, but DRI3 has no synchronization >>>>> and so the commands never get flushed out. Easily verified by sticking >>>>> PUSH_KICK's everywhere. >>>> >>>> >>>> &gt...
2014 Jun 17
2
[PATCH try 2 1/2] gallium/nouveau: decouple nouveau_fence implementation from screen
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com> --- src/gallium/drivers/nouveau/nouveau_fence.c | 76 ++++++++++++------------- src/gallium/drivers/nouveau/nouveau_fence.h | 22 +++++-- src/gallium/drivers/nouveau/nouveau_screen.c | 9 +++ src/gallium/drivers/nouveau/nouveau_screen.h | 14 ++--- src/gallium/drivers/nouveau/nv30/nv30_context.c | 4 +-
2013 Jun 29
0
[PATCH] nv50: H.264/MPEG2 decoding support via VP2, available on NV84-NV96, NVA0
...IN_NV04(screen->pushbuf, SUBC_3D(0x1b00), 4); > + PUSH_DATAh(screen->pushbuf, dec->fence->offset); > + PUSH_DATA (screen->pushbuf, dec->fence->offset); > + PUSH_DATA (screen->pushbuf, 1); > + PUSH_DATA (screen->pushbuf, 0xf010); > + PUSH_KICK (screen->pushbuf); > + > + PUSH_SPACE(bsp_push, 2 + 12 + 2 + 4 + 3); > + > + BEGIN_NV04(bsp_push, SUBC_BSP(NV01_SUBCHAN_OBJECT), 1); > + PUSH_DATA (bsp_push, dec->bsp->handle); > + > + BEGIN_NV04(bsp_push, SUBC_BSP(0x180), 11); > + for (i =...
2013 Jun 27
4
[PATCH] nv50: H.264/MPEG2 decoding support via VP2, available on NV84-NV96, NVA0
...ne. + */ + BEGIN_NV04(screen->pushbuf, SUBC_3D(0x1b00), 4); + PUSH_DATAh(screen->pushbuf, dec->fence->offset); + PUSH_DATA (screen->pushbuf, dec->fence->offset); + PUSH_DATA (screen->pushbuf, 1); + PUSH_DATA (screen->pushbuf, 0xf010); + PUSH_KICK (screen->pushbuf); + + PUSH_SPACE(bsp_push, 2 + 12 + 2 + 4 + 3); + + BEGIN_NV04(bsp_push, SUBC_BSP(NV01_SUBCHAN_OBJECT), 1); + PUSH_DATA (bsp_push, dec->bsp->handle); + + BEGIN_NV04(bsp_push, SUBC_BSP(0x180), 11); + for (i = 0; i < 11; i++) + PUSH_DATA(b...
2014 Jun 16
2
[PATCH 1/2] gallium/nouveau: decouple nouveau_fence implementation from screen
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com> --- src/gallium/drivers/nouveau/nouveau_fence.c | 76 ++++++++++++------------- src/gallium/drivers/nouveau/nouveau_fence.h | 22 +++++-- src/gallium/drivers/nouveau/nouveau_screen.c | 9 +++ src/gallium/drivers/nouveau/nouveau_screen.h | 14 ++--- src/gallium/drivers/nouveau/nv30/nv30_context.c | 4
2015 May 19
2
[PATCH 1/2] Check before trying a solid fill
...0); - pNv->EXADriverPtr->Solid(pdpix, 0, 0, w, h); - pNv->EXADriverPtr->DoneSolid(pdpix); - nouveau_bo_wait(pNv->scanout, NOUVEAU_BO_RDWR, pNv->client); + if (exa->PrepareSolid(pdpix, GXclear, ~0, 0)) { + exa->Solid(pdpix, 0, 0, w, h); + exa->DoneSolid(pdpix); + PUSH_KICK(pNv->pushbuf); + nouveau_bo_wait(pNv->scanout, NOUVEAU_BO_RDWR, pNv->client); + pScreen->DestroyPixmap(pdpix); + return; + } pScreen->DestroyPixmap(pdpix); - return; } #endif if (nouveau_bo_map(pNv->scanout, NOUVEAU_BO_WR, pNv->client)) -- 2.3.6
2013 Jun 29
2
[PATCH] nv50: H.264/MPEG2 decoding support via VP2, available on NV84-NV96, NVA0
...ushbuf, SUBC_3D(0x1b00), 4); >> + PUSH_DATAh(screen->pushbuf, dec->fence->offset); >> + PUSH_DATA (screen->pushbuf, dec->fence->offset); >> + PUSH_DATA (screen->pushbuf, 1); >> + PUSH_DATA (screen->pushbuf, 0xf010); >> + PUSH_KICK (screen->pushbuf); >> + >> + PUSH_SPACE(bsp_push, 2 + 12 + 2 + 4 + 3); >> + >> + BEGIN_NV04(bsp_push, SUBC_BSP(NV01_SUBCHAN_OBJECT), 1); >> + PUSH_DATA (bsp_push, dec->bsp->handle); >> + >> + BEGIN_NV04(bsp_push, SUBC_BSP(0x180)...
2013 Jun 30
0
[PATCH v2] nv50: H.264/MPEG2 decoding support via VP2, available on NV84-NV96, NVA0
...*/ + BEGIN_NV04(screen->pushbuf, NV50_3D(QUERY_ADDRESS_HIGH), 4); + PUSH_DATAh(screen->pushbuf, dec->fence->offset); + PUSH_DATA (screen->pushbuf, dec->fence->offset); + PUSH_DATA (screen->pushbuf, 1); + PUSH_DATA (screen->pushbuf, 0xf010); + PUSH_KICK (screen->pushbuf); + + PUSH_SPACE(bsp_push, 2 + 12 + 2 + 4 + 3); + + BEGIN_NV04(bsp_push, SUBC_BSP(NV01_SUBCHAN_OBJECT), 1); + PUSH_DATA (bsp_push, dec->bsp->handle); + + BEGIN_NV04(bsp_push, SUBC_BSP(0x180), 11); + for (i = 0; i < 11; i++) + PUSH_DATA(b...
2016 Jun 05
0
[RFC PATCH] nouveau: add locking
...lium/drivers/nouveau/nv50/nv50_context.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_context.c @@ -37,7 +37,9 @@ nv50_flush(struct pipe_context *pipe, if (fence) nouveau_fence_ref(screen->fence.current, (struct nouveau_fence **)fence); + pipe_mutex_lock(screen->push_mutex); PUSH_KICK(screen->pushbuf); + pipe_mutex_unlock(screen->push_mutex); nouveau_context_update_frame_stats(nouveau_context(pipe)); } @@ -47,10 +49,12 @@ nv50_texture_barrier(struct pipe_context *pipe) { struct nouveau_pushbuf *push = nv50_context(pipe)->base.pushbuf; + pipe_mutex_lock...