nvfx: dont swizzle stuff into GART

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.
This commit is contained in:
Xavier Chantry 2010-04-14 23:44:22 +02:00 committed by Luca Barbieri
parent 42d9f2bb7b
commit a1fdf12160

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