http://bugs.winehq.org/show_bug.cgi?id=7585
--- Comment #13 from Andrew Charles Hurst a.hurst@shef.ac.uk 2007-08-10 19:04:44 --- Austin, I did some testing a while back. I narrowed it down thus:
0.9.28 esc is fine (very slow rendering)
0.9.29 program dies at startup!
0.9.30 esc hanging bug appears
Discussion with StefanD leads me to be pretty certain the bug appears due to the new Render Target Locking code introduced around 0.9.29 somewhere. (see comment 10)
The next stage in bug hunting was to take a the render surface using IWineD3DSurfaceImpl_SaveSnapshot or similar.
my IRC log:
14:25 < stefand> thats odd. take a look at IWineD3DSurfaceImpl_SaveSnapshot 14:26 < stefand> you can write a snapshot of the surface to the disk on unlock 14:26 < stefand> and see if the content is contructed correctly, or if there's some problem above that 14:26 < stefand> but you may rather try to use IWineGDISurfaceImpl_SaveSnapshot instead of the D3D one 14:27 < stefand> because the GDI function writes the snapshot from the system memory copy, while the d3d one draws from gl. 14:27 < stefand> it doesn't arrive properly at gl, so the D3D savesnapshot will give you a black screen 14:27 < stefand> you can add a IWineGDISurfaceImpl_SaveSnapshot in UnlockRect, in the render target codepath(that calls the ActivateContext(... CTXUSAGE_BLT)) 14:29 < ahurst> stefand: alright, thanks for your time, I'll give that a go and see where I get to.