Fix OpenGL _shadow_atlas_find_shadow
error when light instance is freed
#90233
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In file light_storage.cpp, when engine free a light instance, it didn't free the shadow atlas and set owner of it to RID().
https://github.com/godotengine/godot/blob/master/drivers/gles3/storage/light_storage.cpp#L366-L384
So the next time engine try to find a useable shadow atlas, it will have this issue
I think we can just ignore the case sli == null and return the shadow atlas when we meet it, since the light instance of that atlas already freed