It has been pointed out to me that we need a small patch to the Savage driver.

In the two cases where the driver turns on rotation, where psav->rotate is set non-zero, the driver should call xf86DisableRandR(). Xrandr does not play will with the shadowFB-based rotation, and the results are not pretty. In fact, they are not usable.

One of the unwashed masses has made this change to his 4.3.0 source base and rotation is now working. I do not, at the present time, have access to a machine where I can easily generate a context diff against the tips of the 4.4 tree. Thus, I am hoping someone can help me. The two spots are roughly at line 835 in savage_driver.c. The code looks like this in the older code, but I don't know if the surrounding code has changed. The added lines are marked with "+".

if ((s = xf86GetOptValString(psav->Options, OPTION_ROTATE))) {
if(!xf86NameCmp(s, "CW")) {
/* accel is disabled below for shadowFB */
psav->shadowFB = TRUE;
psav->rotate = 1;
+ xf86DisableRandR();
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Rotating screen clockwise - acceleration disabled\n");
} else if(!xf86NameCmp(s, "CCW")) {
psav->shadowFB = TRUE;
psav->rotate = -1;
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Rotating screen"
"counter clockwise - acceleration disabled\n");
+ xf86DisableRandR();
} else {



The messages could be changed to indicate xrandr disabling as well, but that's of secondary importance.


--
- Tim Roberts, [EMAIL PROTECTED]
 Providenza & Boekelheide, Inc.

_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to