[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