diff options
author | Jeroen Bakker <jeroen@blender.org> | 2020-05-04 17:00:47 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2020-05-04 17:00:47 +0300 |
commit | 37182c369aa64eda8cb287a1e7dc857c8f58906f (patch) | |
tree | f19c0c3fbd66b9273c6d58a4d71bd75595efe5db /source/blender/gpu | |
parent | 079fc65e0a306ff4bfc7d03a121d164ab67d0cb3 (diff) |
GPU: Set Default Buffer Size Immediate Mode
We set the default buffer size for strict buffers to 0. This increased
the performance on intel but reduced the performance on old AMD cards.
This patch sets back the default buffer size for strict buffers. After
testing I didn't detect a slow-down anymore.
Note that today new firmwares were pushed to the device what might fix
some issues.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/intern/gpu_immediate.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/source/blender/gpu/intern/gpu_immediate.c b/source/blender/gpu/intern/gpu_immediate.c index 2d093dacdce..7bcb0a7a552 100644 --- a/source/blender/gpu/intern/gpu_immediate.c +++ b/source/blender/gpu/intern/gpu_immediate.c @@ -48,7 +48,6 @@ typedef struct ImmediateDrawBuffer { GLubyte *buffer_data; uint buffer_offset; uint buffer_size; - uint default_size; } ImmediateDrawBuffer; typedef struct { @@ -96,12 +95,10 @@ void immInit(void) imm.draw_buffer.vbo_id = GPU_buf_alloc(); imm.draw_buffer.buffer_size = DEFAULT_INTERNAL_BUFFER_SIZE; - imm.draw_buffer.default_size = DEFAULT_INTERNAL_BUFFER_SIZE; glBindBuffer(GL_ARRAY_BUFFER, imm.draw_buffer.vbo_id); glBufferData(GL_ARRAY_BUFFER, imm.draw_buffer.buffer_size, NULL, GL_DYNAMIC_DRAW); imm.draw_buffer_strict.vbo_id = GPU_buf_alloc(); - imm.draw_buffer_strict.buffer_size = 0; - imm.draw_buffer_strict.default_size = 0; + imm.draw_buffer_strict.buffer_size = DEFAULT_INTERNAL_BUFFER_SIZE; glBindBuffer(GL_ARRAY_BUFFER, imm.draw_buffer_strict.vbo_id); glBufferData(GL_ARRAY_BUFFER, imm.draw_buffer_strict.buffer_size, NULL, GL_DYNAMIC_DRAW); @@ -251,10 +248,10 @@ void immBegin(GPUPrimType prim_type, uint vertex_len) active_buffer->buffer_size = bytes_needed; recreate_buffer = true; } - else if (bytes_needed < active_buffer->default_size && - active_buffer->buffer_size > active_buffer->default_size) { + else if (bytes_needed < DEFAULT_INTERNAL_BUFFER_SIZE && + active_buffer->buffer_size > DEFAULT_INTERNAL_BUFFER_SIZE) { /* shrink the internal buffer */ - active_buffer->buffer_size = active_buffer->default_size; + active_buffer->buffer_size = DEFAULT_INTERNAL_BUFFER_SIZE; recreate_buffer = true; } |