[PATCH xf86-video-nouveau] nv4/exa: tiling is unsupported pre-nv10, reduce alignment requirements

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]<

 



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@xxxxxxxxxxxx>
Cc: Marcin Kościelnicki <koriakin@xxxxxxxx>
Cc: Francisco Jerez <currojerez@xxxxxxxxxx>
---
 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

_______________________________________________
Nouveau mailing list
Nouveau@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/nouveau




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux