DRW: Fix crash with deferred compilation

This commit is contained in:
Clément Foucault 2018-11-04 20:01:58 +01:00
parent 050e91340d
commit 205d1876ff
1 changed files with 7 additions and 5 deletions

View File

@ -134,7 +134,10 @@ static void drw_deferred_shader_compilation_exec(void *custom_data, short *stop,
glFlush();
BLI_mutex_unlock(&comp->compilation_lock);
BLI_spin_lock(&comp->list_lock);
drw_deferred_shader_free(comp->mat_compiling);
comp->mat_compiling = NULL;
BLI_spin_unlock(&comp->list_lock);
}
WM_opengl_context_release(gl_context);
@ -239,12 +242,11 @@ void DRW_deferred_shader_remove(GPUMaterial *mat)
}
/* Wait for compilation to finish */
if (comp->mat_compiling != NULL) {
if (comp->mat_compiling->mat == mat) {
BLI_mutex_lock(&comp->compilation_lock);
BLI_mutex_unlock(&comp->compilation_lock);
}
if ((comp->mat_compiling != NULL) && (comp->mat_compiling->mat == mat)) {
BLI_mutex_lock(&comp->compilation_lock);
BLI_mutex_unlock(&comp->compilation_lock);
}
BLI_spin_unlock(&comp->list_lock);
if (dsh) {