https://bugs.winehq.org/show_bug.cgi?id=57661
Bug ID: 57661 Summary: Port Royale 2: black screen during intro videos Product: Wine Version: 10.0-rc2 Hardware: x86-64 URL: https://www.moddb.com/games/port-royale-2/downloads/po rt-royale-2-demo OS: Linux Status: NEW Keywords: download, regression Severity: normal Priority: P2 Component: winex11.drv Assignee: wine-bugs@winehq.org Reporter: gyebro69@gmail.com CC: rbernon@codeweavers.com Regression SHA1: 786d9d1685ac220081b10cc779d4d331ddd2fc52 Distribution: ArchLinux
Created attachment 77829 --> https://bugs.winehq.org/attachment.cgi?id=77829 terminal output
The screen is black when the intro videos are playing, only audio can be heard. Occurs both in fullscreen and virtual desktop mode.
The problem is present since commit 786d9d1685ac220081b10cc779d4d331ddd2fc52 winex11: Skip offscreening if the children don't require clipping.
Still present in Wine-10.0-rc5.
PR2_English_Demo.exe (235 M) md5sum: 08f951316e286ae4be627a25e3dba4ac
https://bugs.winehq.org/show_bug.cgi?id=57661
--- Comment #1 from Rafał Mużyło galtgendo@o2.pl --- ..it might be tied to bug 57646 and/or mr7045.
I mean, while part of the output references MEDIASUBTYPE_MPEG1VideoCD, so first thing to check would be if it works with winegstreamer splitter, Zeb's comment in the mentioned bug suggest it's a colorspace transformation problem. On the other hand, mr7034 references same commit and the explanation there seems similar to this bug and that mr was concuded as superseded by the above mentioned...
https://bugs.winehq.org/show_bug.cgi?id=57661
--- Comment #2 from Rémi Bernon rbernon@codeweavers.com --- Created attachment 77840 --> https://bugs.winehq.org/attachment.cgi?id=77840 Fix
The issue is that there are two client windows created, one on the toplevel window, when D3D changes its pixel format, and another one in a child window that is used to render the video.
The toplevel window is created without WS_CLIPCHILDREN, so it doesn't actually need child window clipping, and the last window to present is supposed to be visible.
Originally the two client windows were put offscreen as there's a child window and we didn't bother checking the clipping rules, and the video child window was being blitted to the toplevel window itself through GDI blits.
Now, as we are checking WS_CLIPCHILDREN and the window region to decide whether we need to move the surface offscreen, it turns out that the toplevel client window doesn't need to and we're keeping it on screen. It however obscures its parent window pixels and any drawing that is done by other offscreen children.
The attached patch should fix the issue.
https://bugs.winehq.org/show_bug.cgi?id=57661
--- Comment #3 from Béla Gyebrószki gyebro69@gmail.com --- (In reply to Rémi Bernon from comment #2)
Created attachment 77840 [details] Fix The attached patch should fix the issue.
The patch fixes the problem here as well, thank you.
https://bugs.winehq.org/show_bug.cgi?id=57661
Rémi Bernon rbernon@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |f2eebf36266fa0c380947270176 | |3a6e468cd5ba3 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #4 from Rémi Bernon rbernon@codeweavers.com --- Should be fixed after f2eebf36266fa0c3809472701763a6e468cd5ba3
https://bugs.winehq.org/show_bug.cgi?id=57661
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #5 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 10.0-rc6.