Browse Source

Fix OpenGL: _shadow_atlas_find_shadow: Condition "!sli" is true.

(cherry picked from commit 17e489b93da1e5497002a0513155302eef639488)
ArthasMenethil 1 year ago
parent
commit
28abd259f7
1 changed files with 5 additions and 1 deletions
  1. 5 1
      drivers/gles3/storage/light_storage.cpp

+ 5 - 1
drivers/gles3/storage/light_storage.cpp

@@ -951,7 +951,11 @@ bool LightStorage::_shadow_atlas_find_shadow(ShadowAtlas *shadow_atlas, int *p_i
 
 		for (int j = 0; j < sc; j++) {
 			LightInstance *sli = light_instance_owner.get_or_null(sarr[j].owner);
-			ERR_CONTINUE(!sli);
+			if (!sli) {
+				// Found a released light instance.
+				found_used_idx = j;
+				break;
+			}
 
 			if (sli->last_scene_pass != RasterizerSceneGLES3::get_singleton()->get_scene_pass()) {
 				// Was just allocated, don't kill it so soon, wait a bit.