Revert to origin xvmc setup steps
We have to grab xvadaptor's PutImage earlier than xv init, otherwise no chance to do that..
This commit is contained in:
parent
1e0ff38f44
commit
320b7f08f4
|
|
@ -58,8 +58,6 @@ Bool intel_xvmc_probe(ScrnInfoPtr pScrn)
|
|||
else
|
||||
ret = intel_xvmc_set_driver(&i965_xvmc_driver);
|
||||
*/
|
||||
if (ret)
|
||||
pI830->XvMCEnabled = TRUE;
|
||||
} else {
|
||||
ErrorF("Your chipset doesn't support XvMC.\n");
|
||||
return FALSE;
|
||||
|
|
@ -74,10 +72,9 @@ void intel_xvmc_finish(ScrnInfoPtr pScrn)
|
|||
(*xvmc_driver->fini)(pScrn);
|
||||
}
|
||||
|
||||
Bool intel_xvmc_init(ScreenPtr pScreen, XF86VideoAdaptorPtr xv_adaptor)
|
||||
Bool intel_xvmc_xv_init(ScreenPtr pScreen, XF86VideoAdaptorPtr xv_adaptor)
|
||||
{
|
||||
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
|
||||
I830Ptr pI830 = I830PTR(pScrn);
|
||||
|
||||
if (!xvmc_driver) {
|
||||
ErrorF("Failed to probe XvMC driver.\n");
|
||||
|
|
@ -88,11 +85,22 @@ Bool intel_xvmc_init(ScreenPtr pScreen, XF86VideoAdaptorPtr xv_adaptor)
|
|||
ErrorF("XvMC driver initialize failed.\n");
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Bool intel_xvmc_init(ScreenPtr pScreen)
|
||||
{
|
||||
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
|
||||
I830Ptr pI830 = I830PTR(pScrn);
|
||||
|
||||
if (!xvmc_driver)
|
||||
return FALSE;
|
||||
|
||||
if (xf86XvMCScreenInit(pScreen, 1, &xvmc_driver->adaptor)) {
|
||||
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
|
||||
"[XvMC] %s driver initialized.\n",
|
||||
xvmc_driver->name);
|
||||
pI830->XvMCEnabled = TRUE;
|
||||
} else {
|
||||
intel_xvmc_finish(pScrn);
|
||||
pI830->XvMCEnabled = FALSE;
|
||||
|
|
|
|||
|
|
@ -51,7 +51,8 @@ extern struct intel_xvmc_driver i915_xvmc_driver;
|
|||
|
||||
extern Bool intel_xvmc_set_driver(struct intel_xvmc_driver *);
|
||||
extern Bool intel_xvmc_probe(ScrnInfoPtr);
|
||||
extern Bool intel_xvmc_init(ScreenPtr, XF86VideoAdaptorPtr);
|
||||
extern Bool intel_xvmc_xv_init(ScreenPtr, XF86VideoAdaptorPtr);
|
||||
extern Bool intel_xvmc_init(ScreenPtr);
|
||||
extern void intel_xvmc_finish(ScrnInfoPtr);
|
||||
extern int intel_xvmc_putimage_size(ScrnInfoPtr);
|
||||
|
||||
|
|
|
|||
|
|
@ -560,6 +560,7 @@ I830InitVideo(ScreenPtr pScreen)
|
|||
XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL;
|
||||
XF86VideoAdaptorPtr overlayAdaptor = NULL, texturedAdaptor = NULL;
|
||||
int num_adaptors;
|
||||
Bool ret = FALSE;
|
||||
|
||||
#if 0
|
||||
{
|
||||
|
|
@ -622,15 +623,19 @@ I830InitVideo(ScreenPtr pScreen)
|
|||
}
|
||||
I830InitOffscreenImages(pScreen);
|
||||
}
|
||||
#ifdef XvMCExtension
|
||||
if (intel_xvmc_probe(pScrn)) {
|
||||
if (texturedAdaptor)
|
||||
ret = intel_xvmc_xv_init(pScreen, texturedAdaptor);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (num_adaptors)
|
||||
xf86XVScreenInit(pScreen, adaptors, num_adaptors);
|
||||
|
||||
#ifdef XvMCExtension
|
||||
if (intel_xvmc_probe(pScrn)) {
|
||||
if (texturedAdaptor)
|
||||
intel_xvmc_init(pScreen, texturedAdaptor);
|
||||
}
|
||||
if (ret)
|
||||
intel_xvmc_init(pScreen);
|
||||
#endif
|
||||
xfree(adaptors);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue