@@ -, +, @@ x11/nvidia-driver-304 --- x11-servers/xorg-server/Makefile | 2 +- .../xorg-server/files/patch-nvidia-304 | 162 ++++++++++++++++++ 2 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 x11-servers/xorg-server/files/patch-nvidia-304 --- b/x11-servers/xorg-server/Makefile +++ b/x11-servers/xorg-server/Makefile @@ -3,7 +3,7 @@ PORTNAME?= xorg-server PORTVERSION?= 1.20.7 -PORTREVISION?= 0 +PORTREVISION?= 1 PORTEPOCH?= 1 CATEGORIES= x11-servers MASTER_SITES= XORG/individual/xserver --- /dev/null +++ b/x11-servers/xorg-server/files/patch-nvidia-304 @@ -0,0 +1,162 @@ +Revert https://gitlab.freedesktop.org/xorg/xserver/commit/dd00e5466a0e + +/usr/local/lib/xorg/modules/drivers/nvidia_drv.so: Undefined symbol "xf86DisableRandR" + +--- hw/xfree86/common/xf86.h.orig 2020-01-13 22:57:05 UTC ++++ hw/xfree86/common/xf86.h +@@ -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 +--- hw/xfree86/common/xf86Config.c.orig 2020-01-13 22:57:05 UTC ++++ hw/xfree86/common/xf86Config.c +@@ -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, +@@ -683,6 +684,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, +@@ -826,6 +829,15 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86Opti + } + } + } ++ ++#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; +--- hw/xfree86/common/xf86Globals.c.orig 2020-01-13 22:57:05 UTC ++++ hw/xfree86/common/xf86Globals.c +@@ -119,6 +119,8 @@ xf86InfoRec xf86Info = { + .miscModInDevEnabled = TRUE, + .miscModInDevAllowNonLocal = FALSE, + .pmFlag = TRUE, ++ .disableRandR = FALSE, ++ .randRFrom = X_DEFAULT, + #if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || \ + defined(CONFIG_DEVD) + .forceInputDevices = FALSE, +--- hw/xfree86/common/xf86Helper.c.orig 2020-01-13 22:57:05 UTC ++++ hw/xfree86/common/xf86Helper.c +@@ -1458,6 +1458,13 @@ xf86GetAllowMouseOpenFail(void) + return xf86Info.allowMouseOpenFail; + } + ++void ++xf86DisableRandR(void) ++{ ++ xf86Info.disableRandR = TRUE; ++ xf86Info.randRFrom = X_PROBED; ++} ++ + CARD32 + xf86GetModuleVersion(void *module) + { +--- hw/xfree86/common/xf86Init.c.orig 2020-01-13 22:57:05 UTC ++++ hw/xfree86/common/xf86Init.c +@@ -77,7 +77,6 @@ + #include "xf86Xinput.h" + #include "xf86InPriv.h" + #include "picturestr.h" +-#include "randrstr.h" + #include "glxvndabi.h" + #include "xf86Bus.h" + #ifdef XSERVER_LIBPCIACCESS +@@ -303,16 +302,6 @@ xf86ScreenInit(ScreenPtr pScreen, int argc, char **arg + return pScrn->ScreenInit (pScreen, argc, argv); + } + +-static void +-xf86EnsureRANDR(ScreenPtr pScreen) +-{ +-#ifdef RANDR +- if (!dixPrivateKeyRegistered(rrPrivKey) || +- !rrGetScrPriv(pScreen)) +- xf86RandRInit(pScreen); +-#endif +-} +- + /* + * InitOutput -- + * Initialize screenInfo for all actually accessible framebuffers. +@@ -729,12 +718,12 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char ** + SubPixelHorizontalRGB : SubPixelNone) : + SubPixelUnknown); + } +- +- /* +- * If the driver hasn't set up its own RANDR support, install the +- * fallback support. +- */ +- xf86EnsureRANDR(xf86Screens[i]->pScreen); ++#ifdef RANDR ++ if (!xf86Info.disableRandR) ++ xf86RandRInit(screenInfo.screens[scr_index]); ++ xf86Msg(xf86Info.randRFrom, "RandR %s\n", ++ xf86Info.disableRandR ? "disabled" : "enabled"); ++#endif + } + + for (i = 0; i < xf86NumGPUScreens; i++) { +--- hw/xfree86/common/xf86Mode.c.orig 2020-01-13 22:57:05 UTC ++++ hw/xfree86/common/xf86Mode.c +@@ -1644,8 +1644,12 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr ava + } + + /* Lookup each mode */ ++#ifdef RANDR ++ if (!xf86Info.disableRandR + #ifdef PANORAMIX +- if (noPanoramiXExtension) ++ && noPanoramiXExtension ++#endif ++ ) + validateAllDefaultModes = TRUE; + #endif + +--- hw/xfree86/common/xf86Privstr.h.orig 2020-01-13 22:57:05 UTC ++++ hw/xfree86/common/xf86Privstr.h +@@ -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; +--- hw/xfree86/modes/xf86Crtc.c.orig 2020-01-13 22:57:05 UTC ++++ hw/xfree86/modes/xf86Crtc.c +@@ -807,6 +807,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 */