xfree86: Remove broken RANDR disabling logic (v3)

The only way to get at xf86Info.disableRandR from configuration is
Option "RANDR" "foo" in ServerFlags, which probably nobody is using
seeing as it's not documented. The other way it could be set is if a
screen supports RANDR 1.2, in which case we set it to avoid trying to
use the RANDR 1.1 compat code. If the second screen is not 1.2-aware
then this would mean we don't do RANDR setup on the second screen at
all, which would almost certainly crash the first time you try to do
RANDR operations on the second screen.

Fix that all by deletion, and just check whether the screen already has
RANDR initialized before installing the stub support. If you want to
disable RANDR, use the Extensions section of xorg.conf instead.

v2: Also remove a now entirely pointless log message, telling you to
ignore a line we will no longer print.

v3: Explain the fallback path in InitOutput. (Keith Packard)

Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Adam Jackson 2018-01-23 12:10:52 -05:00
parent da8de2a7f6
commit c08d7c1cdd
8 changed files with 7 additions and 36 deletions

View File

@ -305,8 +305,6 @@ 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

View File

@ -634,7 +634,6 @@ typedef enum {
FLAG_XINERAMA,
FLAG_LOG,
FLAG_RENDER_COLORMAP_MODE,
FLAG_RANDR,
FLAG_IGNORE_ABI,
FLAG_ALLOW_EMPTY_INPUT,
FLAG_USE_DEFAULT_FONT_PATH,
@ -683,8 +682,6 @@ 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,
@ -827,15 +824,6 @@ 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;

View File

@ -117,8 +117,6 @@ 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,

View File

@ -1458,13 +1458,6 @@ xf86GetAllowMouseOpenFail(void)
return xf86Info.allowMouseOpenFail;
}
void
xf86DisableRandR(void)
{
xf86Info.disableRandR = TRUE;
xf86Info.randRFrom = X_PROBED;
}
CARD32
xf86GetModuleVersion(void *module)
{

View File

@ -77,6 +77,7 @@
#include "xf86Xinput.h"
#include "xf86InPriv.h"
#include "picturestr.h"
#include "randrstr.h"
#include "xf86Bus.h"
#ifdef XSERVER_LIBPCIACCESS
@ -810,10 +811,12 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
SubPixelUnknown);
}
#ifdef RANDR
if (!xf86Info.disableRandR)
/*
* If the driver hasn't set up its own RANDR support, install the
* fallback support.
*/
if (!rrGetScrPriv(xf86Screens[i]->pScreen))
xf86RandRInit(screenInfo.screens[scr_index]);
xf86Msg(xf86Info.randRFrom, "RandR %s\n",
xf86Info.disableRandR ? "disabled" : "enabled");
#endif
}

View File

@ -1643,12 +1643,8 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
}
/* Lookup each mode */
#ifdef RANDR
if (!xf86Info.disableRandR
#ifdef PANORAMIX
&& noPanoramiXExtension
#endif
)
if (noPanoramiXExtension)
validateAllDefaultModes = TRUE;
#endif

View File

@ -81,8 +81,6 @@ 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;

View File

@ -771,9 +771,6 @@ 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 */