mirror of
https://github.com/X11Libre/xf86-video-intel.git
synced 2026-04-14 10:54:23 +00:00
uxa: Setup acceleration functions prior to the damage layer
We need to install the acceleration functions so that they are wrapped
by the Damage layer. This fixes the corruption under a compositing WM
introduced in commit 8700673157.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reported-and-tested-by: Arkadiusz Miśkiewicz <arekm@maven.pl>
This commit is contained in:
@@ -1221,11 +1221,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
|
||||
|
||||
xf86SetBlackWhitePixels(screen);
|
||||
|
||||
miInitializeBackingStore(screen);
|
||||
xf86SetBackingStore(screen);
|
||||
xf86SetSilkenMouse(screen);
|
||||
miDCInitialize(screen, xf86GetPointerScreenFuncs());
|
||||
|
||||
if (!I830AccelInit(screen)) {
|
||||
xf86DrvMsg(scrn->scrnIndex, X_ERROR,
|
||||
"Hardware acceleration initialization failed\n");
|
||||
@@ -1240,6 +1235,11 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
|
||||
} else
|
||||
intel->batch_flush_notify = i830_batch_flush_notify;
|
||||
|
||||
miInitializeBackingStore(screen);
|
||||
xf86SetBackingStore(screen);
|
||||
xf86SetSilkenMouse(screen);
|
||||
miDCInitialize(screen, xf86GetPointerScreenFuncs());
|
||||
|
||||
xf86DrvMsg(scrn->scrnIndex, X_INFO, "Initializing HW Cursor\n");
|
||||
if (!xf86_cursors_init(screen, I810_CURSOR_X, I810_CURSOR_Y,
|
||||
(HARDWARE_CURSOR_TRUECOLOR_AT_8BPP |
|
||||
@@ -1325,7 +1325,7 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
|
||||
|
||||
intel->suspended = FALSE;
|
||||
|
||||
return TRUE;
|
||||
return uxa_resources_init(screen);
|
||||
}
|
||||
|
||||
static void i830AdjustFrame(int scrnIndex, int x, int y, int flags)
|
||||
|
||||
11
uxa/uxa.c
11
uxa/uxa.c
@@ -561,9 +561,6 @@ Bool uxa_driver_init(ScreenPtr screen, uxa_driver_t * uxa_driver)
|
||||
ShmRegisterFuncs(screen, &uxa_shm_funcs);
|
||||
#endif
|
||||
|
||||
if (!uxa_glyphs_init(screen))
|
||||
return FALSE;
|
||||
|
||||
LogMessage(X_INFO,
|
||||
"UXA(%d): Driver registered support for the following"
|
||||
" operations:\n", screen->myNum);
|
||||
@@ -584,6 +581,14 @@ Bool uxa_driver_init(ScreenPtr screen, uxa_driver_t * uxa_driver)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Bool uxa_resources_init(ScreenPtr screen)
|
||||
{
|
||||
if (!uxa_glyphs_init(screen))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* uxa_driver_fini tears down UXA on a given screen.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user