Mesa (master): nouveau: allow NV3x's to be used with nouveau_vieux
Ilia Mirkin
imirkin at kemper.freedesktop.org
Tue Aug 30 04:46:55 UTC 2016
Module: Mesa
Branch: master
Commit: 91681302d0308a70aece883c3b56a18f9a44041f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=91681302d0308a70aece883c3b56a18f9a44041f
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date: Sat Aug 27 19:46:25 2016 -0400
nouveau: allow NV3x's to be used with nouveau_vieux
NV34 and possibly other NV3x hardware has the capability of exposing the
NV25 graph class. This allows forcing nouveau_vieux to be used instead
of the gallium driver, primarily for testing purposes. (Among other
things, NV2x only ever came as AGP or inside an Xbox, never PCI/PCIe).
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
src/loader/pci_id_driver_map.c | 4 +++-
src/mesa/drivers/dri/nouveau/nouveau_screen.c | 1 +
src/mesa/drivers/dri/nouveau/nv04_surface.c | 4 +++-
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/loader/pci_id_driver_map.c b/src/loader/pci_id_driver_map.c
index 3c4657f..8b2079e 100644
--- a/src/loader/pci_id_driver_map.c
+++ b/src/loader/pci_id_driver_map.c
@@ -25,6 +25,7 @@ int is_nouveau_vieux(int fd);
#ifdef HAVE_LIBDRM
+#include <stdlib.h>
#include <xf86drm.h>
#include <nouveau_drm.h>
@@ -45,7 +46,8 @@ int
is_nouveau_vieux(int fd)
{
int chipset = nouveau_chipset(fd);
- return chipset > 0 && chipset < 0x30;
+ return (chipset > 0 && chipset < 0x30) ||
+ (chipset < 0x40 && getenv("NOUVEAU_VIEUX") != NULL);
}
#else
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_screen.c b/src/mesa/drivers/dri/nouveau/nouveau_screen.c
index 0545e68..de578a5 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_screen.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_screen.c
@@ -130,6 +130,7 @@ nouveau_init_screen2(__DRIscreen *dri_screen)
dri_screen->max_gl_es1_version = 10;
break;
case 0x20:
+ case 0x30:
screen->driver = &nv20_driver;
dri_screen->max_gl_compat_version = 13;
dri_screen->max_gl_es1_version = 10;
diff --git a/src/mesa/drivers/dri/nouveau/nv04_surface.c b/src/mesa/drivers/dri/nouveau/nv04_surface.c
index 968c05f..b1f0ea0 100644
--- a/src/mesa/drivers/dri/nouveau/nv04_surface.c
+++ b/src/mesa/drivers/dri/nouveau/nv04_surface.c
@@ -577,8 +577,10 @@ nv04_surface_init(struct gl_context *ctx)
/* Swizzled surface. */
if (context_chipset(ctx) < 0x20)
class = NV04_SURFACE_SWZ_CLASS;
- else
+ else if (context_chipset (ctx) < 0x30)
class = NV20_SURFACE_SWZ_CLASS;
+ else
+ class = NV30_SURFACE_SWZ_CLASS;
ret = nouveau_object_new(chan, handle++, class, NULL, 0, &hw->swzsurf);
if (ret)
More information about the mesa-commit
mailing list