mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-01-03 10:30:19 +01:00
modesetting: Only add main fb if necessary
If we're doing reverse-prime; or doing rotation the main fb is not used,
and there is no reason to add it in this case.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 4313122dea)
This commit is contained in:
parent
23a7010f34
commit
d8eccab378
1 changed files with 17 additions and 17 deletions
|
|
@ -344,24 +344,8 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
|
|||
int output_count = 0;
|
||||
Bool ret = TRUE;
|
||||
int i;
|
||||
uint32_t fb_id;
|
||||
uint32_t fb_id = 0;
|
||||
drmModeModeInfo kmode;
|
||||
int height;
|
||||
|
||||
height = pScrn->virtualY;
|
||||
|
||||
if (drmmode->fb_id == 0) {
|
||||
ret = drmModeAddFB(drmmode->fd,
|
||||
pScrn->virtualX, height,
|
||||
pScrn->depth, pScrn->bitsPerPixel,
|
||||
drmmode_bo_get_pitch(&drmmode->front_bo),
|
||||
drmmode_bo_get_handle(&drmmode->front_bo),
|
||||
&drmmode->fb_id);
|
||||
if (ret < 0) {
|
||||
ErrorF("failed to add fb %d\n", ret);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
saved_mode = crtc->mode;
|
||||
saved_x = crtc->x;
|
||||
|
|
@ -420,6 +404,22 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
|
|||
fb_id = drmmode_crtc->rotate_fb_id;
|
||||
x = y = 0;
|
||||
}
|
||||
|
||||
if (fb_id == 0) {
|
||||
ret = drmModeAddFB(drmmode->fd,
|
||||
pScrn->virtualX, pScrn->virtualY,
|
||||
pScrn->depth, pScrn->bitsPerPixel,
|
||||
drmmode_bo_get_pitch(&drmmode->front_bo),
|
||||
drmmode_bo_get_handle(&drmmode->front_bo),
|
||||
&drmmode->fb_id);
|
||||
if (ret < 0) {
|
||||
ErrorF("failed to add fb %d\n", ret);
|
||||
ret = FALSE;
|
||||
goto done;
|
||||
}
|
||||
fb_id = drmmode->fb_id;
|
||||
}
|
||||
|
||||
if (drmModeSetCrtc(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
|
||||
fb_id, x, y, output_ids, output_count, &kmode)) {
|
||||
xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue