Displaying 15 results from an estimated 15 matches for "nouveau_pushbuf_valid".
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(C...
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_pushbu...
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_obj...
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 *pu...
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
#1...
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_...
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 --g...
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