Removed patch to fix RandR on some broken nVidia systems (accepted upstream).

This commit is contained in:
Erich E. Hoover 2015-01-22 14:37:27 -07:00
parent 6a1d2cdd7b
commit 525dcd012f
6 changed files with 11 additions and 107 deletions

View File

@ -191,7 +191,7 @@ Included bug fixes and improvements
* Wine ignores IDF_CHECKFIRST flag in SetupPromptForDisk ([Wine Bug #20465](https://bugs.winehq.org/show_bug.cgi?id=20465))
* 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
* ~~nVidia driver for high-end laptop cards does not list all supported resolutions~~
* ntdll is missing WinSqm[Start|End]Session implementation ([Wine Bug #31971](https://bugs.winehq.org/show_bug.cgi?id=31971))
* wglDescribePixelFormat should return max index for NULL descriptor ([Wine Bug #6176](https://bugs.winehq.org/show_bug.cgi?id=6176))
* wininet should allow Accept-Encoding header for HTTP/1.0 ([Wine Bug #37046](https://bugs.winehq.org/show_bug.cgi?id=37046))

1
debian/changelog vendored
View File

@ -14,6 +14,7 @@ wine-staging (1.7.35) UNRELEASED; urgency=low
* Added patch to implement stubs for D3DXCreateAnimationController interface.
* Added patch to implement semi-stub for IDirectPlayVoiceClient::GetCompressionTypes.
* Added patch to fix cursor clip regression / broken raw input in multiple games.
* Removed patch to fix RandR on some broken nVidia systems (accepted upstream).
* Removed patch to set last error on success in WSARecv (accepted upstream).
* Removed patch to fix handling of subdirectory in FtpFindFirstFile (accepted upstream).
* Removed patch to initialize irp.Tail.Overlay.OriginalFileObject with stub file object (accepted upstream).

View File

@ -179,7 +179,6 @@ patch_enable_all ()
enable_winepulse_PulseAudio_Support="$1"
enable_winex11_CandidateWindowPos="$1"
enable_winex11_Clipboard_HTML="$1"
enable_winex11_Limited_Resolutions="$1"
enable_winex11_Window_Groups="$1"
enable_winex11_XEMBED="$1"
enable_winex11_wglShareLists="$1"
@ -565,9 +564,6 @@ patch_enable ()
winex11-Clipboard_HTML)
enable_winex11_Clipboard_HTML="$2"
;;
winex11-Limited_Resolutions)
enable_winex11_Limited_Resolutions="$2"
;;
winex11-Window_Groups)
enable_winex11_Window_Groups="$2"
;;
@ -3477,18 +3473,6 @@ if test "$enable_winex11_Clipboard_HTML" -eq 1; then
) >> "$patchlist"
fi
# Patchset winex11-Limited_Resolutions
# |
# | Modified files:
# | * dlls/winex11.drv/xrandr.c
# |
if test "$enable_winex11_Limited_Resolutions" -eq 1; then
patch_apply winex11-Limited_Resolutions/0001-winex11.drv-Update-the-check-for-broken-nVidia-RandR.patch
(
echo '+ { "Erich E. Hoover", "winex11.drv: Update the check for broken nVidia RandR to test for the number of resolutions instead of the number of modes.", 1 },';
) >> "$patchlist"
fi
# Patchset winex11-Window_Groups
# |
# | This patchset fixes the following Wine bugs:

View File

@ -352,7 +352,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
{
gl_info->gl_ops.gl.p_glDisable(GL_STENCIL_TEST);
checkGLcall("glDisable GL_STENCIL_TEST");
@@ -912,7 +924,11 @@
@@ -922,7 +934,11 @@
static void state_stencilwrite2s(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
@ -364,7 +364,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
const struct wined3d_gl_info *gl_info = context->gl_info;
GL_EXTCALL(glActiveStencilFaceEXT(GL_BACK));
@@ -926,7 +942,11 @@
@@ -936,7 +952,11 @@
static void state_stencilwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
@ -376,7 +376,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
const struct wined3d_gl_info *gl_info = context->gl_info;
gl_info->gl_ops.gl.p_glStencilMask(mask);
@@ -1167,10 +1187,17 @@
@@ -1177,10 +1197,17 @@
/* drop through */
case WINED3D_FOG_NONE:
@ -394,7 +394,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
new_source = FOGSOURCE_COORD;
gl_info->gl_ops.gl.p_glFogi(GL_FOG_MODE, GL_LINEAR);
checkGLcall("glFogi(GL_FOG_MODE, GL_LINEAR)");
@@ -1766,7 +1793,11 @@
@@ -1776,7 +1803,11 @@
if (state->render_states[WINED3D_RS_SLOPESCALEDEPTHBIAS]
|| state->render_states[WINED3D_RS_DEPTHBIAS])
{
@ -406,7 +406,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
float scale;
union
@@ -4415,9 +4446,15 @@
@@ -4425,9 +4456,15 @@
}
}
} else {
@ -422,7 +422,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
WARN("unsupported blending in openGl\n");
}
}
@@ -4772,7 +4809,11 @@
@@ -4782,7 +4819,11 @@
static void viewport_miscpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
@ -434,7 +434,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
const struct wined3d_gl_info *gl_info = context->gl_info;
struct wined3d_viewport vp = state->viewport;
@@ -4952,7 +4993,11 @@
@@ -4962,7 +5003,11 @@
}
else
{
@ -446,7 +446,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
UINT height;
UINT width;
@@ -5016,7 +5061,11 @@
@@ -5026,7 +5071,11 @@
void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
@ -9521,7 +9521,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -5205,9 +5205,15 @@
@@ -5208,9 +5208,15 @@
DebugBreak();
}

View File

@ -1,80 +0,0 @@
From 590ab2d6042e4af966bae9dc9f8ada3d68d9825d 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 | 42 +++++++++++++++++++++++++++---------------
1 file changed, 27 insertions(+), 15 deletions(-)
diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c
index fc09020..e9670c3 100644
--- a/dlls/winex11.drv/xrandr.c
+++ b/dlls/winex11.drv/xrandr.c
@@ -386,6 +386,7 @@ static XRRCrtcInfo *xrandr12_get_primary_crtc_info( XRRScreenResources *resource
static int xrandr12_init_modes(void)
{
+ unsigned int only_one_resolution = 1, mode_count;
XRRScreenResources *resources;
XRROutputInfo *output_info;
XRRCrtcInfo *crtc_info;
@@ -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,32 @@ static int xrandr12_init_modes(void)
}
}
+ mode_count = X11DRV_Settings_GetModeCount();
+ for (i = 1; i < mode_count; ++i)
+ {
+ if (dd_modes[i].width != dd_modes[0].width || dd_modes[i].height != dd_modes[0].height)
+ {
+ only_one_resolution = 0;
+ break;
+ }
+ }
+
+ /* 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 (only_one_resolution && 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;
+ HeapFree( GetProcessHeap(), 0, xrandr12_modes );
+ goto done;
+ }
+
X11DRV_Settings_AddDepthModes();
ret = 0;
--
1.9.1

View File

@ -1 +0,0 @@
Fixes: nVidia driver for high-end laptop cards does not list all supported resolutions