nvfx: dont swizzle stuff into GART
authorXavier Chantry <chantry.xavier@gmail.com>
Wed, 14 Apr 2010 21:44:22 +0000 (23:44 +0200)
committerLuca Barbieri <luca@luca-barbieri.com>
Thu, 15 Apr 2010 06:15:22 +0000 (08:15 +0200)
swzsurf doesn't support GART

Thanks to Marcin Koƛcielnicki <koriakin@0x04.net> for spotting that !

This fixes corruption in etracer and the following related errors :
[14381.551927] [drm] nouveau 0000:01:00.0: PGRAPH_ERROR - nSource:
PROTECTION_ERROR, nStatus: INVALID_STATE
[14381.551945] [drm] nouveau 0000:01:00.0: PGRAPH_ERROR - Ch 2/2 Class
0x039e Mthd 0x0184 Data 0x00001cd9:0x00001cd9

Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Adapted by Luca Barbieri for mesa master.

src/gallium/drivers/nvfx/nv04_surface_2d.c

index 53453f260e0188e08a6c1522bf802ae7e98fb436..22cfa0ecefa0e907d154f80b969a41cdf82ae88a 100644 (file)
@@ -148,7 +148,7 @@ nv04_surface_copy_swizzle(struct nv04_surface_2d *ctx,
 
        BEGIN_RING(chan, swzsurf, NV04_SWIZZLED_SURFACE_DMA_IMAGE, 1);
        OUT_RELOCo(chan, dst_bo,
-                        NOUVEAU_BO_GART | NOUVEAU_BO_VRAM | NOUVEAU_BO_WR);
+                        NOUVEAU_BO_VRAM | NOUVEAU_BO_WR);
 
        BEGIN_RING(chan, swzsurf, NV04_SWIZZLED_SURFACE_FORMAT, 1);
        OUT_RING  (chan, nv04_surface_format(dst->format) |
@@ -171,7 +171,7 @@ nv04_surface_copy_swizzle(struct nv04_surface_2d *ctx,
 
            BEGIN_RING(chan, swzsurf, NV04_SWIZZLED_SURFACE_OFFSET, 1);
            OUT_RELOCl(chan, dst_bo, dst->offset,
-                             NOUVEAU_BO_GART | NOUVEAU_BO_VRAM | NOUVEAU_BO_WR);
+                             NOUVEAU_BO_VRAM | NOUVEAU_BO_WR);
 
            BEGIN_RING(chan, sifm, NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION, 9);
            OUT_RING  (chan, NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE);