search for: nouveau_fence_state_emit

Displaying 9 results from an estimated 9 matches for "nouveau_fence_state_emit".

2015 Oct 10
2
[PATCH] nouveau: avoid emitting new fences unnecessarily
...index ee4e08d..18b1592 100644 --- a/src/gallium/drivers/nouveau/nouveau_fence.c +++ b/src/gallium/drivers/nouveau/nouveau_fence.c @@ -190,8 +190,10 @@ nouveau_fence_wait(struct nouveau_fence *fence) /* wtf, someone is waiting on a fence in flush_notify handler? */ assert(fence->state != NOUVEAU_FENCE_STATE_EMITTING); - if (fence->state < NOUVEAU_FENCE_STATE_EMITTED) + if (fence->state < NOUVEAU_FENCE_STATE_EMITTED) { + PUSH_SPACE(screen->pushbuf, 8); nouveau_fence_emit(fence); + } if (fence->state < NOUVEAU_FENCE_STATE_FLUSHED) if (nouveau_pushbuf_kick...
2013 Nov 30
1
[PATCH 1/2] nouveau: avoid leaking fences while waiting
...index dea146c..c686710 100644 --- a/src/gallium/drivers/nouveau/nouveau_fence.c +++ b/src/gallium/drivers/nouveau/nouveau_fence.c @@ -189,16 +189,15 @@ nouveau_fence_wait(struct nouveau_fence *fence) /* wtf, someone is waiting on a fence in flush_notify handler? */ assert(fence->state != NOUVEAU_FENCE_STATE_EMITTING); - if (fence->state < NOUVEAU_FENCE_STATE_EMITTED) { + if (fence->state < NOUVEAU_FENCE_STATE_EMITTED) nouveau_fence_emit(fence); - if (fence == screen->fence.current) - nouveau_fence_new(screen, &screen->fence.current, FALSE); - } - if (fe...
2014 Mar 06
2
[PATCH] nouveau: fix fence waiting logic in screen destroy
...++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c @@ -308,10 +308,16 @@ nv30_screen_destroy(struct pipe_screen *pscreen) if (!nouveau_drm_screen_unref(&screen->base)) return; - if (screen->base.fence.current && - screen->base.fence.current->state >= NOUVEAU_FENCE_STATE_EMITTED) { - nouveau_fence_wait(screen->base.fence.current); - nouveau_fence_ref (NULL, &screen->base.fence.current); + if (screen->base.fence.current) { + struct nouveau_fence *current = NULL; + + /* nouveau_fence_wait will create a new current fence, so wait on the +...
2014 Jun 16
2
[PATCH 1/2] gallium/nouveau: decouple nouveau_fence implementation from screen
...else - screen->fence.head = fence; + mgr->head = fence; - screen->fence.tail = fence; + mgr->tail = fence; - screen->fence.emit(&screen->base, &fence->sequence); + mgr->emit(mgr, &fence->sequence); assert(fence->state == NOUVEAU_FENCE_STATE_EMITTING); fence->state = NOUVEAU_FENCE_STATE_EMITTED; @@ -109,19 +109,19 @@ void nouveau_fence_del(struct nouveau_fence *fence) { struct nouveau_fence *it; - struct nouveau_screen *screen = fence->screen; + struct nouveau_fence_mgr *mgr = fence->mgr; if (fence->sta...
2014 Mar 07
0
[PATCH] nouveau: fix fence waiting logic in screen destroy
...au/nv30/nv30_screen.c > @@ -308,10 +308,16 @@ nv30_screen_destroy(struct pipe_screen *pscreen) > if (!nouveau_drm_screen_unref(&screen->base)) > return; > > - if (screen->base.fence.current && > - screen->base.fence.current->state >= NOUVEAU_FENCE_STATE_EMITTED) { > - nouveau_fence_wait(screen->base.fence.current); > - nouveau_fence_ref (NULL, &screen->base.fence.current); > + if (screen->base.fence.current) { > + struct nouveau_fence *current = NULL; > + > + /* nouveau_fence_wait will create a new c...
2014 Jun 12
6
[Bug 79946] New: Segmentation violation at nouveau_fence.c
...mesa-20140509 Chipset C51 (NV4E) Family NV40 Video card NVIDIA GeForce 6150 LE Running ~/intel/ism/bin/intel64/intelremotedialog from Intel VTune Amplifier XE 2013 command amplxe-gui on Linux Fedora 20. Segmentation violation at nouveau_fence.c:226 "if (screen->fence.current->state < NOUVEAU_FENCE_STATE_EMITTING)" pointer screen is nil because after nv30/nv30_context.c:44 "nv30 = container_of(push->user_priv, nv30, bufctx);" assert(nv30->screen) fails. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachm...
2014 Jul 10
3
[PATCH 0/3] nvc0: ARB_(multi_)draw_indirect support
The main patches are from Christoph. Unfortunately they're a little beyond my understanding of all the vertex-related details, but they generally seemed fine. I'm just going to push these unless someone steps up to review them. Christoph Bumiller (2): nvc0: add support for indirect drawing nvc0: fix translate path for PRIM_RESTART_WITH_DRAW_ARRAYS Ilia Mirkin (1): nouveau: check if
2016 Jun 05
0
[RFC PATCH] nouveau: add locking
...,9 @@ nouveau_fence_del(struct nouveau_fence *fence) struct nouveau_fence *it; struct nouveau_screen *screen = fence->screen; + /* XXX This can race against fence_update. But fence_update can also call + * into this, so ... be have to be careful. + */ if (fence->state == NOUVEAU_FENCE_STATE_EMITTED || fence->state == NOUVEAU_FENCE_STATE_FLUSHED) { if (fence == screen->fence.head) { @@ -123,6 +128,7 @@ nouveau_fence_update(struct nouveau_screen *screen, bool flushed) return; screen->fence.sequence_ack = sequence; + pipe_mutex_lock(screen->fence.list...
2014 Jun 17
2
[PATCH try 2 1/2] gallium/nouveau: decouple nouveau_fence implementation from screen
...nce; else - screen->fence.head = fence; + mgr->head = fence; - screen->fence.tail = fence; + mgr->tail = fence; - screen->fence.emit(&screen->base, &fence->sequence); + mgr->emit(mgr, &fence->sequence); assert(fence->state == NOUVEAU_FENCE_STATE_EMITTING); fence->state = NOUVEAU_FENCE_STATE_EMITTED; @@ -109,19 +109,19 @@ void nouveau_fence_del(struct nouveau_fence *fence) { struct nouveau_fence *it; - struct nouveau_screen *screen = fence->screen; + struct nouveau_fence_mgr *mgr = fence->mgr; if (fence->state ==...