search for: nouveau_pushbuf_validate

Displaying 15 results from an estimated 15 matches for "nouveau_pushbuf_validate".

2015 Oct 10
3
[PATCH] nv50, nvc0: don't base decisions on available pushbuf space
...16); - nr = MIN2(count, nr - 1); - nr = MIN2(nr, NV04_PFIFO_MAX_PACKET_LEN); + unsigned nr = MIN2(count, NV04_PFIFO_MAX_PACKET_LEN); BEGIN_NI04(push, NV50_2D(SIFC_DATA), nr); PUSH_DATAp(push, src, nr); @@ -395,12 +388,9 @@ nv50_cb_push(struct nouveau_context *nv, nouveau_pushbuf_validate(push); while (words) { - unsigned nr; - - nr = PUSH_AVAIL(push); - nr = MIN2(nr - 7, words); - nr = MIN2(nr, NV04_PFIFO_MAX_PACKET_LEN - 1); + unsigned nr = MIN2(words, NV04_PFIFO_MAX_PACKET_LEN); + PUSH_SPACE(push, nr + 7); BEGIN_NV04(push, NV50_3D(CB_D...
2015 Oct 10
2
[PATCH] nv50, nvc0: don't base decisions on available pushbuf space
...= MIN2(nr, NV04_PFIFO_MAX_PACKET_LEN); >> + unsigned nr = MIN2(count, NV04_PFIFO_MAX_PACKET_LEN); >> BEGIN_NI04(push, NV50_2D(SIFC_DATA), nr); >> PUSH_DATAp(push, src, nr); >> @@ -395,12 +388,9 @@ nv50_cb_push(struct nouveau_context *nv, >> nouveau_pushbuf_validate(push); >> while (words) { >> - unsigned nr; >> - >> - nr = PUSH_AVAIL(push); >> - nr = MIN2(nr - 7, words); >> - nr = MIN2(nr, NV04_PFIFO_MAX_PACKET_LEN - 1); >> + unsigned nr = MIN2(words, NV04_PFIFO_MAX_PACKET_LEN); >&gt...
2015 Dec 16
0
[libdrm v3 13/14] nouveau: clean up nouveau.h, noting deprecated members/functions
...buffer context, and * validated it against the current push buffer. @@ -266,10 +223,54 @@ int nouveau_pushbuf_refn(struct nouveau_pushbuf *, void nouveau_pushbuf_reloc(struct nouveau_pushbuf *, struct nouveau_bo *, uint32_t data, uint32_t flags, uint32_t vor, uint32_t tor); -int nouveau_pushbuf_validate(struct nouveau_pushbuf *); +int nouveau_pushbuf_validate(struct nouveau_pushbuf *); uint32_t nouveau_pushbuf_refd(struct nouveau_pushbuf *, struct nouveau_bo *); -int nouveau_pushbuf_kick(struct nouveau_pushbuf *, struct nouveau_object *channel); +int nouveau_pushbuf_kick(struct nouveau_pushbuf *...
2015 Mar 14
1
[PATCH ddx] Add support for VRAM-less devices to the ddx
...EAU_BO_RD); + PUSH_REFN (push, dst, NOUVEAU_BO_APER | NOUVEAU_BO_WR); if (pmpict && pmpict->pDrawable) PUSH_REFN (push, nouveau_pixmap_bo(pmpix), - NOUVEAU_BO_VRAM | NOUVEAU_BO_RD); + NOUVEAU_BO_APER | NOUVEAU_BO_RD); nouveau_pushbuf_bufctx(push, pNv->bufctx); if (nouveau_pushbuf_validate(push)) { diff --git a/src/nvc0_xv.c b/src/nvc0_xv.c index d1d8f18..31e2309 100644 --- a/src/nvc0_xv.c +++ b/src/nvc0_xv.c @@ -69,9 +69,9 @@ nvc0_xv_image_put(ScrnInfoPtr pScrn, NVPtr pNv = NVPTR(pScrn); struct nouveau_bo *dst = nouveau_pixmap_bo(ppix); struct nouveau_pushbuf_refn refs[] = { -...
2018 Jan 11
0
[PATCH libdrm] nouveau: Support fence FDs
...OUVEAU_GEM_PUSHBUF2 0x45 #if defined(__cplusplus) } diff --git a/nouveau/nouveau.h b/nouveau/nouveau.h index 335ce77dca77..70d680700faf 100644 --- a/nouveau/nouveau.h +++ b/nouveau/nouveau.h @@ -226,6 +226,8 @@ void nouveau_pushbuf_reloc(struct nouveau_pushbuf *, struct nouveau_bo *, int nouveau_pushbuf_validate(struct nouveau_pushbuf *); uint32_t nouveau_pushbuf_refd(struct nouveau_pushbuf *, struct nouveau_bo *); int nouveau_pushbuf_kick(struct nouveau_pushbuf *, struct nouveau_object *chan); +int nouveau_pushbuf_kick_fence(struct nouveau_pushbuf *, + struct nouveau_object...
2014 Jul 31
1
[libdrm PATCH 1/3] nouveau: Only export public functions.
...ublic void nouveau_pushbuf_reloc(struct nouveau_pushbuf *push, struct nouveau_bo *bo, uint32_t data, uint32_t flags, uint32_t vor, uint32_t tor) { @@ -743,13 +743,13 @@ nouveau_pushbuf_reloc(struct nouveau_pushbuf *push, struct nouveau_bo *bo, push->cur++; } -int +drm_public int nouveau_pushbuf_validate(struct nouveau_pushbuf *push) { return pushbuf_validate(push, true); } -uint32_t +drm_public uint32_t nouveau_pushbuf_refd(struct nouveau_pushbuf *push, struct nouveau_bo *bo) { struct drm_nouveau_gem_pushbuf_bo *kref; @@ -766,7 +766,7 @@ nouveau_pushbuf_refd(struct nouveau_pushbuf *push,...
2016 Feb 20
2
[Bug 94225] New: Mesa crash with "nouveau" driver and Minetest
...at pushbuf.c:402 #7 0xb5b8ad27 in nouveau_pushbuf_space (push=push at entry=0x8614038, dwords=0, relocs=0, pushes=<optimized out>, pushes at entry=0) at pushbuf.c:676 #8 0xb5b8ade3 in pushbuf_validate (push=0x8614038, retry=<optimized out>) at pushbuf.c:492 #9 0xb5b8b13e in nouveau_pushbuf_validate (push=0x8614038) at pushbuf.c:749 #10 0xb5cf3906 in nvc0_state_validate (nvc0=nvc0 at entry=0x8625880, mask=mask at entry=4294967295, words=words at entry=8) at nvc0/nvc0_state_validate.c:619 #11 0xb5cfdc1c in nvc0_draw_vbo (pipe=0x8625880, info=0xbfffdca0) at nvc0/nvc0_vbo.c:829 #12 0...
2015 Nov 27
14
[libdrm v2 01/14] nouveau: import and install a selection of nvif headers from the kernel
From: Ben Skeggs <bskeggs at redhat.com> This commit also modifies the install path of the main libdrm_nouveau header to be under a nouveau/ subdirectory. Signed-off-by: Ben Skeggs <bskeggs at redhat.com> --- include/drm/nouveau_drm.h | 1 + nouveau/Makefile.am | 11 +++- nouveau/libdrm_nouveau.pc.in | 2 +- nouveau/nvif/cl0080.h | 45 ++++++++++++++
2015 Nov 26
18
[libdrm 01/13] nouveau: move more abi16-specific logic into abi16.c
From: Ben Skeggs <bskeggs at redhat.com> Signed-off-by: Ben Skeggs <bskeggs at redhat.com> --- nouveau/abi16.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++----- nouveau/nouveau.c | 56 +++++++------------------------------------------ nouveau/private.h | 7 ++----- 3 files changed, 67 insertions(+), 58 deletions(-) diff --git a/nouveau/abi16.c b/nouveau/abi16.c index
2015 Dec 16
16
[libdrm v3 01/14] nouveau: import and install a selection of nvif headers from the kernel
From: Ben Skeggs <bskeggs at redhat.com> This commit also modifies the install path of the main libdrm_nouveau header to be under a nouveau/ subdirectory. Signed-off-by: Ben Skeggs <bskeggs at redhat.com> --- include/drm/nouveau_drm.h | 1 + nouveau/Makefile.am | 11 +++- nouveau/libdrm_nouveau.pc.in | 2 +- nouveau/nvif/cl0080.h | 45 ++++++++++++++
2014 Jun 17
0
[PATCH try 2 2/2] gallium/nouveau: move pushbuf and fences to context
...ext *nv50, uint32_t mask, unsigned words) PUSH_DATA (nv50->base.pushbuf, 0); } - nv50_bufctx_fence(nv50->bufctx_3d, FALSE); + nv50_bufctx_fence(nv50, nv50->bufctx_3d, FALSE); } nouveau_pushbuf_bufctx(nv50->base.pushbuf, nv50->bufctx_3d); ret = nouveau_pushbuf_validate(nv50->base.pushbuf); if (unlikely(nv50->state.flushed)) { nv50->state.flushed = FALSE; - nv50_bufctx_fence(nv50->bufctx_3d, TRUE); + nv50_bufctx_fence(nv50, nv50->bufctx_3d, TRUE); } return !ret; } diff --git a/src/gallium/drivers/nouveau/nv50/nv50_sur...
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 +-
2014 Jun 21
3
[Mesa-dev] [PATCH try 2 2/2] gallium/nouveau: move pushbuf and fences to context
...ds) > PUSH_DATA (nv50->base.pushbuf, 0); > } > > - nv50_bufctx_fence(nv50->bufctx_3d, FALSE); > + nv50_bufctx_fence(nv50, nv50->bufctx_3d, FALSE); > } > nouveau_pushbuf_bufctx(nv50->base.pushbuf, nv50->bufctx_3d); > ret = nouveau_pushbuf_validate(nv50->base.pushbuf); > > if (unlikely(nv50->state.flushed)) { > nv50->state.flushed = FALSE; > - nv50_bufctx_fence(nv50->bufctx_3d, TRUE); > + nv50_bufctx_fence(nv50, nv50->bufctx_3d, TRUE); > } > return !ret; > } > diff --git...
2014 Sep 26
14
[RFC] Explicit synchronization for Nouveau
Hi guys, I'd like to start a new thread about explicit fence synchronization. This time with a Nouveau twist. :-) First, let me define what I understand by implicit/explicit sync: Implicit synchronization * Fences are attached to buffers * Kernel manages fences automatically based on buffer read/write access Explicit synchronization * Fences are passed around independently * Kernel takes
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