https://bugs.winehq.org/show_bug.cgi?id=39421
--- Comment #11 from Jonas Maebe jonas.bugzilla@gmail.com --- I looked a bit through the wined3d code this weekend, and it seems it already partly works the way I described above. The main difference is that it does get and convert the contents of the current VRAM frontbuffer into a texture before compositing it with the new blitted data, rather than keeping the result of the previous rendering into a texture.
Since the location of a surface is a bitmask, it seems that in theory it should be possible to simultaneously keep the frontbuffer's contents both in system memory (for use by the ddraw application in case it locks it manually) and in a texture (for use during the next rendering).