nvc0: fix mp_stack_bo relocation
authorBen Skeggs <bskeggs@redhat.com>
Thu, 13 Jan 2011 03:23:55 +0000 (13:23 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 13 Jan 2011 03:31:29 +0000 (13:31 +1000)
Fixes a PT_NOT_PRESENT error cause by:
- allocating in VRAM
- emitting GART relocs to 0x17bc/0x17c0, moving the buffer
- telling the bufmgr that the buffer should be in VRAM when we use it,
  but not correcting the value sent to 0x17bc/0x17c0.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
src/gallium/drivers/nvc0/nvc0_screen.c

index c191790ab148c8f7fc7d5fb43fbc5cf92a3282e0..928ea7eac339ab211ee2c2aa8c8e92f8b42cbd4a 100644 (file)
@@ -503,8 +503,8 @@ nvc0_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
       goto fail;
 
    BEGIN_RING(chan, RING_3D_(0x17bc), 3);
-   OUT_RELOCh(chan, screen->mp_stack_bo, 0, NOUVEAU_BO_GART | NOUVEAU_BO_RDWR);
-   OUT_RELOCl(chan, screen->mp_stack_bo, 0, NOUVEAU_BO_GART | NOUVEAU_BO_RDWR);
+   OUT_RELOCh(chan, screen->mp_stack_bo, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_RDWR);
+   OUT_RELOCl(chan, screen->mp_stack_bo, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_RDWR);
    OUT_RING  (chan, 1);
 
    ret = nouveau_bo_new(dev, NOUVEAU_BO_VRAM, 1 << 17, 1 << 17, &screen->txc);