From 525dcd012feb1aa463f580bf9ea30f996b15d027 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Thu, 22 Jan 2015 14:37:27 -0700 Subject: [PATCH] Removed patch to fix RandR on some broken nVidia systems (accepted upstream). --- README.md | 2 +- debian/changelog | 1 + patches/patchinstall.sh | 16 ---- .../wined3d-CSMT_Main/9999-IfDefined.patch | 18 ++--- ...te-the-check-for-broken-nVidia-RandR.patch | 80 ------------------- .../winex11-Limited_Resolutions/definition | 1 - 6 files changed, 11 insertions(+), 107 deletions(-) delete mode 100644 patches/winex11-Limited_Resolutions/0001-winex11.drv-Update-the-check-for-broken-nVidia-RandR.patch delete mode 100644 patches/winex11-Limited_Resolutions/definition diff --git a/README.md b/README.md index 3fb89ca6..e7d069fd 100644 --- a/README.md +++ b/README.md @@ -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)) diff --git a/debian/changelog b/debian/changelog index 89b6a080..078ec78c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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). diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 04e2a9c5..49cd70f9 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -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: diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 58f33c63..4dd2a43c 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -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(); } diff --git a/patches/winex11-Limited_Resolutions/0001-winex11.drv-Update-the-check-for-broken-nVidia-RandR.patch b/patches/winex11-Limited_Resolutions/0001-winex11.drv-Update-the-check-for-broken-nVidia-RandR.patch deleted file mode 100644 index 2d6cbd88..00000000 --- a/patches/winex11-Limited_Resolutions/0001-winex11.drv-Update-the-check-for-broken-nVidia-RandR.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 590ab2d6042e4af966bae9dc9f8ada3d68d9825d Mon Sep 17 00:00:00 2001 -From: "Erich E. Hoover" -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 - diff --git a/patches/winex11-Limited_Resolutions/definition b/patches/winex11-Limited_Resolutions/definition deleted file mode 100644 index d21ae9d3..00000000 --- a/patches/winex11-Limited_Resolutions/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: nVidia driver for high-end laptop cards does not list all supported resolutions