Micro optimization: When sending cell uniform data dont even map the color table region in memory unless the color table is dirty

This commit is contained in:
Kovid Goyal
2025-12-10 08:49:02 +05:30
parent 8448f737ae
commit 025dccf182
3 changed files with 13 additions and 4 deletions

View File

@@ -391,6 +391,12 @@ map_buffer(ssize_t idx, GLenum access) {
return ans;
}
static void*
map_buffer_range(ssize_t idx, GLbitfield access, int offset, unsigned size) {
return glMapBufferRange(buffers[idx].usage, offset, size, access);
}
static void
unmap_buffer(ssize_t idx) {
glUnmapBuffer(buffers[idx].usage);
@@ -500,10 +506,10 @@ alloc_vao_buffer(ssize_t vao_idx, GLsizeiptr size, size_t bufnum, GLenum usage)
}
void*
map_vao_buffer(ssize_t vao_idx, size_t bufnum, GLenum access) {
map_vao_buffer_for_write_only(ssize_t vao_idx, size_t bufnum, int offset, unsigned size) {
ssize_t buf_idx = vaos[vao_idx].buffers[bufnum];
bind_buffer(buf_idx);
return map_buffer(buf_idx, access);
return map_buffer_range(buf_idx, GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_RANGE_BIT, offset, size);
}
void*