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);
>>...
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