Drop frontbuffer from crtc in I830CloseScreen
By dropping the frontbuffer from the crtc, the new frontbuffer can be properly added to the crtc when the xserver is reset. Signed-off-by: Albert Damen <albrt@gmx.net>
This commit is contained in:
parent
8a77877f9c
commit
fcc2ee48b8
|
|
@ -1429,3 +1429,18 @@ drmmode_crtc_id(xf86CrtcPtr crtc)
|
|||
|
||||
return drmmode_crtc->mode_crtc->crtc_id;
|
||||
}
|
||||
|
||||
void drmmode_closefb(ScrnInfoPtr scrn)
|
||||
{
|
||||
xf86CrtcConfigPtr xf86_config;
|
||||
drmmode_crtc_private_ptr drmmode_crtc;
|
||||
drmmode_ptr drmmode;
|
||||
|
||||
xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
|
||||
|
||||
drmmode_crtc = xf86_config->crtc[0]->driver_private;
|
||||
drmmode = drmmode_crtc->drmmode;
|
||||
|
||||
drmModeRmFB(drmmode->fd, drmmode->fb_id);
|
||||
drmmode->fb_id = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -330,6 +330,7 @@ Bool I830DRI2ScreenInit(ScreenPtr pScreen);
|
|||
void I830DRI2CloseScreen(ScreenPtr pScreen);
|
||||
|
||||
extern Bool drmmode_pre_init(ScrnInfoPtr scrn, int fd, int cpp);
|
||||
extern void drmmode_closefb(ScrnInfoPtr scrn);
|
||||
extern int drmmode_get_pipe_from_crtc_id(drm_intel_bufmgr * bufmgr,
|
||||
xf86CrtcPtr crtc);
|
||||
extern int drmmode_output_dpms_status(xf86OutputPtr output);
|
||||
|
|
|
|||
|
|
@ -1519,6 +1519,7 @@ static Bool I830CloseScreen(int scrnIndex, ScreenPtr screen)
|
|||
}
|
||||
if (intel->front_buffer) {
|
||||
i830_set_pixmap_bo(screen->GetScreenPixmap(screen), NULL);
|
||||
drmmode_closefb(scrn);
|
||||
i830_free_memory(scrn, intel->front_buffer);
|
||||
intel->front_buffer = NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue