diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 7867ddb..56dc93a 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -1016,7 +1016,7 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height) if (scrn->virtualX == width && scrn->virtualY == height) return TRUE; - if (pNv->Architecture >= NV_ARCH_50 && pNv->wfb_enabled) { + if (pNv->Architecture >= NV_ARCH_50 && pNv->tiled_scanout) { tile_mode = 4; tile_flags = 0x7000; //(scrn->bitsPerPixel == 16) ? 0x7000 : 0x7a00; ah = NOUVEAU_ALIGN(height, 1 << (tile_mode + 2)); diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c index 964bc73..ab86251 100644 --- a/src/nouveau_exa.c +++ b/src/nouveau_exa.c @@ -290,8 +290,13 @@ nouveau_exa_wait_marker(ScreenPtr pScreen, int marker) static Bool nouveau_exa_prepare_access(PixmapPtr ppix, int index) { + ScrnInfoPtr pScrn = xf86Screens[ppix->drawable.pScreen->myNum]; + NVPtr pNv = NVPTR(pScrn); struct nouveau_bo *bo = nouveau_pixmap_bo(ppix); + if (pNv->Architecture >= NV_ARCH_50 && !pNv->wfb_enabled) + return FALSE; + if (nouveau_bo_map(bo, NOUVEAU_BO_RDWR)) return FALSE; ppix->devPrivate.ptr = bo->map; diff --git a/src/nv_driver.c b/src/nv_driver.c index f60b6d9..cb842e2 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -757,7 +757,7 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) } if (!pNv->NoAccel && pNv->Architecture >= NV_ARCH_50) { - pNv->wfb_enabled = TRUE; + pNv->wfb_enabled = FALSE; /* UTS/DFS instead */ pNv->tiled_scanout = TRUE; }