Ilia Mirkin
2019-Oct-12 20:17 UTC
[Nouveau] [PATCH xf86-video-nouveau] nv4/exa: tiling is unsupported pre-nv10, reduce alignment requirements
Commit 8c8f15c9d3 added increased pitch alignment requirements to handle nv10-nv40 tiling (which must have a small number * PoT pitch). While NV4/NV5 do have tiling, this was never supported in nouveau. This change enables 1920x1200 resolutions since the maximum surface pitch has to be strictly less than 8192. The current logic will align 1920*4 up to 8192 unnecessarily. Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu> Cc: Marcin KoĆcielnicki <koriakin at 0x04.net> Cc: Francisco Jerez <currojerez at riseup.net> --- src/nouveau_dri2.c | 5 ++++- src/nv_driver.c | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c index 3d53785..ce0a573 100644 --- a/src/nouveau_dri2.c +++ b/src/nouveau_dri2.c @@ -62,7 +62,10 @@ nouveau_dri2_create_buffer2(ScreenPtr pScreen, DrawablePtr pDraw, unsigned int a ppix->refcnt++; } else { int bpp; - unsigned int usage_hint = NOUVEAU_CREATE_PIXMAP_TILED; + unsigned int usage_hint = 0; + + if (pNv->Architecture >= NV_ARCH_10) + usage_hint |= NOUVEAU_CREATE_PIXMAP_TILED; /* 'format' is just depth (or 0, or maybe it depends on the caller) */ bpp = round_up_pow2(format ? format : pDraw->depth); diff --git a/src/nv_driver.c b/src/nv_driver.c index 42eb9db..a63674c 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -1082,7 +1082,8 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) pNv->wfb_enabled = xf86ReturnOptValBool( pNv->Options, OPTION_WFB, FALSE); - pNv->tiled_scanout = TRUE; + if (pNv->Architecture >= NV_ARCH_10) + pNv->tiled_scanout = TRUE; } pNv->ce_enabled -- 2.21.0
Apparently Analagous Threads
- [PATCH 1/2] exa: Pre-G80 tiling support.
- [PATCH] dri2: fix allocation of Z16 depth attachments
- [PATCH 1/2] accel_common: do not initialise the flags twice
- [PATCH ddx] Add support for VRAM-less devices to the ddx
- [Bug 14820] New: Double mouse cursor on nv4