https://bugs.winehq.org/show_bug.cgi?id=48618
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://eu.wargaming.net/en | |/wgc Regression SHA1| |645eb62f709275ac46c2a7ea59b | |f8bcba34c7edd Summary|Wargaming.net Game Center |Wargaming.net Game Center |shows black screen on |shows black screen on |launch since Wine 5.0 |launch since Wine 4.21 CC| |focht@gmx.net Version|5.0 |4.21 Keywords| |download, regression
--- Comment #13 from Anastasius Focht focht@gmx.net --- Hello folks,
--- quote --- The Game Center works before wine-5.0. --- quote ---
well, a regression test which almost everyone should be able to perform could have already provided more insight.
https://wiki.winehq.org/Regression_Testing
Regression introduced by:
https://source.winehq.org/git/wine.git/commitdiff/645eb62f709275ac46c2a7ea59... ("wined3d: Create a backup context if setting the pixel format failed in wined3d_context_gl_create_wgl_ctx().")
author Paul Gofman gofmanp@gmail.com Mon, 18 Nov 2019 14:18:12 +0000 (17:48 +0330) committer Alexandre Julliard julliard@winehq.org Mon, 18 Nov 2019 21:12:38 +0000 (22:12 +0100)
Part of Wine 4.21 release.
Unfortunately there is no Bugzilla ticket reference which apps/games were supposedly fixed by this.
There is no clean revert on current master HEAD due to further wined3d refactorings hence use this patch:
--- snip --- $ git diff
diff --git a/dlls/wined3d/context_gl.c b/dlls/wined3d/context_gl.c index b168e6026a..e06ff1a6ea 100644 --- a/dlls/wined3d/context_gl.c +++ b/dlls/wined3d/context_gl.c @@ -1926,27 +1926,11 @@ static BOOL wined3d_context_gl_create_wgl_ctx(struct wined3d_context_gl *context
if (!wined3d_context_gl_set_pixel_format(context_gl)) { - context_release(context); - - if (context_gl->dc_is_private) - { - ERR("Failed to set pixel format %d on device context %p.\n", context_gl->pixel_format, context_gl->dc); - - return FALSE; - } - - WARN("Failed to set pixel format %d on device context %p, trying backup DC.\n", - context_gl->pixel_format, context_gl->dc); + ERR("Failed to set pixel format %d on device context %p.\n", context_gl->pixel_format, context_gl->dc);
- wined3d_release_dc(context_gl->window, context_gl->dc); - if (!(context_gl->dc = wined3d_swapchain_gl_get_backup_dc(swapchain_gl))) - { - ERR("Failed to retrieve the backup device context.\n"); - return FALSE; - } - context_gl->dc_is_private = TRUE; + context_release(context);
- return wined3d_context_gl_create_wgl_ctx(context_gl, swapchain_gl); + return FALSE; }
share_ctx = device->context_count ? wined3d_context_gl(device->contexts[0])->gl_ctx : NULL; --- snip ---
But that will just let the launcher to fall back to failsafe (in-process) behaviour after it detects it can't run separate gpu process ('wgc_renderer.exe --type=gpu-process ...').
--- snip --- ... 04ac:warn:debugstr:OutputDebugStringA "[0518/142619.054:ERROR:viz_main_impl.cc(176)] Exiting GPU process due to errors during initialization\n" [0518/142619.054:ERROR:viz_main_impl.cc(176)] Exiting GPU process due to errors during initialization 020c:warn:debugstr:OutputDebugStringA "[0518/142620.886:WARNING:gpu_process_host.cc(1220)] The GPU process has crashed 4 time(s)\n" [0518/142620.886:WARNING:gpu_process_host.cc(1220)] The GPU process has crashed 4 time(s) 020c:warn:debugstr:OutputDebugStringA "[0518/142620.888:ERROR:browser_gpu_channel_host_factory.cc(138)] Failed to launch GPU process.\n" [0518/142620.888:ERROR:browser_gpu_channel_host_factory.cc(138)] Failed to launch GPU process. --- snip ---
$ wine --version wine-5.8-173-g9e26bc8116
Regard