diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-03-19 16:13:50 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-03-19 16:14:32 +0300 |
commit | 772e558e92e1219761ea2fa7a217610f7110d800 (patch) | |
tree | 18bdeee15c2f54f2dd4ae5e79b49b28c47ef622f /intern/gawain | |
parent | f2ae7796c345a56495d463e409f218cbcfd3ebe2 (diff) |
GWN: Perf: Use unsync glMapBufferRange to prevent sync time.
Diffstat (limited to 'intern/gawain')
-rw-r--r-- | intern/gawain/src/gwn_vertex_buffer.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/intern/gawain/src/gwn_vertex_buffer.c b/intern/gawain/src/gwn_vertex_buffer.c index 35538342c2d..17c2a3e9364 100644 --- a/intern/gawain/src/gwn_vertex_buffer.c +++ b/intern/gawain/src/gwn_vertex_buffer.c @@ -101,7 +101,7 @@ void GWN_vertbuf_data_alloc(Gwn_VertBuf* verts, unsigned v_ct) verts->vbo_id = GWN_buf_id_alloc(); glBindBuffer(GL_ARRAY_BUFFER, verts->vbo_id); glBufferData(GL_ARRAY_BUFFER, buffer_sz, NULL, convert_usage_type_to_gl(verts->usage)); - verts->data = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); + verts->data = glMapBufferRange(GL_ARRAY_BUFFER, 0, buffer_sz, GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT); } void GWN_vertbuf_data_resize_ex(Gwn_VertBuf* verts, unsigned v_ct, bool keep_data) @@ -150,13 +150,13 @@ void GWN_vertbuf_data_resize_ex(Gwn_VertBuf* verts, unsigned v_ct, bool keep_dat // if the buffer was mapped, update it's pointer if (verts->data) - verts->data = glMapBuffer(GL_COPY_READ_BUFFER, GL_WRITE_ONLY); + verts->data = glMapBufferRange(GL_COPY_READ_BUFFER, 0, new_buf_sz, GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT); } static void VertexBuffer_map(Gwn_VertBuf* verts) { glBindBuffer(GL_ARRAY_BUFFER, verts->vbo_id); - verts->data = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); + verts->data = glMapBufferRange(GL_ARRAY_BUFFER, 0, GWN_vertbuf_size_get(verts), GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT); } static void VertexBuffer_unmap(Gwn_VertBuf* verts) |