http://bugs.winehq.org/show_bug.cgi?id=34542
--- Comment #10 from Henri Verbeet hverbeet@gmail.com 2013-09-23 10:14:54 CDT --- (In reply to comment #9)
The patch did help! the performance on window mode is great again! but my knowledge still very limited I see that you have removed a block of code, I am wondering if this will make diference for other programs? I did generate the log still interested?
surface_blt_special() contains some optimized paths for certain types of blits. The if-statement that is removed by the patch restricts it to render targets, probably to avoid a bunch of checks if we already know surface_blt_special() can't help. Unfortunately the if-statement is incorrect, because the restriction should really be about onscreen surfaces. It's also redundant because surface_blt_special() already contains a correct check at http://source.winehq.org/git/wine.git/blob/24fbe9f2ecfdac12dcf7af49f03d7624d....
The reason you're hitting this code at all is because your GL driver doesn't support FBO blits, and the hardware doesn't support fragment shaders, which would have been the preferred ways of doing blits.