From cc3c15fbddc78bb5377571125cccf57ba7ec3b9a Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Mon, 9 May 2022 09:54:26 +0200 Subject: GPU: Fix crash deferred shader compilation. On certain systems when eevee is used in a 3d viewport could crash. It happened more often on slower systems or systems with slower glsl compilers. For example an Intel Mac Mini. The cause was that even if a GPUMaterial was in used it could be freed. --- source/blender/gpu/intern/gpu_material.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index e8fb5fb2c45..7ec6ee5183a 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -168,6 +168,7 @@ static void gpu_material_free_single(GPUMaterial *material) if (material->sss_tex_profile != NULL) { GPU_texture_free(material->sss_tex_profile); } + MEM_freeN(material); } void GPU_material_free(ListBase *gpumaterial) @@ -176,7 +177,6 @@ void GPU_material_free(ListBase *gpumaterial) GPUMaterial *material = link->data; DRW_deferred_shader_remove(material); gpu_material_free_single(material); - MEM_freeN(material); } BLI_freelistN(gpumaterial); } -- cgit v1.2.3