diff --git a/src/rhd_driver.c b/src/rhd_driver.c index 2137806..8b037f4 100644 --- a/src/rhd_driver.c +++ b/src/rhd_driver.c @@ -895,6 +895,7 @@ RHDScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if (serverGeneration == 1) { xf86ShowUnusedOptions(pScrn->scrnIndex, pScrn->options); } + RHDAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); return TRUE; } @@ -976,13 +977,17 @@ RHDAdjustFrame(int scrnIndex, int x, int y, int flags) RHDPtr rhdPtr = RHDPTR(pScrn); struct rhdCrtc *Crtc; + pScrn->frameX0 = pScrn->frameY0 = 0; + pScrn->frameX1 = pScrn->virtualX - 1; + pScrn->frameY1 = pScrn->virtualY - 1; + Crtc = rhdPtr->Crtc[0]; if ((Crtc->scrnIndex == scrnIndex) && Crtc->Active) Crtc->FrameSet(Crtc, x, y); Crtc = rhdPtr->Crtc[1]; if ((Crtc->scrnIndex == scrnIndex) && Crtc->Active) - Crtc->FrameSet(Crtc, x, y); + Crtc->FrameSet(Crtc, x + (pScrn->virtualX / 2), y); if (rhdPtr->CursorInfo) rhdShowCursor(pScrn); diff --git a/src/rhd_modes.c b/src/rhd_modes.c index ccebe5a..d099d32 100644 --- a/src/rhd_modes.c +++ b/src/rhd_modes.c @@ -1384,7 +1384,7 @@ RHDGetVirtualFromConfig(ScrnInfoPtr pScrn) if ((ret1 == MODE_OK) && (ret2 == MODE_OK) && (Pitch1 == Pitch2)) { pScrn->virtualX = VirtualX; pScrn->virtualY = VirtualY; - pScrn->displayWidth = Pitch1; + pScrn->displayWidth = Pitch1 * 2; return TRUE; } @@ -1437,9 +1437,9 @@ RHDGetVirtualFromModesAndFilter(ScrnInfoPtr pScrn, DisplayModePtr Modes, Bool Si if ((ret1 == MODE_OK) && (ret2 == MODE_OK) && (Pitch1 == Pitch2)) { Mode = Mode->next; - pScrn->virtualX = VirtualX; + pScrn->virtualX = VirtualX * 2; pScrn->virtualY = VirtualY; - pScrn->displayWidth = Pitch1; + pScrn->displayWidth = Pitch1 * 2; } else { if (!Silent) { if (ret1 != MODE_OK)