Wine "PBA" Shows Potential For Improving Direct3D-Over-OpenGL Performance

Thanks to the perf subsystem and APITrace, he was able to figure out World of Warcraft's rendering technique and how a GPU pipeline stall was happening. He ended up making use of OpenGL's ARB_buffer_storage extension to write a GPU heap allocator that performs much better for buffer maps.
With this code, which he is staging in a branch called Wine-PBA (Persistent Buffer Allocator), his World of Warcraft results via Wine are very promising. In fact, 30~60% faster in some instances.
The Wine-PBA code is currently available but he's still working towards segregated free lists, chunked OpenGL buffer allocations, and improving the code as well as more extensive testing of this heap alloator. Right now it's not production quality, but once everything is addressed, he's hopeful to take the patches to mainline Wine.
More details on Wine-PBA via this blog post.
62 Comments