http://bugs.winehq.org/show_bug.cgi?id=14558
Summary: DirectX : Missing sprite frames in Double Dragon Forever Product: Wine Version: 1.1.1 Platform: PC-x86-64 URL: http://clebercasali.blogspot.com OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: cleberdemattoscasali-hotpop@yahoo.com.br
Wine's DirectX fails to draw some frames from the sprites. For example, when the character is walking, the animation does not display and the character looks static.
I think this problem started with wine 1.1.1.
It may be related to this bug: http://bugs.winehq.org/show_bug.cgi?id=13595 wich is also still present in 1.1.1.
http://bugs.winehq.org/show_bug.cgi?id=14558
Alexander Dorofeyev alexd4@inbox.lv changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alexd4@inbox.lv
--- Comment #1 from Alexander Dorofeyev alexd4@inbox.lv 2008-07-18 16:49:53 --- Can you please run a regression test?
http://wiki.winehq.org/RegressionTesting
http://bugs.winehq.org/show_bug.cgi?id=14558
Lei Zhang thestig@google.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, regression
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #2 from cleber cleberdemattoscasali-hotpop@yahoo.com.br 2008-07-21 18:37:16 --- I've tried. I'm getting this error on compilation:
msxml_private.h:94: erro: expected ‘)’ before ‘xmldoc’ make[2]: ** [attribute.o] Erro 1
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #3 from cleber cleberdemattoscasali-hotpop@yahoo.com.br 2008-07-25 21:33:52 --- It's fixed in wine 1.1.2. At least in one of my two PCs. Maybe there's something wrong with my .wine prefix.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #4 from cleber cleberdemattoscasali-hotpop@yahoo.com.br 2008-07-30 18:38:21 --- Yeah, just started a fresh .wine prefix, and it's working fine on both my pcs again.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #5 from Alexander Dorofeyev alexd4@inbox.lv 2008-07-30 18:48:02 --- Usually this is related to having some non-default registry overrides in your prefix. Did you have DirectDrawRenderer=opengl or anything else in it?
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #6 from Alexander Dorofeyev alexd4@inbox.lv 2008-07-30 18:55:46 --- Just to clarify: i mean that visual bugs in games magically appearing and disappearing with different prefix usually is related to Wine\Direct3D overrides.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #7 from cleber cleberdemattoscasali-hotpop@yahoo.com.br 2008-07-30 22:09:12 --- Yeah, you're absolutely right. I really did DirectDrawRenderer=opengl and some other tweaks to run StarCraft better!!! That's what causes the problem, not wine 1.1.1. Thanks a lot!
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #8 from Alexander Dorofeyev alexd4@inbox.lv 2008-07-31 10:41:58 --- So this isn't a regression?
If a game doesn't draw properly with DirectDrawRenderer=opengl, this is still a Wine bug probably. You should try to isolate the minimum set of tweaks needed to reproduce the bug. I.e just DirectDrawRenderer=opengl or that and some other tweaks.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #9 from cleber cleberdemattoscasali-hotpop@yahoo.com.br 2008-07-31 16:55:47 --- Okay, I found it. Actually, the offender tweak is OffscreenRenderingMode=fbo
I'm really convicted it has something to do with this other bug: http://bugs.winehq.org/show_bug.cgi?id=13595
There's some offscreen rendering going on to upload the sprites to video memory. I know because I'm the programmer of the game. ;) The game loads the entire sprite sheet to memory as a bitmap, and then captures blocks from it, as textures. With wine, the sprites are drawn missing the first line of pixels, and with an extra line of pixels at the bottom, containing data from the image that is below in the sheet.
It means, wine's directx is either: 1) just drawing it wrong, or 2) geting data from the wrong area of the bitmap to generate the textures.
I believe it's number 2. So maybe when using OffscreenRenderingMode=fbo, wine's directx is trying to capture images outside the bitmap borders and failing. (just a theory).
The game is written is DarkBASIC Pro. I can write a simpler test program if you want it.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #10 from cleber cleberdemattoscasali-hotpop@yahoo.com.br 2008-07-31 18:52:49 --- Actually, I just found out the bug http://bugs.winehq.org/show_bug.cgi?id=13595 happens on offscreen rendering.
http://bugs.winehq.org/show_bug.cgi?id=14558
cleber cleberdemattoscasali-hotpop@yahoo.com.br changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|DirectX : Missing sprite |DirectX : Missing sprite |frames in Double Dragon |frames in Double Dragon |Forever |Forever with | |OffscreenRenderingMode=fbo
http://bugs.winehq.org/show_bug.cgi?id=14558
Fernando Martins fernando@cmartins.nl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fernando@cmartins.nl
--- Comment #11 from Fernando Martins fernando@cmartins.nl 2009-04-01 15:07:56 --- still happening under 1.1.18
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #12 from landeel cleberdemattoscasali-wine@yahoo.com.br 2009-06-08 15:08:48 --- Still happens with 1.1.23. It's worst now, since fbo is the new default.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #13 from Henri Verbeet hverbeet@gmail.com 2009-06-08 16:09:55 --- (In reply to comment #9)
The game is written is DarkBASIC Pro. I can write a simpler test program if you want it.
Not sure why I missed this the first time, but yes, that would be helpful.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #14 from landeel cleberdemattoscasali-wine@yahoo.com.br 2009-06-08 18:54:03 --- Here's my simple test program: http://www.easy-share.com/1905598179/dbpwine.zip Screenshots and source code included.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #15 from landeel cleberdemattoscasali-wine@yahoo.com.br 2009-06-08 18:55:53 --- Created an attachment (id=21663) --> (http://bugs.winehq.org/attachment.cgi?id=21663) Screenshots
Screenshots of the test program demonstrating the different behaviour between wine and windows.
http://bugs.winehq.org/show_bug.cgi?id=14558
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |testcase
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #16 from Henri Verbeet hverbeet@gmail.com 2009-06-09 06:52:18 --- Created an attachment (id=21677) --> (http://bugs.winehq.org/attachment.cgi?id=21677) screenshot
With what kind of graphics card are you using? The attached screenshot is how it looks for me. It seems to suffer from bug 13595, but the textures look correct. It's also broken in virtual desktop, but that looks like a different problem (frontbuffer being larger than the window, so you have to maximise the window to see anything at all).
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #17 from landeel cleberdemattoscasali-wine@yahoo.com.br 2009-06-09 15:08:05 --- I have a GeForce 8500 GT 512 MB.
OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce 8500 GT/PCI/SSE2 OpenGL version string: 3.0.0 NVIDIA 180.51
The program manifests Bug 13595 also. It will only manifest Bug 14558 if you set OffscreenRenderingMode=fbo
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #18 from landeel cleberdemattoscasali-wine@yahoo.com.br 2009-06-09 15:17:04 --- Created an attachment (id=21697) --> (http://bugs.winehq.org/attachment.cgi?id=21697) This is what I see with OffscreenRenderingMode=pbuffer
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #19 from landeel cleberdemattoscasali-wine@yahoo.com.br 2009-06-09 15:17:50 --- Created an attachment (id=21698) --> (http://bugs.winehq.org/attachment.cgi?id=21698) This is what I see with OffscreenRenderingMode=fbo
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #20 from Henri Verbeet hverbeet@gmail.com 2009-06-09 15:58:24 --- The screenshot I posted was with OffscreenRenderingMode set to fbo. Turns out this is affected by another registry key I had set, "RenderTargetLockMode". Setting that to "readtex" makes the problem go away.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #21 from landeel cleberdemattoscasali-wine@yahoo.com.br 2009-06-09 16:30:17 --- Created an attachment (id=21700) --> (http://bugs.winehq.org/attachment.cgi?id=21700) OffscreenRenderingMode=fbo and RenderTargetLockMode=readtex
You're right. RenderTargetLockMode=readtex fixes it. But it's not the default. Wine 1.1.23 and a fresh .wine prefix will manifest the bug.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #22 from Henri Verbeet hverbeet@gmail.com 2009-06-09 16:32:28 --- Yeah, I'll look into it.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #23 from Henri Verbeet hverbeet@gmail.com 2009-06-10 17:15:40 --- Created an attachment (id=21728) --> (http://bugs.winehq.org/attachment.cgi?id=21728) hack
This is starting to look like a driver bug. It seems glGetTexImage() doesn't return correct data the first time right after drawing to the texture with an FBO. The attached hack works around this for me, but is obviously not the way to go.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #24 from landeel cleberdemattoscasali-wine@yahoo.com.br 2009-06-10 22:03:21 --- You're using NVIDIA too, right? I have 2 NVIDIAs and no ATI or INTEL to test. Maybe the problem is on NVIDIA only, but I wonder if the program will work at all with ATI or INTEL cards/drivers.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #25 from Henri Verbeet hverbeet@gmail.com 2009-06-15 04:26:50 --- Created an attachment (id=21806) --> (http://bugs.winehq.org/attachment.cgi?id=21806) test case
As far as I can see this is a driver bug, see the attached test case for details. I've reported this to linux-bugs@nvidia.com, but didn't get much of a response yet, other than asking me if I could try with 185.18.14 (it happens there as well) and if I could run nvidia-bug-report.sh.
Fglrx 9.6 has a similar issue, but with glTexImage2D() instead of glTexSubImage2D(). The bug report for that one is at http://ati.cchtml.com/show_bug.cgi?id=1573.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #26 from Henri Verbeet hverbeet@gmail.com 2010-04-15 13:51:21 --- Should work since e5673ddbc3db1fcbec11979adad5cf7d64f271c2, no thanks to nvidia.
http://bugs.winehq.org/show_bug.cgi?id=14558
--- Comment #27 from landeel cleberdemattoscasali-wine@yahoo.com.br 2010-04-15 15:03:57 --- Yeah I can confirm it works. Window scaling is working too. Nice!
http://bugs.winehq.org/show_bug.cgi?id=14558
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #28 from Austin English austinenglish@gmail.com 2010-04-15 16:21:08 --- Reported fixed.
http://bugs.winehq.org/show_bug.cgi?id=14558
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #29 from Alexandre Julliard julliard@winehq.org 2010-04-16 13:02:27 --- Closing bugs fixed in 1.1.43.