mirror of
https://github.com/Redot-Engine/redot-engine.git
synced 2025-12-06 15:21:56 -05:00
Correctly check time since shadow was allocated in atlas to avoid unnecessary re-allocations
Co-authored-by: jitspoe <jitspoe@yahoo.com>
This commit is contained in:
@@ -1405,7 +1405,7 @@ bool LightStorage::shadow_atlas_update_light(RID p_atlas, RID p_light_instance,
|
|||||||
old_shadow = old_key & SHADOW_INDEX_MASK;
|
old_shadow = old_key & SHADOW_INDEX_MASK;
|
||||||
|
|
||||||
// Only re-allocate if a better option is available, and enough time has passed.
|
// Only re-allocate if a better option is available, and enough time has passed.
|
||||||
should_realloc = shadow_atlas->quadrants[old_quadrant].subdivision != (uint32_t)best_subdiv && (shadow_atlas->quadrants[old_quadrant].shadows[old_shadow].alloc_tick - tick > shadow_atlas_realloc_tolerance_msec);
|
should_realloc = shadow_atlas->quadrants[old_quadrant].subdivision != (uint32_t)best_subdiv && (tick - shadow_atlas->quadrants[old_quadrant].shadows[old_shadow].alloc_tick > shadow_atlas_realloc_tolerance_msec);
|
||||||
should_redraw = shadow_atlas->quadrants[old_quadrant].shadows[old_shadow].version != p_light_version;
|
should_redraw = shadow_atlas->quadrants[old_quadrant].shadows[old_shadow].version != p_light_version;
|
||||||
|
|
||||||
if (!should_realloc) {
|
if (!should_realloc) {
|
||||||
|
|||||||
@@ -2328,7 +2328,7 @@ bool LightStorage::shadow_atlas_update_light(RID p_atlas, RID p_light_instance,
|
|||||||
old_quadrant = (old_key >> QUADRANT_SHIFT) & 0x3;
|
old_quadrant = (old_key >> QUADRANT_SHIFT) & 0x3;
|
||||||
old_shadow = old_key & SHADOW_INDEX_MASK;
|
old_shadow = old_key & SHADOW_INDEX_MASK;
|
||||||
|
|
||||||
should_realloc = shadow_atlas->quadrants[old_quadrant].subdivision != (uint32_t)best_subdiv && (shadow_atlas->quadrants[old_quadrant].shadows[old_shadow].alloc_tick - tick > shadow_atlas_realloc_tolerance_msec);
|
should_realloc = shadow_atlas->quadrants[old_quadrant].subdivision != (uint32_t)best_subdiv && (tick - shadow_atlas->quadrants[old_quadrant].shadows[old_shadow].alloc_tick > shadow_atlas_realloc_tolerance_msec);
|
||||||
should_redraw = shadow_atlas->quadrants[old_quadrant].shadows[old_shadow].version != p_light_version;
|
should_redraw = shadow_atlas->quadrants[old_quadrant].shadows[old_shadow].version != p_light_version;
|
||||||
|
|
||||||
if (!should_realloc) {
|
if (!should_realloc) {
|
||||||
|
|||||||
Reference in New Issue
Block a user