Displaying 8 results from an estimated 8 matches for "nouveau_pushbuf_emit_reloc".
2009 Dec 05
1
[PATCH] nouveau: avoid running out of relocs (attempt 4)
...r, so->cur_reloc))) {
+ debug_printf("so_emit failed marker emit with error %d\n", ret);
+ return;
+ }
pb->remaining -= nr;
memcpy(pb->cur, so->push, nr * 4);
for (i = 0; i < so->cur_reloc; i++) {
struct nouveau_stateobj_reloc *r = &so->reloc[i];
- nouveau_pushbuf_emit_reloc(chan, pb->cur + r->offset,
+ if ((ret = nouveau_pushbuf_emit_reloc(chan, pb->cur + r->offset,
r->bo, r->data, 0, r->flags,
- r->vor, r->tor);
+ r->vor, r->tor))) {
+ debug_printf("so_emit failed reloc with error %d\n", ret);
+ r...
2010 Jan 29
2
[PATCH 1/2] libdrm/nouveau: new optimized libdrm pushbuffer ABI
...nr_relocs = nvpb->marker_relocs;
/* reset pushbuf back to last marker */
- nvpb->base.cur = nvpb->pushbuf + nvpb->marker;
- nvpb->base.remaining = nvpb->size - nvpb->marker;
+ chan->cur = nvpb->pushbuf + nvpb->marker;
nvpb->marker = 0;
}
@@ -355,7 +350,7 @@ nouveau_pushbuf_emit_reloc(struct nouveau_channel *chan, void *ptr,
struct nouveau_bo *bo, uint32_t data, uint32_t data2,
uint32_t flags, uint32_t vor, uint32_t tor)
{
- struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(chan->pushbuf);
+ struct nouveau_pushbuf_priv *nvpb = &nouveau_channel(chan)->p...
2009 Dec 13
3
[PATCH] nouveau: avoid running out of relocs (attempt 5)
...r, so->cur_reloc))) {
+ debug_printf("so_emit failed marker emit with error %d\n", ret);
+ return;
+ }
pb->remaining -= nr;
memcpy(pb->cur, so->push, nr * 4);
for (i = 0; i < so->cur_reloc; i++) {
struct nouveau_stateobj_reloc *r = &so->reloc[i];
- nouveau_pushbuf_emit_reloc(chan, pb->cur + r->offset,
+ if ((ret = nouveau_pushbuf_emit_reloc(chan, pb->cur + r->offset,
r->bo, r->data, 0, r->flags,
- r->vor, r->tor);
+ r->vor, r->tor))) {
+ debug_printf("so_emit failed reloc with error %d\n", ret);
+ p...
2009 Dec 05
0
[PATCH] nouveau: avoid running out of relocs (attempt 3)
...(pb->remaining < nr) {
+ debug_printf("so_emit ran out of space\n");
+ return;
+ }
pb->remaining -= nr;
memcpy(pb->cur, so->push, nr * 4);
for (i = 0; i < so->cur_reloc; i++) {
struct nouveau_stateobj_reloc *r = &so->reloc[i];
+ int ret = 0;
- nouveau_pushbuf_emit_reloc(chan, pb->cur + r->offset,
+ if ((ret = nouveau_pushbuf_emit_reloc(chan, pb->cur + r->offset,
r->bo, r->data, 0, r->flags,
- r->vor, r->tor);
+ r->vor, r->tor))) {
+ debug_printf("so_emit failed reloc with error %d\n", ret);
+ r...
2013 Apr 30
1
[Bug 64074] New: Mesalib Installation Error
...bo.h"
#include "nouveau_grobj.h"
int
nouveau_pushbuf_flush(struct nouveau_channel *, unsigned min);
int
nouveau_pushbuf_marker_emit(struct nouveau_channel *chan,
unsigned wait_dwords, unsigned wait_relocs);
void
nouveau_pushbuf_marker_undo(struct nouveau_channel *chan);
int
nouveau_pushbuf_emit_reloc(struct nouveau_channel *, void *ptr,
struct nouveau_bo *, uint32_t data, uint32_t data2,
uint32_t flags, uint32_t vor, uint32_t tor);
int
nouveau_pushbuf_submit(struct nouveau_channel *chan, struct nouveau_bo *bo,
unsigned offset, unsigned length);
/* Push buffer access macro...
2009 Dec 18
1
[PATCH] nouveau: don't emit reloc markers for bo's that are mapped
...p;so->reloc[i];
+ /* This is probably a vbo which has caused a pushbuf flush
+ * before mapping. Don't try to reloc it again, it will cause
+ * problems, because important stuff is skipped.
+ */
+ if (r->bo->map) {
+ pb->remaining += 2;
+ continue;
+ }
+
if ((ret = nouveau_pushbuf_emit_reloc(chan, pb->cur++, r->bo,
r->packet, 0,
(r->flags & (NOUVEAU_BO_VRAM |
--
1.6.5.4
2013 Apr 29
2
[Bug 64042] New: Mesalib Installation Error
...u_bo_unmap'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_channel_free'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_grobj_free'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_device_open_existing'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_pushbuf_emit_reloc'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_device_close'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_channel_alloc'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_bo_handle_get'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_bo_map...
2009 Dec 30
4
[PATCH 1/3] nv50: remove vtxbuf stateobject after a referenced vtxbuf is mapped
- This avoids problematic "reloc'ed while mapped" messages and
some associated corruption as well.
Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
---
src/gallium/drivers/nouveau/nouveau_screen.c | 21 +++++++++++++++++++++
src/gallium/drivers/nouveau/nouveau_screen.h | 3 +++
src/gallium/drivers/nouveau/nouveau_stateobj.h | 13 +++++++++++++