https://bugs.winehq.org/show_bug.cgi?id=53752
Bug ID: 53752 Summary: Rayman 3: glitched graphics (black textures) Product: Wine Version: 7.3 Hardware: x86-64 URL: https://archive.org/download/rayman-3-pc-demo/Rayman3_ PC-Demo.zip OS: Linux Status: NEW Keywords: download, regression Severity: normal Priority: P2 Component: d3d Assignee: wine-bugs@winehq.org Reporter: gyebro69@gmail.com CC: z.figura12@gmail.com Regression SHA1: 1b1b03055db8bf03c6783d4fcb19abf670d53338 Distribution: ---
There are lots of black textures in Rayman 3 thus not so much of the game can be seen. Can be reproduced with the demo: the issue is already present in the main menu.
According to my testing the problem appeared with commit 1b1b03055db8bf03c6783d4fcb19abf670d53338 wined3d: Try to allocate new OpenGL BOs from the client thread for DISCARD maps.
With the previous commit in-game scenery looks good.
Workaround: disable hardware TnL in the video settings utility called R3_Setup_DX8.exe in the demo.
Rayman3_PC-Demo.zip (184M) md5: d6d3c2d76931feff73f56295a0dee6a3
Still present in wine-7.18-120-g001665d7354.
OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: NVIDIA GeForce GT 730/PCIe/SSE2 OpenGL core profile version string: 4.6.0 NVIDIA 470.141.03 OpenGL core profile shading language version string: 4.60 NVIDIA
https://bugs.winehq.org/show_bug.cgi?id=53752
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan@codeweavers.com
--- Comment #1 from Stefan Dösinger stefan@codeweavers.com --- This game has known issues with buffers addresses returned by d3d. See e.g. 29878 for a past issue. In the past, it expected buffer::lock to return a constant address, at least for managed buffers. It is quite likely that it has the same flawed assumption for dynamic buffers.
Either there is some reason why the game's DISCARDs are ignored, or driver workarounds in windows drivers, or the game is just broken on Windows too.
https://bugs.winehq.org/show_bug.cgi?id=53752
--- Comment #2 from Stefan Dösinger stefan@codeweavers.com --- Worth checking if the community fixes for a similar-sounding bug on Windows help on Wine too:
https://www.pcgamingwiki.com/wiki/Rayman_3:_Hoodlum_Havoc#Missing_textures_a... https://raymanpc.com/forum/viewtopic.php?p=1221794#p1221794
https://bugs.winehq.org/show_bug.cgi?id=53752
--- Comment #3 from Béla Gyebrószki gyebro69@gmail.com --- (In reply to Stefan Dösinger from comment #2)
Worth checking if the community fixes for a similar-sounding bug on Windows help on Wine too:
https://www.pcgamingwiki.com/wiki/Rayman_3: _Hoodlum_Havoc#Missing_textures_and_broken_graphics https://raymanpc.com/forum/viewtopic.php?p=1221794#p1221794
The bug is present when Hardware Vertex Processing is enabled. This is exactly the opposite of what the linked description suggests to work around the problem on Windows.
wine-8.0-rc1-119-gaa7f3b1ef6e
https://bugs.winehq.org/show_bug.cgi?id=53752
--- Comment #4 from Stefan Dösinger stefan@codeweavers.com --- Is it the opposite?
The second link is more verbose:
... I have been able to locate a solution to all (I believe) the TnL issues in the game. Once I add this to Better Rayman 3, enabling TnL will be strongly recommended as it will allow the game to run much more smoothly without causing issues such as missing textures, missing effects or orange flashes!
And from the first one:
"Fix TnL issues"
<magic steps> Enable TnL
I don't read this as "enable TnL to work around issues", but "do this, and then make sure you get rid of your old workaround to profit"
https://bugs.winehq.org/show_bug.cgi?id=53752
--- Comment #5 from Zeb Figura z.figura12@gmail.com --- I actually did debug this at some point but never posted my analysis.
Basically the game locks the same texture twice with DISCARD in quick succession, and expects that to return the same address. Which is fine to implement, but I ran into a snag testing this, because I couldn't get it to work consistently on Windows. Also I was staring at wined3d trying to see if I could implement the thing there instead of separately in ddraw + d3d8 + d3d9, but it gets uglier API-wise.
https://bugs.winehq.org/show_bug.cgi?id=53752
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |379ae701c04046661a092cacd72 | |63ca97101f51b Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #6 from Zeb Figura z.figura12@gmail.com --- Fixed by https://source.winehq.org/git/wine.git/commitdiff/379ae701c04046661a092cacd7263ca97101f51b.
https://bugs.winehq.org/show_bug.cgi?id=53752
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.0-rc3.