From ab7291d368ddc66ad21c5ad5caa0faeee42ccaf1 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Wed, 21 Mar 2012 14:56:55 +1000 Subject: xv: don't try to init textured video without 3d engine object Signed-off-by: Ben Skeggs --- src/nouveau_xv.c | 34 +++++++++++++++++++++++----------- 1 file 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); -- cgit v1.2.1