diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-07-01 16:23:42 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-07-01 16:36:02 +0300 |
commit | 2698544db2a19436155191608e4ef13c001b8209 (patch) | |
tree | 2d369a6ac5610fef85f2cabe94029b3699913acb /source/blender/draw/intern/draw_manager_shader.c | |
parent | 3c6260d42de007c223c4bdb1bc8ed5431f2f2963 (diff) |
Fix T66262: slow preview icon loading
Diffstat (limited to 'source/blender/draw/intern/draw_manager_shader.c')
-rw-r--r-- | source/blender/draw/intern/draw_manager_shader.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/source/blender/draw/intern/draw_manager_shader.c b/source/blender/draw/intern/draw_manager_shader.c index 5c3b5aa8a8e..d0aa6d55c03 100644 --- a/source/blender/draw/intern/draw_manager_shader.c +++ b/source/blender/draw/intern/draw_manager_shader.c @@ -202,12 +202,8 @@ static void drw_deferred_shader_add(GPUMaterial *mat, bool deferred) /* Get the running job or a new one if none is running. Can only have one job per type & owner. */ - wmJob *wm_job = WM_jobs_get(wm, - win, - scene, - "Shaders Compilation", - WM_JOB_PROGRESS | WM_JOB_SUSPEND, - WM_JOB_TYPE_SHADER_COMPILATION); + wmJob *wm_job = WM_jobs_get( + wm, win, scene, "Shaders Compilation", WM_JOB_PROGRESS, WM_JOB_TYPE_SHADER_COMPILATION); DRWShaderCompiler *old_comp = (DRWShaderCompiler *)WM_jobs_customdata_get(wm_job); @@ -238,6 +234,7 @@ static void drw_deferred_shader_add(GPUMaterial *mat, bool deferred) WM_jobs_customdata_set(wm_job, comp, drw_deferred_shader_compilation_free); WM_jobs_timer(wm_job, 0.1, NC_MATERIAL | ND_SHADING_DRAW, 0); + WM_jobs_delay_start(wm_job, 0.1); WM_jobs_callbacks(wm_job, drw_deferred_shader_compilation_exec, NULL, NULL, NULL); WM_jobs_start(wm, wm_job); } @@ -252,12 +249,8 @@ void DRW_deferred_shader_remove(GPUMaterial *mat) continue; } for (wmWindow *win = wm->windows.first; win; win = win->next) { - wmJob *wm_job = WM_jobs_get(wm, - win, - scene, - "Shaders Compilation", - WM_JOB_PROGRESS | WM_JOB_SUSPEND, - WM_JOB_TYPE_SHADER_COMPILATION); + wmJob *wm_job = WM_jobs_get( + wm, win, scene, "Shaders Compilation", WM_JOB_PROGRESS, WM_JOB_TYPE_SHADER_COMPILATION); DRWShaderCompiler *comp = (DRWShaderCompiler *)WM_jobs_customdata_get(wm_job); if (comp != NULL) { |