diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-05-21 23:11:53 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-05-22 14:29:05 +0300 |
commit | 6914f7125bcfb766ab96f3e264e608013e00ed03 (patch) | |
tree | 26693d300b6c65de4ea342efacccaf8dcd2e8666 /source/blender/draw/intern/draw_manager_exec.c | |
parent | f7c9a334463c3f4c86c2bbc8f993bc93484c093e (diff) |
DRW: Do not update the view ubo for each pass
Only update if the view changes.
Diffstat (limited to 'source/blender/draw/intern/draw_manager_exec.c')
-rw-r--r-- | source/blender/draw/intern/draw_manager_exec.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c index 2687d0ea094..addd45093a8 100644 --- a/source/blender/draw/intern/draw_manager_exec.c +++ b/source/blender/draw/intern/draw_manager_exec.c @@ -981,7 +981,11 @@ static void drw_draw_pass_ex(DRWPass *pass, BLI_assert(DST.buffer_finish_called && "DRW_render_instance_buffer_finish had not been called before drawing"); - drw_update_view(); + if (DST.view_previous != DST.view_active || DST.view_active->is_dirty) { + drw_update_view(); + DST.view_active->is_dirty = false; + DST.view_previous = DST.view_active; + } /* GPU_framebuffer_clear calls can change the state outside the DRW module. * Force reset the affected states to avoid problems later. */ |