summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2012-03-21 14:56:55 +1000
committerBen Skeggs <bskeggs@redhat.com>2012-03-23 00:20:13 +1000
commitab7291d368ddc66ad21c5ad5caa0faeee42ccaf1 (patch)
treeb79ee99696d39261a7fdeae89cfcbfee15452838
parentfe7e0425a4a43b2a7d4743a0a90a86724c3b6775 (diff)
xv: don't try to init textured video without 3d engine object
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--src/nouveau_xv.c34
1 files changed, 23 insertions, 11 deletions
diff --git a/src/nouveau_xv.c b/src/nouveau_xv.c
index ad203a0..54ae3be 100644
--- a/src/nouveau_xv.c
+++ b/src/nouveau_xv.c
@@ -2022,6 +2022,28 @@ NV50SetupTexturedVideo (ScreenPtr pScreen)
return adapt;
}
+void
+NVSetupTexturedVideo (ScreenPtr pScreen, XF86VideoAdaptorPtr *textureAdaptor)
+{
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ NVPtr pNv = NVPTR(pScrn);
+
+ if (!pNv->Nv3D)
+ return;
+
+ if (pNv->Architecture == NV_ARCH_30) {
+ textureAdaptor[0] = NV30SetupTexturedVideo(pScreen, FALSE);
+ textureAdaptor[1] = NV30SetupTexturedVideo(pScreen, TRUE);
+ } else
+ if (pNv->Architecture == NV_ARCH_40) {
+ textureAdaptor[0] = NV40SetupTexturedVideo(pScreen, FALSE);
+ textureAdaptor[1] = NV40SetupTexturedVideo(pScreen, TRUE);
+ } else
+ if (pNv->Architecture >= NV_ARCH_50) {
+ textureAdaptor[0] = NV50SetupTexturedVideo(pScreen);
+ }
+}
+
/**
* NVInitVideo
* tries to initialize the various supported adapters
@@ -2056,17 +2078,7 @@ NVInitVideo(ScreenPtr pScreen)
blitAdaptor = NVSetupBlitVideo(pScreen);
}
- if (pNv->Architecture == NV_ARCH_30) {
- textureAdaptor[0] = NV30SetupTexturedVideo(pScreen, FALSE);
- textureAdaptor[1] = NV30SetupTexturedVideo(pScreen, TRUE);
- } else
- if (pNv->Architecture == NV_ARCH_40) {
- textureAdaptor[0] = NV40SetupTexturedVideo(pScreen, FALSE);
- textureAdaptor[1] = NV40SetupTexturedVideo(pScreen, TRUE);
- } else
- if (pNv->Architecture >= NV_ARCH_50) {
- textureAdaptor[0] = NV50SetupTexturedVideo(pScreen);
- }
+ NVSetupTexturedVideo(pScreen, textureAdaptor);
}
num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors);