Use glamor_xv_core_init() returned value to disable Xv support early if glamor-xv is not usable.
Signed-off-by: Olivier Fourdan <ofour...@redhat.com> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=100710 --- hw/xfree86/drivers/modesetting/driver.c | 26 +++++++++++++------------- hw/xfree86/glamor_egl/glamor_xf86_xv.c | 3 ++- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c index d7030e5..5d21415 100644 --- a/hw/xfree86/drivers/modesetting/driver.c +++ b/hw/xfree86/drivers/modesetting/driver.c @@ -1377,6 +1377,19 @@ CreateScreenResources(ScreenPtr pScreen) pScrPriv->rrStartFlippingPixmapTracking = msStartFlippingPixmapTracking; +#ifdef GLAMOR + if (ms->drmmode.glamor) { + XF86VideoAdaptorPtr glamor_adaptor; + + glamor_adaptor = glamor_xv_init(pScreen, 16); + if (glamor_adaptor != NULL) + xf86XVScreenInit(pScreen, &glamor_adaptor, 1); + else + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Failed to initialize XV support.\n"); + } +#endif + return ret; } @@ -1666,19 +1679,6 @@ ScreenInit(ScreenPtr pScreen, int argc, char **argv) xf86DPMSInit(pScreen, xf86DPMSSet, 0); -#ifdef GLAMOR - if (ms->drmmode.glamor) { - XF86VideoAdaptorPtr glamor_adaptor; - - glamor_adaptor = glamor_xv_init(pScreen, 16); - if (glamor_adaptor != NULL) - xf86XVScreenInit(pScreen, &glamor_adaptor, 1); - else - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Failed to initialize XV support.\n"); - } -#endif - if (serverGeneration == 1) xf86ShowUnusedOptions(pScrn->scrnIndex, pScrn->options); diff --git a/hw/xfree86/glamor_egl/glamor_xf86_xv.c b/hw/xfree86/glamor_egl/glamor_xf86_xv.c index 8535fa0..4f5c76e 100644 --- a/hw/xfree86/glamor_egl/glamor_xf86_xv.c +++ b/hw/xfree86/glamor_egl/glamor_xf86_xv.c @@ -130,7 +130,8 @@ glamor_xv_init(ScreenPtr screen, int num_texture_ports) XF86VideoAdaptorPtr adapt; int i; - glamor_xv_core_init(screen); + if (!glamor_xv_core_init(screen)) + return NULL; adapt = calloc(1, sizeof(XF86VideoAdaptorRec) + num_texture_ports * (sizeof(glamor_port_private) + sizeof(DevUnion))); -- 2.9.3 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel