http://bugs.winehq.org/show_bug.cgi?id=13860
Summary: Sacrifice Demo: d3d_surface errors fill console Product: Wine Version: 1.0-rc4 Platform: PC-x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: trivial Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: liquid.acid@gmx.net
Hi there,
the problem was partially discussed in this thread: http://bugs.winehq.org/show_bug.cgi?id=13225
You can find the interesting logfile in this attachment (also from the mentioned thread): http://bugs.winehq.org/attachment.cgi?id=13855
The problem is that I get a log of these errors err:d3d_surface:d3dfmt_p8_init_palette This code should never get entered for DirectDraw!, expect problems on the console while running the Sacrifice demo.
This doesn't seem to have any effect on the visuals, since I don't see any obvious errors on the screen. However the statement "This code should never get entered for DirectDraw!" indicates that this behaviour is NOT normal, so I'm filing this as a bug here.
Hardware is: nVidia GeforceFX 5900
Drivers are: nvidia-drivers-100.14.19
I can create traces if needed! Just ask :-)
Greets, Tobias Jakobi
http://bugs.winehq.org/show_bug.cgi?id=13860
Tobias Jakobi liquid.acid@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jb.faq@gmx.de
http://bugs.winehq.org/show_bug.cgi?id=13860
Alexander Dorofeyev alexd4@inbox.lv changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alexd4@inbox.lv
--- Comment #1 from Alexander Dorofeyev alexd4@inbox.lv 2008-06-11 17:40:15 --- Problem with this message is that this code may be entered in some scenarios that are valid (in a sense that Wine doesn't do anything wrong). One such example exists in ddraw visual test. I for one advocated downgrading it to trace or silencing altogether (exactly because sometimes it is a false alarm), but other devs see benefit in the message for the sake of debugging p8 code.
It's difficult to say what's the case in this game (that would require a big effort of analyzing logs and/or reverse engineering the game). But you can try to comment out some extension lines in dlls/wined3d/directx.c (GL_EXT_paletted_texture in particular is relevant for games using p8 textures, if it's reported by e.g. glxinfo) also playing with game 3d renderer settings (maybe this message is caused by some specific settings in game).
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #2 from Tobias Jakobi liquid.acid@gmx.net 2008-06-12 11:00:14 --- OK, so I'm going to do some tests.
The first thing I wanna mention is that already during the first "logo display screen" three such messages are emitted. When the menu is displayed another message is generated. I played around with the graphics settings, but that didn't change anything.
I'm now going to edit directx.c and check how the game react on that.
Greets, Tobias
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #3 from Tobias Jakobi liquid.acid@gmx.net 2008-06-12 11:35:43 --- Removing GL_EXT_paletted_texture from the extension list removes the errors.
That makes sense. My intel i915 card also doesn't expose the paletted texture extensions and also I don't get any such errors there.
So, what's the next step for me Alexander?
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #4 from Alexander Dorofeyev alexd4@inbox.lv 2008-06-13 06:40:39 --- I've a geforce 2 mx card that exposes paletted texture extension, when I have time (probably this weekend) I'll check what happens on it.
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #5 from Tobias Jakobi liquid.acid@gmx.net 2008-06-19 15:55:50 --- Any news on this one Alexander?
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #6 from Alexander Dorofeyev alexd4@inbox.lv 2008-06-19 16:06:20 --- (In reply to comment #5)
Any news on this one Alexander?
This does happen on computer with geforce 2mx. Also I believe this didn't happen in some earlier versions around 1.0-rc1. I think possibly this started appearing after my rewrite of IDirect3DDevice7_Load not so long ago. I haven't yet done proper debugging to find out why this was caused.
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #7 from Tobias Jakobi liquid.acid@gmx.net 2008-06-19 16:10:53 --- Should I try a regression test to make sure it was your patch?
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #8 from Alexander Dorofeyev alexd4@inbox.lv 2008-06-19 16:21:56 --- (In reply to comment #7)
Should I try a regression test to make sure it was your patch?
I have it narrowed down to just a few patches in regression test, of which only that patch of mine look like it could have caused it. I think further regression testing is unnecessary atm, it needs some investigation of what happens, which I'll probably do when I test and submit that fpu fix.
http://bugs.winehq.org/show_bug.cgi?id=13860
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #9 from Tobias Jakobi liquid.acid@gmx.net 2008-07-08 16:55:24 --- Any news on this one Alexander?
I would dig a bit into this if I knew where to search.
Greets, Tobias
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #10 from Alexander Dorofeyev alexd4@inbox.lv 2008-07-08 17:26:32 --- (In reply to comment #9)
Any news on this one Alexander?
I would dig a bit into this if I knew where to search.
Uh, unfortunately, no. I started trying to fix videos in looking glass games but got ambushed by a swarm of bugs along the way :). I'm making some progress and hope to clear out them all in a week or so, then I might look into this regression later. If you are interested in wine 3d hacking, feel free to take on it. I believe my IDirect3dDevice7_Load rewrite caused it. The rewritten method uses some wined3d device methods, some of which probably directly or indirectly trigger IWineD3DSurface_LoadLocation (maybe via loadtexture in wined3d's texture.c) while there is no palette set (a situation it's usually best to avoid). It may be that palette setting should simply be done earlier in IDirect3dDevice7_Load / helper functions than it is now. It is surprising that presense of ext_paletted_texture makes such a difference though. Possibly this indicates a problem somewhere, such as either missing LoadLocation or unneeded one in some of codepaths in wined3d. wined3d codepaths for paletted_texture support are not unlikely to be buggy as most hardware nowadays doesn't support it so it's worse tested than others, it needs close examination where the differences caused by ext_paletted_texture is coming from.
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #11 from Tobias Jakobi liquid.acid@gmx.net 2008-07-08 17:31:31 --- I'll take a look. Could you supply some commit ids?
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #12 from Alexander Dorofeyev alexd4@inbox.lv 2008-07-09 01:40:54 --- 7e8be9ecc01ee9815b62577c095237c42fe6c0a7 - This is device_load rewrite. There was also test added in other commit so make sure to 'make test' if changing it :).
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #13 from Tobias Jakobi liquid.acid@gmx.net 2008-07-16 17:40:05 --- I think this is a bit too much for me. I don't really see how all this works by just looking at the code. I'm going to try playing around with the gnu debugger and setting brkpoints on the errors to get a picture of the calling stack.
But that's all I can do for the moment.
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #14 from Alexander Dorofeyev alexd4@inbox.lv 2008-07-16 17:56:19 --- (In reply to comment #13)
I think this is a bit too much for me. I don't really see how all this works by just looking at the code. I'm going to try playing around with the gnu debugger and setting brkpoints on the errors to get a picture of the calling stack.
But that's all I can do for the moment.
Are you sure there is no visual differences and no ddraw and d3d8 visual test failures? The git at my device7_load commit actually appears pretty broken, there are graphics missing in the very first screens (missing textures) (only with EXT_paletted_texture enabled!). I may need to recompile the most recent git, unfortunately it takes ages on that machine.
The bug is more difficult than I thought it is, indeed. Just moving palette copying in idirect3ddevice7_load, which I thought may help, actually doesn't seem to make much difference because palettes seem to be null at that point anyway.
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #15 from Tobias Jakobi liquid.acid@gmx.net 2008-07-17 10:55:48 --- You can "emulate" palette texture support by forcing the mesa swraster driver. Simply set LIBGL_ALWAYS_SOFTWARE environment var to something != 0. Seems to requiere a git mesa though.
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #16 from Alexander Dorofeyev alexd4@inbox.lv 2008-07-18 16:47:11 --- (In reply to comment #15)
You can "emulate" palette texture support by forcing the mesa swraster driver. Simply set LIBGL_ALWAYS_SOFTWARE environment var to something != 0. Seems to requiere a git mesa though.
I have a second older computer with geforce 2 mx, so I don't need to emulate.
I recompiled up-to-date git on that computer, and visual problems, at least, are gone. It must have been a result of other bugs that got fixed. I checked out where palette messages (and difference between with ext_paletted_texture and without) are coming from in wined3d. It's this call - IWineD3DSurface_PreLoad(pDestinationSurface) - in IWineD3DDevice_UpdateSurface. The difference is because lack of real 8bpp textures implies software conversion, and UpdateSurface falls back to software BltFast for converted surfaces and just copies in system memory. Later the game does set the palette, so further messages like that are avoided. So everything is right there AFAICT.
A few things can be done in device_load though. I'll send a patch in next few days with some fixes to helper function of device_load that can prevent that.
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #17 from Tobias Jakobi liquid.acid@gmx.net 2008-07-18 19:06:05 --- I was suggesting to emulate the extension because you complained that compiling on that system took so long.
http://bugs.winehq.org/show_bug.cgi?id=13860
Alexander Dorofeyev alexd4@inbox.lv changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #18 from Alexander Dorofeyev alexd4@inbox.lv 2008-07-22 10:40:08 --- Patch committed, should be fixed now, so marking FIXED.
http://bugs.winehq.org/show_bug.cgi?id=13860
--- Comment #19 from Tobias Jakobi liquid.acid@gmx.net 2008-07-22 15:23:46 --- Yep, thanks Alexander! Just tested Sacrifice with wine git master and the error messages are gone.
Greets, Tobias+
http://bugs.winehq.org/show_bug.cgi?id=13860
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #20 from Alexandre Julliard julliard@winehq.org 2008-07-25 13:17:59 --- Closing bugs fixed in 1.1.2.