https://bugs.winehq.org/show_bug.cgi?id=35624
--- Comment #8 from Henri Verbeet hverbeet@gmail.com --- Created attachment 47635 --> https://bugs.winehq.org/attachment.cgi?id=47635 patch
I think the attached patch should help.
It looks like this is NVIDIA specific, and essentially the same issue as bug 32485. When GL_MAP_INVALIDATE_BUFFER_BIT is set, the r600g driver only creates a new buffer if the current one is busy, while it seems the NVIDIA driver always does that. There's probably something to be said for both approaches. This didn't show up before commit ffc9f535eb7817ea4cd0d0657471e61a9813debd because we ended up in drawStridedSlow(), and the buffers would stay on the CPU.