[Bf-blender-cvs] [986a3d15ac6] blender2.8: GPUMaterial: Avoid freeing GLSL shaders when changing scene properties.

Clément Foucault noreply at git.blender.org
Fri Jun 23 16:42:00 CEST 2017


Commit: 986a3d15ac68545a9886d20f73376f818c28531a
Author: Clément Foucault
Date:   Fri Jun 23 16:41:44 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB986a3d15ac68545a9886d20f73376f818c28531a

GPUMaterial: Avoid freeing GLSL shaders when changing scene properties.

This was causing major slowdown when changing Colormanagment settings or post processing.

===================================================================

M	source/blender/editors/render/render_update.c

===================================================================

diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c
index 74bb4c570e6..fd8b3375c19 100644
--- a/source/blender/editors/render/render_update.c
+++ b/source/blender/editors/render/render_update.c
@@ -519,8 +519,10 @@ static void scene_changed(Main *bmain, Scene *scene)
 
 	/* glsl */
 	for (ob = bmain->object.first; ob; ob = ob->id.next) {
+#if 0 /* This was needed by old glsl where all lighting was statically linked into the shader. */
 		if (ob->gpulamp.first)
 			GPU_lamp_free(ob);
+#endif
 		
 		if (ob->mode & OB_MODE_TEXTURE_PAINT) {
 			BKE_texpaint_slots_refresh_object(scene, ob);
@@ -529,6 +531,7 @@ static void scene_changed(Main *bmain, Scene *scene)
 		}
 	}
 
+#if 0 /* This was needed by old glsl where all lighting was statically linked into the shader. */
 	for (ma = bmain->mat.first; ma; ma = ma->id.next)
 		if (ma->gpumaterial.first)
 			GPU_material_free(&ma->gpumaterial);
@@ -539,6 +542,7 @@ static void scene_changed(Main *bmain, Scene *scene)
 	
 	if (defmaterial.gpumaterial.first)
 		GPU_material_free(&defmaterial.gpumaterial);
+#endif
 }
 
 void ED_render_id_flush_update(Main *bmain, ID *id)




More information about the Bf-blender-cvs mailing list