mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Added patch to better detect broken nVidia RandR 1.2 support.
This commit is contained in:
parent
d021d173a9
commit
ea409cf4fa
@ -63,6 +63,7 @@ Besides that the following additional changes are included:
|
||||
* Support for GetVolumePathName
|
||||
* Workaround for shlwapi URLs with relative paths
|
||||
* XEMBED support for embedding Wine windows inside Linux applications
|
||||
* nVidia driver for high-end laptop cards does not list all supported resolutions
|
||||
|
||||
|
||||
How to install Wine-Compholio
|
||||
|
3
debian/changelog
vendored
3
debian/changelog
vendored
@ -1,6 +1,7 @@
|
||||
wine-compholio (1.7.25) UNRELEASED; urgency=low
|
||||
* Added Courier Prime (OFLv1.1) as a Courier New replacement.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sat, 09 Aug 2014 09:28:25 -0600
|
||||
* Added patch to better detect broken nVidia RandR 1.2 support.
|
||||
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sat, 09 Aug 2014 13:21:27 -0600
|
||||
|
||||
wine-compholio (1.7.24) unstable; urgency=low
|
||||
* Various further improvements to the patch system.
|
||||
|
@ -46,6 +46,7 @@ PATCHLIST := \
|
||||
user32-WndProc.ok \
|
||||
wineboot-HKEY_DYN_DATA.ok \
|
||||
winepulse-PulseAudio_Support.ok \
|
||||
winex11-Limited_Resolutions.ok \
|
||||
winex11-XEMBED.ok \
|
||||
ws2_32-Connect_Time.ok \
|
||||
ws2_32-TransmitFile.ok \
|
||||
@ -838,6 +839,22 @@ winepulse-PulseAudio_Support.ok:
|
||||
echo '+ { "winepulse-PulseAudio_Support", "Maarten Lankhorst", "Winepulse patches extracted from https://launchpad.net/~ubuntu-wine/+archive/ubuntu/ppa/+files/wine1.7_1.7.22-0ubuntu1.debian.tar.gz. [rev 4]" },'; \
|
||||
) > winepulse-PulseAudio_Support.ok
|
||||
|
||||
# Patchset winex11-Limited_Resolutions
|
||||
# |
|
||||
# | Included patches:
|
||||
# | * Update the check for broken nVidia RandR to test for the number of resolutions instead of the number of modes. [by Erich
|
||||
# | E. Hoover]
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/winex11.drv/xrandr.c
|
||||
# |
|
||||
.INTERMEDIATE: winex11-Limited_Resolutions.ok
|
||||
winex11-Limited_Resolutions.ok:
|
||||
$(call APPLY_FILE,winex11-Limited_Resolutions/0001-winex11.drv-Update-the-check-for-broken-nVidia-RandR.patch)
|
||||
@( \
|
||||
echo '+ { "winex11-Limited_Resolutions", "Erich E. Hoover", "Update the check for broken nVidia RandR to test for the number of resolutions instead of the number of modes." },'; \
|
||||
) > winex11-Limited_Resolutions.ok
|
||||
|
||||
# Patchset winex11-XEMBED
|
||||
# |
|
||||
# | Included patches:
|
||||
|
@ -0,0 +1,86 @@
|
||||
From dcaf0bbafbfa6cfb89803c363f464c4766c972ff Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Sat, 9 Aug 2014 13:15:09 -0600
|
||||
Subject: winex11.drv: Update the check for broken nVidia RandR to test for
|
||||
the number of resolutions instead of the number of modes.
|
||||
|
||||
---
|
||||
dlls/winex11.drv/xrandr.c | 48 +++++++++++++++++++++++++++++++--------------
|
||||
1 file changed, 33 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c
|
||||
index fc09020..bcad0ce 100644
|
||||
--- a/dlls/winex11.drv/xrandr.c
|
||||
+++ b/dlls/winex11.drv/xrandr.c
|
||||
@@ -389,6 +389,7 @@ static int xrandr12_init_modes(void)
|
||||
XRRScreenResources *resources;
|
||||
XRROutputInfo *output_info;
|
||||
XRRCrtcInfo *crtc_info;
|
||||
+ int resolution_count;
|
||||
int ret = -1;
|
||||
int i, j;
|
||||
|
||||
@@ -434,21 +435,6 @@ static int xrandr12_init_modes(void)
|
||||
goto done;
|
||||
}
|
||||
|
||||
- /* Recent (304.64, possibly earlier) versions of the nvidia driver only
|
||||
- * report a DFP's native mode through RandR 1.2 / 1.3. Standard DMT modes
|
||||
- * are only listed through RandR 1.0 / 1.1. This is completely useless,
|
||||
- * but NVIDIA considers this a feature, so it's unlikely to change. The
|
||||
- * best we can do is to fall back to RandR 1.0 and encourage users to
|
||||
- * consider more cooperative driver vendors when we detect such a
|
||||
- * configuration. */
|
||||
- if (output_info->nmode == 1 && XQueryExtension( gdi_display, "NV-CONTROL", &i, &j, &ret ))
|
||||
- {
|
||||
- ERR_(winediag)("Broken NVIDIA RandR detected, falling back to RandR 1.0. "
|
||||
- "Please consider using the Nouveau driver instead.\n");
|
||||
- ret = -1;
|
||||
- goto done;
|
||||
- }
|
||||
-
|
||||
if (!(xrandr12_modes = HeapAlloc( GetProcessHeap(), 0, sizeof(*xrandr12_modes) * output_info->nmode )))
|
||||
{
|
||||
ERR("Failed to allocate xrandr mode info array.\n");
|
||||
@@ -480,6 +466,38 @@ static int xrandr12_init_modes(void)
|
||||
}
|
||||
}
|
||||
|
||||
+ resolution_count = 0;
|
||||
+ for (i = 0; i < xrandr_mode_count; ++i)
|
||||
+ {
|
||||
+ int duplicate_resolution = 0;
|
||||
+
|
||||
+ for (j = 0; j < i; ++j)
|
||||
+ {
|
||||
+ if(dd_modes[i].width == dd_modes[j].width && dd_modes[i].height == dd_modes[j].height)
|
||||
+ {
|
||||
+ duplicate_resolution = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!duplicate_resolution) resolution_count++;
|
||||
+ }
|
||||
+
|
||||
+ /* Recent (304.64, possibly earlier) versions of the nvidia driver only
|
||||
+ * report a DFP's native mode through RandR 1.2 / 1.3. Standard DMT modes
|
||||
+ * are only listed through RandR 1.0 / 1.1. This is completely useless,
|
||||
+ * but NVIDIA considers this a feature, so it's unlikely to change. The
|
||||
+ * best we can do is to fall back to RandR 1.0 and encourage users to
|
||||
+ * consider more cooperative driver vendors when we detect such a
|
||||
+ * configuration. */
|
||||
+ if (resolution_count == 1 && XQueryExtension( gdi_display, "NV-CONTROL", &i, &j, &ret ))
|
||||
+ {
|
||||
+ ERR_(winediag)("Broken NVIDIA RandR detected, falling back to RandR 1.0. "
|
||||
+ "Please consider using the Nouveau driver instead.\n");
|
||||
+ ret = -1;
|
||||
+ goto done;
|
||||
+ }
|
||||
+
|
||||
X11DRV_Settings_AddDepthModes();
|
||||
ret = 0;
|
||||
|
||||
--
|
||||
1.7.9.5
|
||||
|
4
patches/winex11-Limited_Resolutions/definition
Normal file
4
patches/winex11-Limited_Resolutions/definition
Normal file
@ -0,0 +1,4 @@
|
||||
Author: Erich E. Hoover
|
||||
Subject: Update the check for broken nVidia RandR to test for the number of resolutions instead of the number of modes.
|
||||
Revision: 1
|
||||
Fixes: nVidia driver for high-end laptop cards does not list all supported resolutions
|
Loading…
Reference in New Issue
Block a user