modesetting: Create new EGL screen in drmmode_xf86crtc_resize

If we don't glamor_egl_create_textured_screen_ext() in
drmmode_xf86crtc_resize() we end up with a black screen and no client
window(s) visible.

Signed-off-by: Daniel Martin <consume.noise@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Daniel Martin 2014-11-28 11:20:48 +01:00 committed by Keith Packard
parent 0d63fa5850
commit 8a16620dcd

View File

@ -49,6 +49,11 @@
#include "driver.h"
#ifdef GLAMOR
#define GLAMOR_FOR_XORG 1
#include "glamor.h"
#endif
static struct dumb_bo *
dumb_bo_create(int fd,
const unsigned width, const unsigned height, const unsigned bpp)
@ -1243,6 +1248,20 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
pitch, drmmode->shadow_fb);
}
#ifdef GLAMOR
if (drmmode->glamor) {
if (!glamor_egl_create_textured_screen_ext(screen,
drmmode->front_bo->handle,
scrn->displayWidth *
scrn->bitsPerPixel / 8,
NULL)) {
xf86DrvMsg(scrn->scrnIndex, X_ERROR,
"glamor_egl_create_textured_screen_ext() failed\n");
goto fail;
}
}
#endif
for (i = 0; i < xf86_config->num_crtc; i++) {
xf86CrtcPtr crtc = xf86_config->crtc[i];