[Bug 59631] New: wine-staging-11.6: flickering images in Battle.net Launcher
http://bugs.winehq.org/show_bug.cgi?id=59631 Bug ID: 59631 Summary: wine-staging-11.6: flickering images in Battle.net Launcher Product: Wine-staging Version: 11.6 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: minor Priority: P2 Component: -unknown Assignee: wine-bugs@list.winehq.org Reporter: dimich.dmb@gmail.com CC: leslie_alistair@hotmail.com, z.figura12@gmail.com Distribution: --- Created attachment 80699 --> http://bugs.winehq.org/attachment.cgi?id=80699 Wine console output Images in Battle.net Launcher flicker with wine-staging-11.6. The issue does not occur with wine-staging-11.5. The issue does not occur with mainline wine-11.6. (Additional patch is required to run Battle.net Launcher with non-staging wine: https://bugs.winehq.org/show_bug.cgi?id=56486). Probably related parts of wine-staging-11.6 output: 0248:fixme:dxgi:dxgi_factory_CreateSwapChainForComposition iface 02BBB6F0, device 02BA0060, desc 005FEBE0, output 00000000, swapchain 538594DC stub! 0248:fixme:dxgi:wined3d_swapchain_desc_from_dxgi Ignoring alpha mode 0x1. 0248:fixme:d3d:wined3d_swapchain_init The application requested more than one back buffer, this is not properly supported. Please configure the application to use double buffering (1 back buffer) if possible. 0248:fixme:d3d:wined3d_swapchain_init Unimplemented swap effect 0x3. 0248:fixme:dxgi:d3d11_swapchain_GetDesc Ignoring ScanlineOrdering and Scaling. 0248:fixme:dxgi:d3d11_swapchain_SetColorSpace1 iface 02CFFD48, colour_space 0 stub! 0248:fixme:dxgi:d3d11_swapchain_Present1 Ignored present parameters 005FE7A0. 0248:fixme:dxgi:dxgi_device_EnqueueSetEvent iface 02BA0038, event 000002D0 stub! 0248:fixme:dcomp:visual_SetContent iface 00BAD2E0, content 02CFFD48 semi-stub! 0248:fixme:d3d11:d3d11_device_GetCreationFlags iface 02BA0060 stub! ... 0430:fixme:dxgi:d3d11_swapchain_GetDesc Ignoring ScanlineOrdering and Scaling. 0430:fixme:d3d11:d3d11_multithread_SetMultithreadProtected iface 02BA0088, enable 0x1 stub! 0430:fixme:dxgi:dxgi_surface_GetDC iface 0CA91058, discard 0, hdc 02D37CA4 semi-stub! ... Wine-staging-11.5 doesn't contain these lines except "d3d11_swapchain_Present1 Ignored present parameters". The issue doesn't seem to affect application functionality and looks visual only. OS: Arch Linux Kernel version: 6.19.11-arch1-1 Nvidia driver: 595.58.03 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #1 from Dmytro Bagrii <dimich.dmb@gmail.com> --- Created attachment 80700 --> http://bugs.winehq.org/attachment.cgi?id=80700 eglinfo -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #2 from Dmytro Bagrii <dimich.dmb@gmail.com> --- Created attachment 80701 --> http://bugs.winehq.org/attachment.cgi?id=80701 vulkaninfo -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #3 from Dmytro Bagrii <dimich.dmb@gmail.com> --- Created attachment 80702 --> http://bugs.winehq.org/attachment.cgi?id=80702 Screen record -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 Dmytro Bagrii <dimich.dmb@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dimich.dmb@gmail.com -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 kollardavid.kolibry@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kollardavid.kolibry@gmail.c | |om --- Comment #4 from kollardavid.kolibry@gmail.com --- I am also having issues with Battle.net on wine-staging 11.6 (Arch's build), but it's more severe than just flickering. I am unable to launch it, because I get stuck on the spinner before the main window, as if it got stuck on logging in. I am using 11.5 for the time being -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #5 from Alistair Leslie-Hughes <leslie_alistair@hotmail.com> --- I cannot reproduce either issue listed here. Wayland vs X? log with +loaddll,dcomp -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #6 from Dmytro Bagrii <dimich.dmb@gmail.com> --- Created attachment 80742 --> http://bugs.winehq.org/attachment.cgi?id=80742 Xorg log -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 Dmytro Bagrii <dimich.dmb@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #80699|0 |1 is obsolete| | --- Comment #7 from Dmytro Bagrii <dimich.dmb@gmail.com> --- Created attachment 80743 --> http://bugs.winehq.org/attachment.cgi?id=80743 Log with WINEDEBUG=+loaddll,+dcomp -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #8 from Dmytro Bagrii <dimich.dmb@gmail.com> --- (In reply to Alistair Leslie-Hughes from comment #5)
Wayland vs X?
Xorg 21.1.21, no compositors etc. Fluxbox window manager, but the same behavior with no any window manager.
log with +loaddll,dcomp
Attached log with WINEDEBUG=+loaddll,+dcomp : https://bugs.winehq.org/attachment.cgi?id=80743 I would try to find what commit introduced the issue, but don't know how to bisect staging patchset efficiently. Is there a guide? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #9 from Koli <kollardavid.kolibry@gmail.com> --- Created attachment 80744 --> http://bugs.winehq.org/attachment.cgi?id=80744 Log battle.net stuck startup with loaddll & dcomp -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #10 from Koli <kollardavid.kolibry@gmail.com> --- I am on Wayland, KDE. Looks like a crash loop of a background process based on how the last chunk dlls just keep repeating -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #11 from Alistair Leslie-Hughes <leslie_alistair@hotmail.com> --- (In reply to Dmytro Bagrii from comment #8)
(In reply to Alistair Leslie-Hughes from comment #5)
Wayland vs X?
Xorg 21.1.21, no compositors etc. Fluxbox window manager, but the same behavior with no any window manager.
log with +loaddll,dcomp
Attached log with WINEDEBUG=+loaddll,+dcomp : https://bugs.winehq.org/attachment.cgi?id=80743
I would try to find what commit introduced the issue, but don't know how to bisect staging patchset efficiently. Is there a guide?
When applying all patches, use following command. patchinstall.py --backend=git-am --all --force-autoconf Then you can bisect as normal. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 mata <sutupud@yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sutupud@yahoo.com --- Comment #12 from mata <sutupud@yahoo.com> ---
When applying all patches, use following command.
patchinstall.py --backend=git-am --all --force-autoconf
Then you can bisect as normal.
Not really, since Battle.net requires staging patches to start, so to bisect successully you'd neet to start with wine-staging-11.5 already patched, that should be the first known good commit. Then rebase the changes from 11.6 on top of that, and then you can bisect with that as the first known bad commit. What I can say is that I happen to also run arch with kernel 6.19 and Nvidia 595. The launcher works with wine-staging-11.6 when using the option wine Battle.net.exe --in-process-gpu -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 Maciej Stanczew <maciej.stanczew@proton.me> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |maciej.stanczew@proton.me --- Comment #13 from Maciej Stanczew <maciej.stanczew@proton.me> --- I'm on KDE Plasma with Wayland, and my symptoms are that Battle.net window's contents are not rendered at all – so not sure if it's the same issue (but it does work with '--in-process-gpu', so I'm leaning towards it being the same). Bisection result: b70caa17726c3532b210a5ddf53af8024bc35b34 is the first bad commit commit b70caa17726c3532b210a5ddf53af8024bc35b34 (HEAD) Author: Alistair Leslie-Hughes <leslie_alistair@hotmail.com> Date: Sun Mar 22 22:37:38 2026 +1100 Added dcomp-DCompositionCreateDevice2 patchset Some commit combinations that I checked: 1dbc94083d1 (11.5) + 5bfda368 (11.5) = good 1dbc94083d1 (11.5) + b70caa17 = bad 6e073d28dee (11.6) + 666d822d (11.6) = bad 6e073d28dee (11.6) + 666d822d (11.6) + '-W dcomp-DCompositionCreateDevice2' = good -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #14 from Dmytro Bagrii <dimich.dmb@gmail.com> --- (In reply to Alistair Leslie-Hughes from comment #11)
patchinstall.py --backend=git-am --all --force-autoconf Then you can bisect as normal.
But since the issue is introduced by one of staging patches, I have to bisect wine-staging, not wine repository itself. There are only 10 commits between 11.5 and 11.6 in wine-staging, but they add/modify multiple patches at once. (In reply to mata from comment #12)
The launcher works with wine-staging-11.6 when using the option wine Battle.net.exe --in-process-gpu
In my case '--in-process-gpu' has no effect, images still flicker. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 Ker noa <blue-t@web.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |blue-t@web.de --- Comment #15 from Ker noa <blue-t@web.de> --- Disabling he acceleration in bnet solves the flicker for me. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #16 from Dmytro Bagrii <dimich.dmb@gmail.com> --- (In reply to Ker noa from comment #15)
Disabling he acceleration in bnet solves the flicker for me.
Indeed, no flicker if "Use browser hardware acceleration" unchecked. And less CPU usage by CrGpuMain :) However, the window seems to redraw with longer delay after being moved or overlapped by another window. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 Stian Low <wineryyyyy@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |wineryyyyy@gmail.com --- Comment #17 from Stian Low <wineryyyyy@gmail.com> --- Uanble to reproduce for wine-11.9-0c0d2643208 for Battle.net version 2.51.4.17379 Only patch required to fix/workaround indefinite fixme:cryptasn log loop that otherwise prevents app from opening: https://bugs.winehq.org/attachment.cgi?id=76495 (via https://bugs.winehq.org/show_bug.cgi?id=56486#c16) 0280:fixme:cryptasn:CryptDecodeObjectEx Unsupported decoder for lpszStructType 1.3.6.1.4.1.311.2.1.4 Latest Battle.net seems to no longer use swap effect 0x3 (flip sequential) nor more than 1 swap back buffer required for swap effect 0x3 and instead seems to use only 1 back buffer now confirmed via extra log info: 02a4:trace:dxgi:dxgi_swapchain_factory_create_swapchain iface 009BF3B4, factory 023750E8, window 000900DC, desc 0022E49C, fullscreen_desc 00000000, output 00000000, swapchain 0022E4D8, BufferCount 1, SwapEffect 1. Therefore these logs of interest reported no longer occur regardless of "Use browser hardware acceleration": (In reply to Dmytro Bagrii from comment #0)
0248:fixme:d3d:wined3d_swapchain_init The application requested more than one back buffer, this is not properly supported. Please configure the application to use double buffering (1 back buffer) if possible. 0248:fixme:d3d:wined3d_swapchain_init Unimplemented swap effect 0x3.
This bug was found as part of an on-going effort to vet merge request to fix graphical bugs related to flip sequential swap effect 0x3 and swapchain back buffer > 1 required: https://gitlab.winehq.org/wine/wine/-/merge_requests/10567/ Flickering reported for Battle.net is probably fixed for latest version because it switched from swap effect 0x3 to 0x1 and only uses 1 swapchain back buffer now. If flicker bug reoccurs in the future then Battle.net may have switched back to swap effect 0x3 and/or more than 1 swapchain back buffer in which case merge request may fix flicker such as recent fix for "Virtual DJ (2026)" which suffers from similar flicker: https://bugs.winehq.org/show_bug.cgi?id=57473#c7 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #18 from Maciej Stanczew <maciej.stanczew@proton.me> --- The issue is still present in Staging 11.9 (Battle.net version 2.51.4.17379). -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #19 from Stian Low <wineryyyyy@gmail.com> --- Created attachment 80958 --> http://bugs.winehq.org/attachment.cgi?id=80958 MR-10567 patch supporting swap effect 0x3 and backbuffer count > 1 (In reply to Maciej Stanczew from comment #18)
The issue is still present in Staging 11.9 (Battle.net version 2.51.4.17379).
Does attached patch fix? (from https://gitlab.winehq.org/wine/wine/-/merge_requests/10567/) Do these swapchain back buffer logs still appear?
0248:fixme:d3d:wined3d_swapchain_init The application requested more than one back buffer, this is not properly supported. Please configure the application to use double buffering (1 back buffer) if possible. 0248:fixme:d3d:wined3d_swapchain_init Unimplemented swap effect 0x3.
If those logs do not appear then attached patch may not apply. I only tested latest wine without staging so maybe staging has a bug. I'll retest with wine-staging. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #20 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Stian Low from comment #19)
Do these swapchain back buffer logs still appear?
Confirming these logs for wine-staging-11.9 which do not occur without staging: 0208:fixme:dxgi:dxgi_factory_CreateSwapChainForComposition iface 02A39810, device 0094FD98, desc 0022EBE0, output 00000000, swapchain 4B64515C stub! 0208:fixme:dxgi:wined3d_swapchain_desc_from_dxgi Ignoring alpha mode 0x1. 0208:fixme:d3d:wined3d_swapchain_init The application requested more than one back buffer, this is not properly supported. Please configure the application to use double buffering (1 back buffer) if possible. 0208:fixme:d3d:wined3d_swapchain_init Unimplemented swap effect 0x3. Some games change swapeffect/backbuffer behavior depending on Windows version as reported here: https://bugs.winehq.org/show_bug.cgi?id=45364#c22 Seems staging may be causing a state diff that may trigger different behavior than non-staging that uses compatible swap effect and backbuffers. Thanks for testing. I'll take a closer look. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #21 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Stian Low from comment #19)
Does attached patch fix? (from https://gitlab.winehq.org/wine/wine/-/merge_requests/10567/)
Attached patch causes blackscreen/whitescreen when applied atop wine-staging-11.7. This is one of the first problematic cases for MR-10567 so far and exactly what I've been seeking to further vet it. Thanks again for reporting. I'll continue to work it. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #22 from Maciej Stanczew <maciej.stanczew@proton.me> --- The issue was introduced in Staging 11.6 with the dcomp-DCompositionCreateDevice2 patchset (please see comment 13). Building Staging 11.9 with '-W dcomp-DCompositionCreateDevice2' makes the issue go away. Applying your patch on top of this configuration doesn't seem to change anything (Battle.net still works without flickering). So the issue seems to be isolated to dcomp-DCompositionCreateDevice2. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #23 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Maciej Stanczew from comment #22)
The issue was introduced in Staging 11.6 with the dcomp-DCompositionCreateDevice2 patchset (please see comment 13). Building Staging 11.9 with '-W dcomp-DCompositionCreateDevice2' makes the issue go away. Applying your patch on top of this configuration doesn't seem to change anything (Battle.net still works without flickering). So the issue seems to be isolated to dcomp-DCompositionCreateDevice2.
Only other bug with keyword "dxgi_factory_CreateSwapChainForComposition" besides this one: https://bugs.winehq.org/show_bug.cgi?id=57512#c4 "This won't be an easy fix." Patch that adds dxgi_factory_CreateSwapChainForComposition: https://gitlab.winehq.org/wine/wine-staging/-/blob/master/patches/dcomp-DCom... b70caa17726c3532b210a5ddf53af8024bc35b34 Author: Alistair Leslie-Hughes <leslie_alistair@hotmail.com> AuthorDate: Sun Mar 22 22:37:38 2026 +1100 Commit: Alistair Leslie-Hughes <leslie_alistair@hotmail.com> CommitDate: Mon Mar 23 07:47:32 2026 +1100 Parent: 5bfda368 Release v11.5 Contained: master Follows: v10.18 (93) Added dcomp-DCompositionCreateDevice2 patchset 1 file changed, 33 insertions(+) ...-a-dxgi_factory_CreateSwapChainForComposi.patch | 33 ++++++++++++++++++++++ Wine 11.9 without staging never logs dxgi_factory_CreateSwapChainForComposition and unclear what causes it to be called GE-Proton10-32 does not flicker but unclear if dxgi_factory_CreateSwapChainForComposition is handled by dxvk instead of wine although no logs indicate it is used. Trying to understand what triggers calls to dxgi_factory_CreateSwapChainForComposition which seems to cause the unsupported swapchain/backbuffer scenarios. Maybe @leslie_alistair can provide insights regarding dcomp-DCompositionCreateDevice2 staging patches since they added them. In the meantime I'll continue testing. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #24 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Stian Low from comment #23)
Maybe @leslie_alistair can provide insights regarding dcomp-DCompositionCreateDevice2 staging patches since they added them.
Or @zzhang rather as original author. Commit seems dated over 20 years ago. From 7fce6c4e5ccc6db058892b0929dd38417bd37e27 Mon Sep 17 00:00:00 2001 From: Zhiyi Zhang <zzhang@codeweavers.com> Date: Fri, 6 Mar 2026 18:13:32 +0800 Subject: [PATCH 01/65] HACK: dxgi: Add a dxgi_factory_CreateSwapChainForComposition() stub. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #25 from Stian Low <wineryyyyy@gmail.com> --- This log for wine 11.9 (without staging) and GE-Proton10-32 seems likely the cause of swapchain/backbuffers differences with staging which I overlooked previously: 0244:fixme:dcomp:DCompositionCreateDevice2 01794F88, {5f4633fe-1e08-4cb8-8c75-ce24333f5602}, 007FED24. Probably fixed by reverting DCompositionCreateDevice() for staging to match wine-11.8 which always returns E_NOTIMPL: ./wine-staging/patches/dcomp-DCompositionCreateDevice2/0005-dcomp-Add-IDCompositionDevice2-stub.patch Code for wine 11.9 without staging: HRESULT WINAPI DCompositionCreateDevice(IDXGIDevice *dxgi_device, REFIID iid, void **device) { FIXME("%p, %s, %p.\n", dxgi_device, debugstr_guid(iid), device); return E_NOTIMPL; } I will test this single change to wine-staging which probably effectively bypasses most/all of dcomp-DCompositionCreateDevice2 patches which seem to need additional work which is now on my radar in relation to swap effect 0x3 and backbuffer count > 1 merge request. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #26 from Stian Low <wineryyyyy@gmail.com> --- Confirmed that returning return E_NOTIMPL; for DCompositionCreateDevice2() fixes flickering for wine-staging-11.9. Done for all methods as ./dlls/dcomp/device.c DCompositionCreateDevice() DCompositionCreateDevice2() DCompositionCreateDevice3() Example: HRESULT WINAPI DCompositionCreateDevice2(IUnknown *rendering_device, REFIID iid, void **device) { FIXME("%p, %s, %p\n", rendering_device, debugstr_guid(iid), device); return E_NOTIMPL; if (!IsEqualIID(iid, &IID_IDCompositionDevice) && !IsEqualIID(iid, &IID_IDCompositionDesktopDevice)) return E_NOINTERFACE; return create_device(2, iid, device); } DCompositionCreateDevice patch will be included as part of ongoing tests for MR-10567 which may lead to some fixes to whatever causes flickering when DCompositionCreateDevice2() is supported. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #27 from Stian Low <wineryyyyy@gmail.com> --- In summary, in case it was not clear from previous comments: Prior to recent DCompositionCreateDevice patches added to wine-staging, it seems Battle.net would fallback to alternative rendering method that uses swap effect 0x1 and only 1 back buffer. Therefore DCompositionCreateDevice support seems to have activated a different rendering method that is used instead of alternative fallback when available and uses swap effect 0x3 with more than one backbuffer which is not well supported. Therefore alternative rendering method without DCompositionCreateDevice seems to be the basis of how wine users expect Battle.net to behave and may be useful as a reference for dev fixes to DCompositionCreateDevice so that users eventually are barely able to tell the difference between the two rendering methods. Merge request patch intended to fix discrepancies for swap effect 0x3 and more than 1 backbuffer does not work when combined with wine-staging DCompositionCreateDevice patch so more work is needed for compatibility. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #28 from Alistair Leslie-Hughes <leslie_alistair@hotmail.com> --- (In reply to Stian Low from comment #23)
Maybe @leslie_alistair can provide insights regarding dcomp-DCompositionCreateDevice2 staging patches since they added them.
The whole purpose of this patchset was to allow it to be tested and see what issues appear. I'm still not seeing the flicker issue, with/out acceleration enabled. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #29 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Alistair Leslie-Hughes from comment #28)
I'm still not seeing the flicker issue, with/out acceleration enabled.
Do any of these logs appear with patch applied? 0208:fixme:dxgi:dxgi_factory_CreateSwapChainForComposition iface 02A39810, device 0094FD98, desc 0022EBE0, output 00000000, swapchain 4B64515C stub! 0208:fixme:dxgi:wined3d_swapchain_desc_from_dxgi Ignoring alpha mode 0x1. 0208:fixme:d3d:wined3d_swapchain_init The application requested more than one back buffer, this is not properly supported. Please configure the application to use double buffering (1 back buffer) if possible. 0208:fixme:d3d:wined3d_swapchain_init Unimplemented swap effect 0x3. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #30 from Alistair Leslie-Hughes <leslie_alistair@hotmail.com> --- (In reply to Stian Low from comment #29)
(In reply to Alistair Leslie-Hughes from comment #28)
I'm still not seeing the flicker issue, with/out acceleration enabled.
Do any of these logs appear with patch applied?
Found that i was loading the dxgi.dll from dxvk, so once I changed that. The bug was easy to see. Though the patch attached, just give a black (white) windows when used. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #31 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Alistair Leslie-Hughes from comment #30)
Though the patch attached, just give a black (white) windows when used.
Thanks for confirming all white/black dcomp windows also happen for you when applying patch atop dcomp wine-staging. This is the first case of the patch not working so I'll be modding and doing more testing for compatibility. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #32 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Stian Low from comment #31)
Thanks for confirming all white/black dcomp windows also happen for you when applying patch atop dcomp wine-staging.
This is the first case of the patch not working so I'll be modding and doing more testing for compatibility.
Adding back wined3d_swapchain_gl_rotate()/wined3d_swapchain_vk_rotate() removed by patch fixes white/black screens but does not resolve flicker. Those wined3d_swapchain_gl_rotate() were removed because they cause flicker for some games using swap_effect 0x3 after adding support for RenderTargetViews for swapchains with more than 1 for wined3d_render_target_view_gl_cs_init(). I'll look closer at how dcomp depends on wined3d_swapchain_gl_rotate() differently than rendering pipeline used for those games otherwise fixed by removing rotate funcs. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #33 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Stian Low from comment #32)
I'll look closer at how dcomp depends on wined3d_swapchain_gl_rotate() differently than rendering pipeline used for those games otherwise fixed by removing rotate funcs.
Flicker mostly resolves via this 1 line fix to ~/tmp/wine_stianlow/dlls/dcomp/device.c::do_composite() call to IDXGISwapChain1_GetBuffer() to use backbuffer 0 (instead of BufferCount - 1) which is always the front buffer for attached MR-10567 patch that removes wined3d_swapchain_gl_rotate(): /* The front buffer is the last back buffer because the composition swapchain must * be created with DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL */ hr = IDXGISwapChain1_GetBuffer(swapchain, swapchain_desc.BufferCount - 1, &IID_IDXGISurface, (void **)&dxgi_surface); hr = IDXGISwapChain1_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&dxgi_surface); The intial login spinner/icon shows the most obvious remaining flicker/graphical glitch, but once logged in, the main window flickers considerably less in a mostly usable fashion resembling rendering prior to latest dcomp staging patches. Logs indicate fbo_blitter is used for my tests: 02f4:trace:d3d:swapchain_blit swapchain 02ABC3B8, context 0298BD98, src_rect (0,0)-(348,646), dst_rect (0,0)-(348,646). 02f4:trace:d3d:fbo_blitter_blit blitter 0298AA20, op 0, context 0298BD98, src_texture 02A94820, src_sub_resource_idx 0, src_location WINED3D_LOCATION_TEXTURE_RGB, src_rect (0,0)-(348,646), dst_texture 02A94820, dst_sub_resource_idx 0, dst_location WINED3D_LOCATION_DRAWABLE, dst_rect (0,0)-(348,646), colour_key 00000000, filter WINED3D_TEXF_NONE, resolve_format 00000000. Part of my reason for removing wined3d_swapchain_gl_rotate()/wined3d_swapchain_vk_rotate() is because GPU calls may be considered to handle swaps/rotations via wglSwapBuffers() and vkAcquireNextImageKHR(). However, even if those GPU calls may be considered valid for handling swap/rotation, CPU-based renderer may still require wined3d_swapchain_gl_rotate()/wined3d_swapchain_gl_rotate() since GPU-based mechanisms are not available. I will test forcing CPU-based rendering to determine if it that is a use case for keeping wined3d_swapchain_gl_rotate()/wined3d_swapchain_vk_rotate(). In the meantime, GPU-based rendering issues seem mostly resolved and remaining graphical glitches may be caused by additional bugs that need to be fixed within dcomp. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #34 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Stian Low from comment #33)
Flicker mostly resolves via this 1 line fix
To be clear: MR-10567 contains the flicker fix (mostly). The 1 line fix to dcomp actually fixes the white/black screen caused by MR-10567 without this dcomp fix. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #35 from Stian Low <wineryyyyy@gmail.com> --- Unclear if MR-10567 patch should be added to staging but it would help me better determine its validity if others besides myself were running tests with it. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #36 from Koli <kollardavid.kolibry@gmail.com> --- My issues starting in 11.6 where I wasn't able to launch Battle.net due to agent process crashes, were finally resolved with 11.10. Thanks to everyone involved! -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #37 from Dmytro Bagrii <dimich.dmb@gmail.com> --- The issue seems fixed in 11.10. Images don't flicker with h/w acceleration enabled anymore. Thank you! -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59631 --- Comment #38 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Koli from comment #36)
My issues starting in 11.6 where I wasn't able to launch Battle.net due to agent process crashes, were finally resolved with 11.10. Thanks to everyone involved!
(In reply to Dmytro Bagrii from comment #37)
The issue seems fixed in 11.10. Images don't flicker with h/w acceleration enabled anymore. Thank you!
Thanks for test reports. Happy gaming. dcomp recently added to staging also affects Steam similar to Battle.net with it's flickering fixed by another small patch: https://bugs.winehq.org/show_bug.cgi?id=58346#c4 Testing still ongoing. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla