[Bf-blender-cvs] [76f49c7a7b2] temp-eeveelightcache: Eevee: LightCache: Fix fbos created in wrong context.

Clément Foucault noreply at git.blender.org
Sun Jun 24 21:58:50 CEST 2018


Commit: 76f49c7a7b260933eb6b3903fe3e987e4928f37c
Author: Clément Foucault
Date:   Sun Jun 24 17:54:53 2018 +0200
Branches: temp-eeveelightcache
https://developer.blender.org/rB76f49c7a7b260933eb6b3903fe3e987e4928f37c

Eevee: LightCache: Fix fbos created in wrong context.

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

M	source/blender/draw/engines/eevee/eevee_lightcache.c

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

diff --git a/source/blender/draw/engines/eevee/eevee_lightcache.c b/source/blender/draw/engines/eevee/eevee_lightcache.c
index 01f749b37f6..bcede16334f 100644
--- a/source/blender/draw/engines/eevee/eevee_lightcache.c
+++ b/source/blender/draw/engines/eevee/eevee_lightcache.c
@@ -305,8 +305,6 @@ static void eevee_lightbake_create_resources(EEVEE_LightBake *lbake)
 	lbake->grid_prev = DRW_texture_create_2D_array(lbake->irr_size[0], lbake->irr_size[1], lbake->irr_size[2],
 	                                               IRRADIANCE_FORMAT, DRW_TEX_FILTER, NULL);
 
-	eevee_lightbake_create_render_target(lbake, lbake->rt_res);
-
 	/* Ensure Light Cache is ready to accept new data. If not recreate one.
 	 * WARNING: All the following must be threadsafe. It's currently protected
 	 * by the DRW mutex. */
@@ -721,6 +719,12 @@ void EEVEE_lightbake_job(void *custom_data, short *stop, short *do_update, float
 	lbake->do_update = do_update;
 	lbake->progress = progress;
 
+	/* We need to create the FBOs in the right context.
+	 * We cannot do it in the main thread. */
+	eevee_lightbake_context_enable(lbake);
+	eevee_lightbake_create_render_target(lbake, lbake->rt_res);
+	eevee_lightbake_context_disable(lbake);
+
 	/* Gather all probes data */
 	eevee_lightbake_gather_probes(lbake);



More information about the Bf-blender-cvs mailing list