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)
|
||||
goto fail;
|
||||
|
||||
screen->ModifyPixmapHeader(ppix, width, height, -1, -1,
|
||||
pitch, new_pixels);
|
||||
if (!drmmode->shadow_enable)
|
||||
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)
|
||||
scrn->pixmapPrivate.ptr = ppix->devPrivate.ptr;
|
||||
|
|
Loading…
Reference in New Issue