3 ms·
> glMapBuffer doesn't have any ability to declare that you won't overwrite data. Well, yes and no. glMapBufferRange, which is basically a drop-in replacement f
by kllrnohj 9y ago
> glMapBuffer doesn't have any ability to declare that you won't overwrite data.
Well, yes and no. glMapBufferRange, which is basically a drop-in replacement for glMapBuffer, does have such a flag, it's GL_MAP_UNSYNCHRONIZED_BIT.
glMapBufferRange requires OpenGL 3.0 whereas glMapBuffer exists all the way back to OpenGL 2.0 but this looks more like just an oversight in Wine than anything else.
- twtw 9y agoWine uses glMapBufferRange when available, and has logic to translate D3DLOCK_NOOVERWRITE to GL_MAP_UNSYNCHRONIZED_BIT. I don't understand what the current implementation is doing that is causing wined3d_resource_map to block. https://github.com/wine-mirror/wine/blob/538263d0efe725124df88ce1cce124bc3ad7e2af/dlls/wined3d/resource.c#L422 https://github.com/wine-mirror/wine/blob/538263d0efe725124df...