mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-24 23:00:05 +01:00
modesetting: Fix prime screen not display when expansion screen rotates
In the multi screen mode, rotating the expansion screen will cause the prime screen not to display, because crtcs sharing the fb, and delete one crtc fb will affect other crtcs. One method is to delete all crtcs fb first and then re-create it. And the best solution is to provide a reference mechanism for crtcs sharing fb, drmModeRmFB until ref is 0.
This commit is contained in:
parent
82bf391c93
commit
6583adb08b
1 changed files with 8 additions and 0 deletions
|
|
@ -424,6 +424,14 @@ ms_present_unflip(ScreenPtr screen, uint64_t event_id)
|
|||
drmmode_crtc->drmmode->fb_id);
|
||||
drmmode_crtc->drmmode->fb_id = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < config->num_crtc; i++) {
|
||||
xf86CrtcPtr crtc = config->crtc[i];
|
||||
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
|
||||
|
||||
if (!crtc->enabled)
|
||||
continue;
|
||||
|
||||
if (drmmode_crtc->dpms_mode == DPMSModeOn)
|
||||
crtc->funcs->set_mode_major(crtc, &crtc->mode, crtc->rotation,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue