I've been trying to track some of the errors that I get with different games. To do that I've added some extra traces and this is what I see:
fixme:d3d_surface:read_from_framebuffer_texture glReadBuffer(0x405) was 0x8ce0 >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) @ ../../../wine.git/dlls/wined3d/surface.c / 918
0x405 is GL_BACK and 0x8ce0 is GL_COLOR_ATTACHMENT0_EXT. Also when this happens I have an inverted image of the entire screen in the left bottom corner. Is this an indication that we are reading from the wrong surface? Or writing into the wrong surface?
Attached is the patch that produces the above output. BTW if it looks fine to you guys (that extra TRACE()/FIXME() call overhead) then I can send it to wine-patches as well.
Vitaliy.