Revert "xfree86: Remove broken RANDR disabling logic (v3)"
Tsk. This broke vesa for me, the rrGetScrPriv in InitOutput will crash
if randr's screen private key hasn't been initialized yet. That seems
dumb, but let's not leave it broken.
This reverts commit c08d7c1cdd
.
This commit is contained in:
parent
c08d7c1cdd
commit
5cb330cd5d
|
@ -305,6 +305,8 @@ extern _X_EXPORT Bool
|
|||
xf86GetModInDevEnabled(void);
|
||||
extern _X_EXPORT Bool
|
||||
xf86GetAllowMouseOpenFail(void);
|
||||
extern _X_EXPORT void
|
||||
xf86DisableRandR(void);
|
||||
extern _X_EXPORT CARD32
|
||||
xorgGetVersion(void);
|
||||
extern _X_EXPORT CARD32
|
||||
|
|
|
@ -634,6 +634,7 @@ typedef enum {
|
|||
FLAG_XINERAMA,
|
||||
FLAG_LOG,
|
||||
FLAG_RENDER_COLORMAP_MODE,
|
||||
FLAG_RANDR,
|
||||
FLAG_IGNORE_ABI,
|
||||
FLAG_ALLOW_EMPTY_INPUT,
|
||||
FLAG_USE_DEFAULT_FONT_PATH,
|
||||
|
@ -682,6 +683,8 @@ static OptionInfoRec FlagOptions[] = {
|
|||
{0}, FALSE},
|
||||
{FLAG_RENDER_COLORMAP_MODE, "RenderColormapMode", OPTV_STRING,
|
||||
{0}, FALSE},
|
||||
{FLAG_RANDR, "RandR", OPTV_BOOLEAN,
|
||||
{0}, FALSE},
|
||||
{FLAG_IGNORE_ABI, "IgnoreABI", OPTV_BOOLEAN,
|
||||
{0}, FALSE},
|
||||
{FLAG_USE_DEFAULT_FONT_PATH, "UseDefaultFontPath", OPTV_BOOLEAN,
|
||||
|
@ -824,6 +827,15 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef RANDR
|
||||
xf86Info.disableRandR = FALSE;
|
||||
xf86Info.randRFrom = X_DEFAULT;
|
||||
if (xf86GetOptValBool(FlagOptions, FLAG_RANDR, &value)) {
|
||||
xf86Info.disableRandR = !value;
|
||||
xf86Info.randRFrom = X_CONFIG;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef GLXEXT
|
||||
xf86Info.glxVisuals = XF86_GlxVisualsTypical;
|
||||
xf86Info.glxVisualsFrom = X_DEFAULT;
|
||||
|
|
|
@ -117,6 +117,8 @@ xf86InfoRec xf86Info = {
|
|||
.miscModInDevEnabled = TRUE,
|
||||
.miscModInDevAllowNonLocal = FALSE,
|
||||
.pmFlag = TRUE,
|
||||
.disableRandR = FALSE,
|
||||
.randRFrom = X_DEFAULT,
|
||||
#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS)
|
||||
.forceInputDevices = FALSE,
|
||||
.autoAddDevices = TRUE,
|
||||
|
|
|
@ -1458,6 +1458,13 @@ xf86GetAllowMouseOpenFail(void)
|
|||
return xf86Info.allowMouseOpenFail;
|
||||
}
|
||||
|
||||
void
|
||||
xf86DisableRandR(void)
|
||||
{
|
||||
xf86Info.disableRandR = TRUE;
|
||||
xf86Info.randRFrom = X_PROBED;
|
||||
}
|
||||
|
||||
CARD32
|
||||
xf86GetModuleVersion(void *module)
|
||||
{
|
||||
|
|
|
@ -77,7 +77,6 @@
|
|||
#include "xf86Xinput.h"
|
||||
#include "xf86InPriv.h"
|
||||
#include "picturestr.h"
|
||||
#include "randrstr.h"
|
||||
|
||||
#include "xf86Bus.h"
|
||||
#ifdef XSERVER_LIBPCIACCESS
|
||||
|
@ -811,12 +810,10 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
|
|||
SubPixelUnknown);
|
||||
}
|
||||
#ifdef RANDR
|
||||
/*
|
||||
* If the driver hasn't set up its own RANDR support, install the
|
||||
* fallback support.
|
||||
*/
|
||||
if (!rrGetScrPriv(xf86Screens[i]->pScreen))
|
||||
if (!xf86Info.disableRandR)
|
||||
xf86RandRInit(screenInfo.screens[scr_index]);
|
||||
xf86Msg(xf86Info.randRFrom, "RandR %s\n",
|
||||
xf86Info.disableRandR ? "disabled" : "enabled");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -1643,8 +1643,12 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
|
|||
}
|
||||
|
||||
/* Lookup each mode */
|
||||
#ifdef RANDR
|
||||
if (!xf86Info.disableRandR
|
||||
#ifdef PANORAMIX
|
||||
if (noPanoramiXExtension)
|
||||
&& noPanoramiXExtension
|
||||
#endif
|
||||
)
|
||||
validateAllDefaultModes = TRUE;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -81,6 +81,8 @@ typedef struct {
|
|||
Bool miscModInDevAllowNonLocal;
|
||||
Bool useSIGIO; /* Use SIGIO for handling DRI1 swaps */
|
||||
Bool pmFlag;
|
||||
Bool disableRandR;
|
||||
MessageType randRFrom;
|
||||
MessageType iglxFrom;
|
||||
XF86_GlxVisuals glxVisuals;
|
||||
MessageType glxVisualsFrom;
|
||||
|
|
|
@ -771,6 +771,9 @@ xf86CrtcScreenInit(ScreenPtr screen)
|
|||
int c;
|
||||
|
||||
/* Rotation */
|
||||
xf86DrvMsg(scrn->scrnIndex, X_INFO,
|
||||
"RandR 1.2 enabled, ignore the following RandR disabled message.\n");
|
||||
xf86DisableRandR(); /* Disable old RandR extension support */
|
||||
xf86RandR12Init(screen);
|
||||
|
||||
/* support all rotations if every crtc has the shadow alloc funcs */
|
||||
|
|
Loading…
Reference in New Issue