http://bugs.winehq.org/show_bug.cgi?id=12557
Summary: System Shock 2 Demo: Starting game results in black screen Product: Wine Version: unspecified Platform: Other URL: http://www.download.com/System-Shock-2-demo/3000-7539_4- 10031250.html OS/Version: other Status: UNCONFIRMED Severity: major Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: liquid.acid@gmx.net
Created an attachment (id=12130) --> (http://bugs.winehq.org/attachment.cgi?id=12130) shock2.exe run with d3d tracing
Hi there,
I just installed the System Shock 2 demo to check if it still does not work with wine (according to the AppDB it doesn't really work well).
And indeed, it doesn't even start. I get some very high pitched sound distortions after the loading screen ends. The usual background hum continues, but all I see is a black screen. Sometimes I see a dialogue box for some milliseconds, but that's all. Now wine consumes a huge amount of CPU and sometimes doesn't even let me switch to other applications (currently virtual desktop is on) and even VT switch is impossible. I have put wineserver -k on a ACPI event button, this is the only way I can kill wine after SS2 fucks it up.
I post a very short console log here and a more detailed d3d trace as attachment: err:ddraw:PixelFormat_DD2WineD3D Unknown Pixelformat! err:ddraw:IDirectDrawImpl_CreateNewSurface Unsupported / Unknown pixelformat err:ddraw:IDirectDrawImpl_CreateSurface IDirectDrawImpl_CreateNewSurface failed with 88760091 err:ddraw:PixelFormat_DD2WineD3D Unknown Pixelformat! err:ddraw:IDirectDrawImpl_CreateNewSurface Unsupported / Unknown pixelformat err:ddraw:IDirectDrawImpl_CreateSurface IDirectDrawImpl_CreateNewSurface failed with 88760091
The thing is that the game should use D3D, but I can't even select it in the options. The only thing I can select is a DirectDraw renderer. I'm going to create some ddraw traces, maybe these have additional informations.
BUT the game seems to use d3d calls (the d3d trace grew quite large).
Oh yes, I have added the safe_texture_manager stuff to the cam.cfg, according to board postings on the net this should reduce some problems on windows as well. But it doesn't really make any difference here, I also get a black screen without the config modification.
Greetings, Tobias
http://bugs.winehq.org/show_bug.cgi?id=12557
Tobias Jakobi liquid.acid@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jb.faq@gmx.de
http://bugs.winehq.org/show_bug.cgi?id=12557
Tobias Jakobi liquid.acid@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- OS/Version|other |Linux Platform|Other |PC Version|unspecified |0.9.59.
--- Comment #1 from Tobias Jakobi liquid.acid@gmx.net 2008-04-13 11:58:41 --- Additional infos on the system:
lspci: 00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
mesa 7.0.2 xorg-server 1.4.0.90 xf86-video-intel 2.2.99.902
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #2 from Tobias Jakobi liquid.acid@gmx.net 2008-04-13 12:18:01 --- Created an attachment (id=12134) --> (http://bugs.winehq.org/attachment.cgi?id=12134) shock2.exe run with ddraw tracing
http://bugs.winehq.org/show_bug.cgi?id=12557
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download
http://bugs.winehq.org/show_bug.cgi?id=12557
Lei Zhang thestig@google.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|major |normal
--- Comment #3 from Lei Zhang thestig@google.com 2008-04-14 15:43:40 --- Severity is not major.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #4 from Tobias Jakobi liquid.acid@gmx.net 2008-04-14 15:50:45 --- I should state that this is the second DirectX6 game I have problems with. The other one is Blood 2, which AFAIK also uses DX6 - this one is impossible to play in D3D mode.
Can someone post some information about the DX6 implementation of wine? I already searched the Wiki but found almost nothing about that version. Is it even supported at all?
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #5 from Tobias Jakobi liquid.acid@gmx.net 2008-04-14 15:54:17 --- http://www.winehq.org/pipermail/wine-users/2007-April/027117.html <- seems like my problems are even more serious :-D
I forgot to add something: I asked my colleague to test the demo on his NV card and it worked for him. I'm a bit surprised. I wasn't expecting uber-great performance from my i915 but even CS 1.5 is running and SS2 should use a similar amount of performance...
http://bugs.winehq.org/show_bug.cgi?id=12557
Alexander Dorofeyev alexd4@inbox.lv changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alexd4@inbox.lv
--- Comment #6 from Alexander Dorofeyev alexd4@inbox.lv 2008-04-14 16:43:00 --- (In reply to comment #4)
I should state that this is the second DirectX6 game I have problems with. The other one is Blood 2, which AFAIK also uses DX6 - this one is impossible to play in D3D mode.
Can someone post some information about the DX6 implementation of wine? I already searched the Wiki but found almost nothing about that version. Is it even supported at all?
All of DX6 (and earlier) interfaces and all or most of their functionality is there. But there are often many bugs. By selecting DirectDraw renderer you ARE selecting direct3d. Old D3D was kind of extension of ddraw. But, you are not the first person who mentions this issue in bug reports about old games (naming of renderer), so, perhaps, Wine doesn't properly report the name of device or something like that. Although it's non-essential and minor problem, to avoid user confusion it would, of course, be better if in Wine these kinds of options were presented identical to Windows. If you are absolutely sure it is "D3D" in Windows and something else in Wine (in renderer choices), and can verify that, then record exactly what it should be and what it is and/or make screenshots. But, open a new bug for that if you do, because it's unrelated.
This game reportedly ran before, so you can try some earlier versions and maybe do a regression test if they run SS2 better.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #7 from Tobias Jakobi liquid.acid@gmx.net 2008-04-14 17:18:46 --- The reason I mentioned DDraw was that the Sacrifice demo also only reports DirectDraw renderers. So something is definitely wrong there.
I can try a regression test, what wine version do you suggest? I suspect however that building old wine versions is going to be complicated. I already had a lot of trouble building versions for my last bisect, versions below 0.9.36 didn't really want to build on my 64bit system.
Oh yes, I forgot to mention that in the SS2 config menu I have exactly two renderer from which I can choose. But both are named the same: "DirectDraw blabla"
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #8 from Tobias Jakobi liquid.acid@gmx.net 2008-04-15 14:04:14 --- I tried shock2.exe with both wine-0.9.44 and wine-0.9.36 - these versions didn't even start the application. I just get nothing, an emtpy screen (when virtual desktop is activated).
Should I downgrade even more?
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #9 from Alexander Dorofeyev alexd4@inbox.lv 2008-04-16 01:32:48 --- (In reply to comment #8)
I tried shock2.exe with both wine-0.9.44 and wine-0.9.36 - these versions didn't even start the application. I just get nothing, an emtpy screen (when virtual desktop is activated).
Should I downgrade even more?
I think, no. AppDB indicates that it likely has worked around 0.9.53. But maybe on Intel it never did.
http://bugs.winehq.org/show_bug.cgi?id=12557
Jan Buecken jb.faq@gmx.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #10 from Jan Buecken jb.faq@gmx.de 2008-04-16 04:53:42 --- *** This bug has been confirmed by popular vote. ***
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #11 from Tobias Jakobi liquid.acid@gmx.net 2008-04-16 13:59:49 --- I wanted to add that Jan and I tested this on a Intel i945 chipset. Another Intel that doesn't work. The test was done with 0.9.58, 0.9.44 and 0.9.36 - no luck at all.
I can do a test on my NV35 card - sort of a reference check. I still hope to get this working on the Intel cards. Any ideas what to do (and check)?
Greetings, Tobias
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #12 from Tobias Jakobi liquid.acid@gmx.net 2008-04-16 15:53:00 --- Tested on NV35 and it worked flawless. I only had some minor rendering issues, but nothing that made the game unplayable.
I really have the impression that at least DX6 never really worked with Intel cards. That's the same with Blood 2 for me. I can get it working somehow there, but either it segfaults or if I can get it running it's horribly slow and visuals are garbled. Any ideas about DX6 games I can test? Games with demos are preferred :D
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #13 from Alexander Dorofeyev alexd4@inbox.lv 2008-04-17 02:56:47 --- (In reply to comment #12)
Tested on NV35 and it worked flawless. I only had some minor rendering issues, but nothing that made the game unplayable.
I really have the impression that at least DX6 never really worked with Intel cards. That's the same with Blood 2 for me. I can get it working somehow there, but either it segfaults or if I can get it running it's horribly slow and visuals are garbled. Any ideas about DX6 games I can test? Games with demos are preferred :D
Intel has many problems because of driver bugs, but usually of the sort of crashing / memory corruption. I don't know if that could be related.
DX6 is a bit moot, because some games claim to require it during install, but actually appear to use basic functionality that should've been available prior to dx6. The code in wine is mostly common anyway. Some old demos that I know that use d3d/ddraw of dx6 or prior and should be available for download:
Aliens vs Predator 1 demo Forsaken demo Moto Racer demo
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #14 from Alexander Dorofeyev alexd4@inbox.lv 2008-04-18 14:57:37 --- (In reply to comment #7)
The reason I mentioned DDraw was that the Sacrifice demo also only reports DirectDraw renderers. So something is definitely wrong there.
I would appreciate if you create separate bug for that, with full info included: what the game reports on native, what it reports on wine, screenshots or exact output, the more games the better.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #15 from Tobias Jakobi liquid.acid@gmx.net 2008-04-20 13:58:53 --- Info: The AvP1 demo works for me. I have problems with transparency there but I get a somehow playable game.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #16 from Alexander Dorofeyev alexd4@inbox.lv 2008-04-21 11:30:29 --- Tried to analyze the log, but I think there isn't enough info to tell where that strange error is coming from. Try creating more verbose log with +ddraw,+ddraw_thunk,+d3d7,+d3d.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #17 from Tobias Jakobi liquid.acid@gmx.net 2008-04-27 16:01:30 --- Created an attachment (id=12526) --> (http://bugs.winehq.org/attachment.cgi?id=12526) shock2.exe run with WINEDEBUG=+ddraw,+ddraw_thunk,+d3d7,+d3d
simple run where I only switch into the config menu and into the graphics device setup maybe this also helps with the "only DirectDraw renderer showing up" problem
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #18 from Tobias Jakobi liquid.acid@gmx.net 2008-04-27 16:03:28 --- Created an attachment (id=12527) --> (http://bugs.winehq.org/attachment.cgi?id=12527) shock2.exe run with WINEDEBUG=+ddraw,+ddraw_thunk,+d3d7,+d3d
run with entering straight into the game loading sequence ends, the HDA codec outputs some high pitched clicks, after that I wait a few seconds, then finishing the process with "wineserver -k"
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #19 from Alexander Dorofeyev alexd4@inbox.lv 2008-04-30 15:09:17 --- BTW is there a chance you are using any direct3d registry overrides as described in http://wiki.winehq.org/UsefulRegistryKeys? Probably not, as you didn't mention it and also it works for you on nvidia, but just asking to be sure.
I've found there's a bug with RenderTargetLockMode=readtex that affects Nvidia cards and produces similar results (menu failing to render). It affects at least Thief (The Dark Project) and System Shock 2. I'll file a bug for that.
I will also try to analyze your new log.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #20 from Alexander Dorofeyev alexd4@inbox.lv 2008-04-30 15:27:35 --- Ok, there's something interesting in the log. I compared to such log on my machine, and it looks like the game wants 16-bit Z-BUFFER and on my machine the app gets it from IDirect3DImpl_7_EnumZBufferFormats, cancels enumeration and proceeds happily.
On your card it looks like D16 format is never returned by IDirect3DImpl_7_EnumZBufferFormats. Possibly this is what confuses the game.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #21 from Tobias Jakobi liquid.acid@gmx.net 2008-04-30 16:23:34 --- (In reply to comment #19)
BTW is there a chance you are using any direct3d registry overrides as described in http://wiki.winehq.org/UsefulRegistryKeys? Probably not, as you didn't mention it and also it works for you on nvidia, but just asking to be sure.
No, I only have set GLSL to disabled since the i915 doesn't support it in the first place. This may change with future driver releases, but currently it only has ARB_fragment_program and ARB_vertex_program support.
(In reply to comment #20)
Ok, there's something interesting in the log. I compared to such log on my machine, and it looks like the game wants 16-bit Z-BUFFER and on my machine the app gets it from IDirect3DImpl_7_EnumZBufferFormats, cancels enumeration and proceeds happily.
On your card it looks like D16 format is never returned by IDirect3DImpl_7_EnumZBufferFormats. Possibly this is what confuses the game.
Oh no, not again. You maybe wanna take at look at this bug http://bugs.winehq.org/show_bug.cgi?id=11970
That's OpenGL but it shows the Intel misbehaving when it comes to z-buffer formats. Probably these two are related, but as I have no deeper insight into the wine source I can't say for sure.
And thanks for looking into that! Anything further I can do? I have currently access to three Intel based systems. One i915 chipset on my laptop system (only linux env, no Windows here), a i945 on my university machine (also linux env only, Ubuntu based distro, rather old driver for the card) and a i965 (at least that's what I remember) with a windows-only (XP distro) config.
Greetings, Tobias
http://bugs.winehq.org/show_bug.cgi?id=12557
Alexander Dorofeyev alexd4@inbox.lv changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |thunderbird2k@gmx.net
--- Comment #22 from Alexander Dorofeyev alexd4@inbox.lv 2008-04-30 17:00:44 --- (In reply to comment #21)
(In reply to comment #19) And thanks for looking into that! Anything further I can do? I have currently access to three Intel based systems. One i915 chipset on my laptop system (only linux env, no Windows here), a i945 on my university machine (also linux env only, Ubuntu based distro, rather old driver for the card) and a i965 (at least that's what I remember) with a windows-only (XP distro) config.
You can attach glxinfo output for non-working card(s).
This bug looks like something for Roderick, as afaik he's the man working on this part. I'll add him to CC here. Not sure if this will notify him, so contacting him on #winehackers may be a good idea too. I would tell him, but he isn't on the channel atm.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #23 from Alexander Dorofeyev alexd4@inbox.lv 2008-05-01 05:37:10 --- Created an attachment (id=12614) --> (http://bugs.winehq.org/attachment.cgi?id=12614) sshock log on a system where it works
For the record, adding first 70000 lines of the log on my system. The interesting part is near EnumZBufferFormats.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #24 from Tobias Jakobi liquid.acid@gmx.net 2008-05-01 17:16:11 --- Created an attachment (id=12628) --> (http://bugs.winehq.org/attachment.cgi?id=12628) glxinfo on my i915 based system (non-working)
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #25 from Alexander Dorofeyev alexd4@inbox.lv 2008-05-01 19:35:20 --- Created an attachment (id=12631) --> (http://bugs.winehq.org/attachment.cgi?id=12631) hack for intel
Can you try this hack, please. If it doesn't improve anything, post +ddraw,+ddraw_thunk,+d3d7,+d3d,+d3d_caps log with this hack.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #26 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-02 02:41:43 --- Likely my latest patch (http://www.winehq.org/pipermail/wine-patches/2008-May/054435.html) fixes the issue. Basically DirectDraw never requested a depth buffer. Before it worked because WineD3D was only able to use a single pixel format and on that one we always had a depth buffer.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #27 from Alexander Dorofeyev alexd4@inbox.lv 2008-05-02 08:35:05 --- (In reply to comment #26)
Likely my latest patch (http://www.winehq.org/pipermail/wine-patches/2008-May/054435.html) fixes the issue. Basically DirectDraw never requested a depth buffer. Before it worked because WineD3D was only able to use a single pixel format and on that one we always had a depth buffer.
I think this could be a separate issue - CheckDeviceFormat failing for D16 because only 24/8 depth/stencil is available. Anyway, since your fix is in git it should be easy to find out now - by simply updating git.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #28 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-02 08:49:26 --- I haven't checked the log but in general when no 16-bit depth format is around we accept 24-bit (IsPixelFormatCompatibleWithDepthStencilFmt or whatever the function is called does that).
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #29 from Tobias Jakobi liquid.acid@gmx.net 2008-05-02 08:50:08 --- I'm gonna test git on the i945 system, if that does not work I check it again with the patch applied. I can do a check with my i915 system this evening.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #30 from Tobias Jakobi liquid.acid@gmx.net 2008-05-02 11:07:54 --- Results from the i945 system. The problem is somehow still there, but it has changed to some degree. I know can identify an error message box in the virtual desktop. I'm gonna attach a screenshot so you can see what I mean.
I also get these outputs on console: fixme:win:EnumDisplayDevicesW ((null),0,0x32f7dc,0x00000000), stub! fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 16 fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 16 err:d3d:WineD3D_ChoosePixelFormat Can't find a suitable iPixelFormat err:ddraw:PixelFormat_DD2WineD3D Unknown Pixelformat! err:ddraw:IDirectDrawImpl_CreateNewSurface Unsupported / Unknown pixelformat err:ddraw:IDirectDrawImpl_CreateSurface IDirectDrawImpl_CreateNewSurface failed with 88760091 fixme:d3d:IWineD3DDeviceImpl_ValidateDevice (0x155b20) : stub fixme:d3d:IWineD3DDeviceImpl_ValidateDevice (0x155b20) : stub fixme:d3d:IWineD3DDeviceImpl_ValidateDevice (0x155b20) : stub err:ddraw:PixelFormat_DD2WineD3D Unknown Pixelformat! err:ddraw:IDirectDrawImpl_CreateNewSurface Unsupported / Unknown pixelformat err:ddraw:IDirectDrawImpl_CreateSurface IDirectDrawImpl_CreateNewSurface failed with 88760091 fixme:d3d:IWineD3DDeviceImpl_ValidateDevice (0x155b20) : stub fixme:d3d:IWineD3DDeviceImpl_ValidateDevice (0x155b20) : stub fixme:d3d:IWineD3DDeviceImpl_ValidateDevice (0x155b20) : stub
That's with current GIT, Alexander's patch was not applied.
Now doing a check with the patch...
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #31 from Tobias Jakobi liquid.acid@gmx.net 2008-05-02 11:10:06 --- Created an attachment (id=12643) --> (http://bugs.winehq.org/attachment.cgi?id=12643) screen after the game stops
test run on i945 system, no patch applied (just pure GIT)
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #32 from Tobias Jakobi liquid.acid@gmx.net 2008-05-02 12:08:07 --- Created an attachment (id=12645) --> (http://bugs.winehq.org/attachment.cgi?id=12645) shock2.exe segfaults with patched wine GIT on i945
after applying the patch the game now exits immediately with a segfault
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #33 from Tobias Jakobi liquid.acid@gmx.net 2008-05-02 12:14:12 --- Created an attachment (id=12646) --> (http://bugs.winehq.org/attachment.cgi?id=12646) shock2.exe on i945, patched GIT: crashing not predictable
W00t!
I started shock2.exe a second time and not it worked. I could actually enter the game and move around. I didn't try out many things but tried to exit the game again, triggering a segfault when pressing ESC.
Seems a bit unstable but at least it's now possible to get in-game.
Leaving campus now, I try it again on my home system.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #34 from Alexander Dorofeyev alexd4@inbox.lv 2008-05-02 13:07:17 --- Random-like crashing probably is that evil intel driver memory corruption bug, there isn't much we can do about it :(.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #35 from Tobias Jakobi liquid.acid@gmx.net 2008-05-02 14:48:12 --- I'm currently cloning GIT on my local i915 system. I have recent GPU drivers, like mesa 7.0.3 and xf86-video-intel-2.3.0. I hope this works, at least regular OpenGl applications are very stable with my card.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #36 from Tobias Jakobi liquid.acid@gmx.net 2008-05-02 14:51:37 --- Forgot:
The crashing does not seem to be random. It either happens when the game is started, means right after the loading sequence ends and the engine gets "in-game". The other crash ocurred when pressing ESC. I still have to find out what should happen there, but I suspect that the game changes to the regular 2D game menu.
So it's not totally random. You can trigger it with specific actions. Have to look into this a bit more.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #37 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-03 07:39:13 --- Created an attachment (id=12661) --> (http://bugs.winehq.org/attachment.cgi?id=12661) proposed fix
Try this patch.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #38 from Tobias Jakobi liquid.acid@gmx.net 2008-05-03 07:50:40 --- Hi Roderick,
thanks for the patch. I gonna try it later.
Currently I'm still experimenting with the GIT snapshot and Alexander's hack. It seems to work somehow, but the gfx are garbled (I'm gonny create some shots) and it's really slow, like 1 frame every 2 seconds.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #39 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-03 09:45:07 --- The game is known to be slow. It uses z-buffer read backs a lot which are slow. On nvidia hardware the game is fast these days for a big part due to the availability of PBOs. If you want to play this game upgrade your videocard.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #40 from Tobias Jakobi liquid.acid@gmx.net 2008-05-03 10:45:03 --- Created an attachment (id=12670) --> (http://bugs.winehq.org/attachment.cgi?id=12670) shock2.exe run on i915 system
this is GIT patched with Alexander's hack shock2.exe was run on the i915 system notice the vertical lines, the pattern isn't static - sometimes it changes, but usually when moving around (so when the screen content itself changes, maybe this is related to framebuffer readbacks?)
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #41 from Tobias Jakobi liquid.acid@gmx.net 2008-05-03 10:46:10 --- Created an attachment (id=12671) --> (http://bugs.winehq.org/attachment.cgi?id=12671) shock2.exe run on i915 (another shot)
another screenshot this time you can see a bit more, even status messages are displayed :-)
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #42 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-03 10:50:18 --- I really recommend you to try my patch as it another big issue not fixed by the previous hack (actually the hack is correct, I did something similar). It might result in a better pixel format..
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #43 from Tobias Jakobi liquid.acid@gmx.net 2008-05-03 10:58:19 --- Additional informations:
I updated my in-portage wine version to 0.9.61 and checked the game with this version. It does not work and seems to display the same error message box like on the other screenshot I attached. The thing is that on the i945 system the message box (even if it's not drawn correctly) stays, so I can take a screenshot. On the i915 system it only shows up for some milliseconds and is gone after that, resulting in a fully black screen.
Alexander's hack is working partially on i915. I tried starting the game multiple times and it was possible to get in-game every time. So this seems to be stable. I did however NOT try to exit the game via ESC, I always used the wineserver -k method. This however did not produce segfaults or any other error messages.
Next thing I'm gonna do is to check (and record) what happens in case I exit the game with ESC (logs are coming...) After that I try Roderick's patch on a new GIT snapshot and check back here.
@pixel buffer objects: I was under the impression that the i915tex driver (which is now renamed to i915, the previous i915 mesa driver was dropped) DOES support PBO, at least I can read something about i915 and PBO on the mesa bugzilla: http://bugs.freedesktop.org/show_bug.cgi?id=13747
I really don't know whats happening there.
According to the mesa changelog http://www.mesa3d.org/relnotes-6.5.2.html the i915tex driver should have these capabilities. But you're right, I don't see them exposed in the glxinfo extension string...
Gonna ask on the freedesktop ml for help.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #44 from Tobias Jakobi liquid.acid@gmx.net 2008-05-03 11:03:35 --- Created an attachment (id=12673) --> (http://bugs.winehq.org/attachment.cgi?id=12673) shock2.exe run on i915, pressing ESC results in big trouble
using GIT snapshot + Alexander's hack getting into game works as usual, I'm walking around a bit (to me it seems like the status display in the middle of the screen is drawn OVER the vertical lines, or not??) and then pressing ESC
@Roderick: That's the next thing I try :-)
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #45 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-03 11:13:55 --- PBOs are around if GL_ARB_pixel_buffer_object is shown by glxinfo.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #46 from Tobias Jakobi liquid.acid@gmx.net 2008-05-03 11:15:40 --- Yep, I know that (I programmed a lot in OpenGL in the past) - but sadly that's not the case here... :-(
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #47 from Tobias Jakobi liquid.acid@gmx.net 2008-05-03 12:35:02 --- Behaviour with your patch Roderick isn't as "stable" as with Alexander's patch.
It sometimes works to get into the game, sometimes the screen stays black. I'm currently experimenting inside my XFCE environment, going to do some test in a failsafe environment without window manager.
The visual errors (vertical colored lines) stay however, IF I manage to get in-game.
I have posted a message to the mesa3d-users ml asking them for help about the PBO "problem".
Any traces I can do?
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #48 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-03 12:59:24 --- Alexander his patch only lets IsPixelFormatCompatibleWithDepthFmt continue but doesn't change WineD3D_ChoosePixelFormat which is needed. (Well it isn't really needed as without it would fall back to plain ChoosePixelFormat but in general it is better not to call it as it wouldn't allow you multisampling and other extended pixel format features)
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #49 from Tobias Jakobi liquid.acid@gmx.net 2008-05-03 14:49:54 --- I have quite some problems getting sane results with the failsafe terminal.
I have virtual desktop enabled and if I don't pipe (via &>) all console output into a file and just start wine with: ~/wine-git/wine shock2.exe The process crashes with a flood of logging output to the console as soon as the loading sequence ends.
Still trying to capture the log somehow.
If I pipe the output into a file the process also crashes, but the log is quite small. It's not the same crashing behaviour.
I also tested the AvP1 demo with wine-0.9.61 and z-buffer problems are gone (I had portions of the scene, almost only dynamic structures like water or doors rendered wrong with wine-0.9.60). But I'm also experiencing the vertical lines there, BUT not in-game. Only during the starting sequence and the ending sequence (as bunch of pictures is shown when you quit the game, these pictures are affected by the vertical line bug).
I'm going to make some checks for shock2 without vdesktop.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #50 from Tobias Jakobi liquid.acid@gmx.net 2008-05-03 15:18:46 --- Created an attachment (id=12677) --> (http://bugs.winehq.org/attachment.cgi?id=12677) shock2.exe runs on failsafe terminal X environment
i made multiple runs, testing some settings
runs are documented inside the log, interested is a change in crash behaviour when ingame resolution is changed.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #51 from Tobias Jakobi liquid.acid@gmx.net 2008-05-03 17:14:48 --- In can confirm that setting RenderTargetLockMode to textex also (partially) solves the problem with System Shock 2. The gfx issues are gone and the performance is much better (still bad, but a big improvement when comparing to readdraw mode).
I still get these a lot: fixme:d3d_surface:IWineD3DSurfaceImpl_LockRect Reading from render target with a texture isn't implemented yet, falling back to framebuffer reading
Pressing ESC also works now, but not with the desired effect. Upon pressing ESC rendering stops, BUT the application does not crash. The menu that should show up does not. Pressing ESC again lets the "ingame rendering" continue and I can play again. Exiting via Alt+F4 is possible and works with problems.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #52 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-04 03:27:22 --- Just set it to readtex. If someone can test on Nvidia if the issues are there too (most likely they aren't) then you know whether it is a driver bug or not. I believe Stefan tried it on his Geforce7 less than a month ago and it worked great.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #53 from Alexander Dorofeyev alexd4@inbox.lv 2008-05-04 04:14:42 --- (In reply to comment #52)
Just set it to readtex. If someone can test on Nvidia if the issues are there too (most likely they aren't) then you know whether it is a driver bug or not. I believe Stefan tried it on his Geforce7 less than a month ago and it worked great.
On nvidia i've issues with readtex in these games (http://bugs.winehq.org/show_bug.cgi?id=12890). With default settings it works visually ok on geforce 2 mx and geforce 6100, although on geforce2 mx performance is poor (just few fps vs what feels like at least 20-30 fps on windows xp in 1024x768).
Don't know about the color lines. Considering the effect of RT lock mode setting, i guess it's glDrawPixels that produces issues? I guess it may be worth seeking some non-wine opengl tests or demos that do read/draw pixels a lot. If same thing shows up there then obviously it's not wine's problem.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #54 from Alexander Dorofeyev alexd4@inbox.lv 2008-05-04 04:19:16 --- Hmm. BTW, this is somewhat similar: http://bugs.winehq.org/show_bug.cgi?id=12092 (reportedly on radeon with open source drivers).
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #55 from Austin English austinenglish@gmail.com 2008-05-04 04:43:44 --- (In reply to comment #52)
Just set it to readtex. If someone can test on Nvidia if the issues are there too (most likely they aren't) then you know whether it is a driver bug or not. I believe Stefan tried it on his Geforce7 less than a month ago and it worked great.
Works fine with nvidia geforce fx 5200 / 169.12 drivers.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #56 from Tobias Jakobi liquid.acid@gmx.net 2008-05-04 08:11:36 --- (In reply to comment #53)
On nvidia i've issues with readtex in these games (http://bugs.winehq.org/show_bug.cgi?id=12890). With default settings it works visually ok on geforce 2 mx and geforce 6100, although on geforce2 mx performance is poor (just few fps vs what feels like at least 20-30 fps on windows xp in 1024x768).
Does wine really create such high amount of overhead?
Don't know about the color lines. Considering the effect of RT lock mode setting, i guess it's glDrawPixels that produces issues? I guess it may be worth seeking some non-wine opengl tests or demos that do read/draw pixels a lot. If same thing shows up there then obviously it's not wine's problem.
Any application/demo you can suggest?
I'm going to file a bugreport for mesa nonetheless. If the radeon OS driver is also affected this may be a bug that's affecting more than one card.
Still no answer from the mesa3d-users ml yet. I'm going to try bumping some of my gfx components to GIT, maybe I can get the features this way. Currently I'm suspecting that the mesa build system still creates the ordinary "old" i915 driver. Why do I think that? I can find 4 libs in /usr/lib/dri: i810_dri.so i915_dri.so i915tex_dri.so i965_dri.so
According to my knowledge about the mesa i915 driver development the i915tex_dri.so should not exist at all. There should be only one lib, the i915_dri.so - so I tried to symlink i915tex_dri.so to i915_dri.so, resulting in indirect rendering. Reason was a too old DRM interface (LIBGL_DEBUG=verbose).
My DRM interface version is 1.6.0 and the i915tex driver wants a 1.7.x interface. So the i915 driver seems to be satisfied with only the old 1.6.0 interface. Another proof more me that I'm not using the modern driver rewrite, since this one uses TTM and the more recent goodies from the DRM tree.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #57 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-04 09:54:13 --- The main limitation for older ddraw / d3d apps is the poor LockRect / UnlockRect performance. These calls on Windows give you direct access to e.g. the framebuffer (they can give you a direct pointer to the video memory). OpenGL doesn't provide this and we need to read the data from the framebuffer on a LockRect operation and need to write the result back to screen during an UnlockRect operation. On systems with PBOs performance is a lot better because they give you asynchronous reads / writes which results in that you don't have to wait before you can continue with other tasks.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #58 from Tobias Jakobi liquid.acid@gmx.net 2008-05-04 17:13:10 --- I was right about the driver fiasco. mesa was indeed also still building the older driver components (and X was using it). After massive GIT upgrades (kernel DRM, libdrm, mesa, xorg-server, dri2proto, etc.) I can finally use the new i915tex codebase. And it's really MUCH faster than the old driver, I have doubled my framerate in quake3.
New glxinfo output: name of display: :0.0 display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.2 server glx extensions: GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_OML_swap_method, GLX_SGI_swap_control, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group client glx vendor string: SGI client glx version string: 1.4 client glx extensions: GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory, GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control, GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap GLX version: 1.2 GLX extensions: GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap OpenGL vendor string: Tungsten Graphics, Inc OpenGL renderer string: Mesa DRI Intel(R) 915GM 20061102 x86/MMX/SSE2 OpenGL version string: 1.4 Mesa 7.1 OpenGL extensions: GL_ARB_depth_texture, GL_ARB_fragment_program, GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_shadow, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, GL_ARB_texture_cube_map, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two, GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_clip_volume_hint, GL_EXT_cull_vertex, GL_EXT_compiled_vertex_array, GL_EXT_copy_texture, GL_EXT_draw_range_elements, GL_EXT_framebuffer_object, GL_EXT_fog_coord, GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object, GL_EXT_point_parameters, GL_EXT_polygon_offset, GL_EXT_rescale_normal, GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap, GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_3DFX_texture_compression_FXT1, GL_APPLE_client_storage, GL_APPLE_packed_pixels, GL_ATI_blend_equation_separate, GL_ATI_separate_stencil, GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_ycbcr_texture, GL_MESA_window_pos, GL_NV_blend_square, GL_NV_light_max_exponent, GL_NV_point_sprite, GL_NV_texture_rectangle, GL_NV_texgen_reflection, GL_NV_vertex_program, GL_NV_vertex_program1_1, GL_OES_read_format, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SGIX_depth_texture, GL_SUN_multi_draw_arrays
visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat ---------------------------------------------------------------------- 0x21 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None 0x22 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None 0x55 32 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
As you can see there is finally FBO and PBO support. Also glDrawPixels and glReadPixels performance has increased. Driver behaviour hasn't changed though.
I still can't get into game with wine-0.9.61, but this time the black error message box stays on screen. With Roderick's patch it's possible to get ingame. With RenderTargetLockMode set to auto performance is still not acceptable for real playing, but with readtex it's OK. Not fast but a GREAT improvement compared to the older driver.
Does wine use PBO and FBO now by default, or do I have to somehow force the usage, Roderick?
Vertical colored lines are gone, this also applies to AvP1. I still have the problem that the menu doesn't appear when pressing ESC. It's simply not rendered, but I can hear that it's there (the ambient sound changes). That's with readtex.
With auto everything is correct, menu is rendered like it should.
Should I file a different bugreport for that one?
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #59 from Alexander Dorofeyev alexd4@inbox.lv 2008-05-04 17:25:04 --- (In reply to comment #58)
Does wine use PBO and FBO now by default, or do I have to somehow force the usage, Roderick?
PBO - yes, FBO - no (there's OffscreenRenderingMode registry key for that).
Vertical colored lines are gone, this also applies to AvP1. I still have the problem that the menu doesn't appear when pressing ESC. It's simply not rendered, but I can hear that it's there (the ambient sound changes). That's with readtex.
With auto everything is correct, menu is rendered like it should.
Should I file a different bugreport for that one?
I believe this is http://bugs.winehq.org/show_bug.cgi?id=12890. I think Thief probably shares some code with SS2, as afaik same developers participated in both. I've the same thing on nvidia, btw.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #60 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-05 11:40:32 --- Does it work properly using my patch? If so I'm going to submit it.
http://bugs.winehq.org/show_bug.cgi?id=12557
Tobias Jakobi liquid.acid@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #61 from Tobias Jakobi liquid.acid@gmx.net 2008-05-05 11:44:12 --- Yes, the initial problem (black screen after loading sequence, or better "invisible error message box") is gone. What stays is the menu problem with readtex.
I'm going to set this one to fixed.
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #62 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-05 11:48:16 --- Ok, I will submit it then. Note that normally a bug is marked as fixed after the fix is in ... (just for next time)
http://bugs.winehq.org/show_bug.cgi?id=12557
--- Comment #63 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-05 14:29:43 --- It is in now.
http://bugs.winehq.org/show_bug.cgi?id=12557
Roderick Colenbrander thunderbird2k@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #64 from Roderick Colenbrander thunderbird2k@gmx.net 2008-05-08 14:31:09 --- Closing because the bug has been fixed.