diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2012-03-21 14:56:55 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2012-03-23 00:20:13 +1000 |
commit | ab7291d368ddc66ad21c5ad5caa0faeee42ccaf1 (patch) | |
tree | b79ee99696d39261a7fdeae89cfcbfee15452838 | |
parent | fe7e0425a4a43b2a7d4743a0a90a86724c3b6775 (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.c | 34 |
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); |