DRW: Fix crash with deferred compilation
This commit is contained in:
parent
050e91340d
commit
205d1876ff
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue