http://bugs.winehq.org/show_bug.cgi?id=9565
Stefan Dösinger stefandoesinger@gmx.at changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wine-bugs@winehq.org AssignedTo|wine-bugs@winehq.org |stefandoesinger@gmx.at
--- Comment #1 from Stefan Dösinger stefandoesinger@gmx.at 2007-09-03 04:09:55 --- Looks like this bug copies between sysmem and video memory surfaces. Before that path the sysmem pool was ignored, and the surface treated as if it was in vidmem. This caused problems because the code loading the surface into gl freed the system memory copy of the surface, and it made locking expensive and caused performance troubles for other apps. So I disabled that blit because it is essentially wrong to do sysmem-related blits in video memory;
It looks like there are two issues: The performance regression, and the broken rendering. The performance regression is directly caused by this patch I think, but the broken rendering is a bug in the software blitting codepath that's not the direct fault of the patch.
I think we should reenable sysmem->vidmem blits in gl generally, and write a special sysmem->vidmem copy codepath in BltOverride. Appart of that, we should fix the software blitting code too.
Can you attach a +d3d,+d3d_surface trace?