modesetting: fix shadow resizing.
if we hotplugged and output, the shadow got disabled by accident. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
f3b9e52b29
commit
c5529d68c5
|
@ -984,8 +984,21 @@ drmmode_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
|
||||||
if (!new_pixels)
|
if (!new_pixels)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
screen->ModifyPixmapHeader(ppix, width, height, -1, -1,
|
if (!drmmode->shadow_enable)
|
||||||
pitch, new_pixels);
|
screen->ModifyPixmapHeader(ppix, width, height, -1, -1,
|
||||||
|
pitch, new_pixels);
|
||||||
|
else {
|
||||||
|
void *new_shadow;
|
||||||
|
uint32_t size = scrn->displayWidth * scrn->virtualY *
|
||||||
|
((scrn->bitsPerPixel + 7) >> 3);
|
||||||
|
new_shadow = calloc(1, size);
|
||||||
|
if (new_shadow == NULL)
|
||||||
|
goto fail;
|
||||||
|
free(drmmode->shadow_fb);
|
||||||
|
drmmode->shadow_fb = new_shadow;
|
||||||
|
screen->ModifyPixmapHeader(ppix, width, height, -1, -1,
|
||||||
|
pitch, drmmode->shadow_fb);
|
||||||
|
}
|
||||||
|
|
||||||
#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1,9,99,1,0)
|
#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1,9,99,1,0)
|
||||||
scrn->pixmapPrivate.ptr = ppix->devPrivate.ptr;
|
scrn->pixmapPrivate.ptr = ppix->devPrivate.ptr;
|
||||||
|
|
Loading…
Reference in New Issue