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:
parent
0d63fa5850
commit
8a16620dcd
|
@ -49,6 +49,11 @@
|
||||||
|
|
||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
|
|
||||||
|
#ifdef GLAMOR
|
||||||
|
#define GLAMOR_FOR_XORG 1
|
||||||
|
#include "glamor.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct dumb_bo *
|
static struct dumb_bo *
|
||||||
dumb_bo_create(int fd,
|
dumb_bo_create(int fd,
|
||||||
const unsigned width, const unsigned height, const unsigned bpp)
|
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);
|
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++) {
|
for (i = 0; i < xf86_config->num_crtc; i++) {
|
||||||
xf86CrtcPtr crtc = xf86_config->crtc[i];
|
xf86CrtcPtr crtc = xf86_config->crtc[i];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user