https://bugs.winehq.org/show_bug.cgi?id=44863
--- Comment #12 from Zeb Figura z.figura12@gmail.com --- Created attachment 73868 --> https://bugs.winehq.org/attachment.cgi?id=73868 concatenated patches
The game juggles two vertex buffers, both 2 MB (65536 vertices). Each frame it repeatedly maps one vertex buffer and then draws with DrawIndexedPrimitiveVB, alternating which vertex buffer it uses. The draws themselves are small and only ever reference the first few vertices from the buffer, and there are a lot of them.
The attached two patches improve performance for me; the first from ~10 fps to ~25; the second up to 60. Apparently WINED3D_ACCESS_GPU | MAP_R | MAP_W without DYNAMIC is *really* bad for this usage pattern, even worse than uploading the whole buffer every frame. Which isn't exactly surprising.
I'd say this is questionable and needs tests, but honestly I'm not sure under what circumstance GPU | MAP_R | MAP_W is going to perform *better* than this?