From 53054e5addca54cecc1c4edca6e51c63f497051f Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Fri, 19 Sep 2025 16:41:49 -0700 Subject: [PATCH] fix incorrect loop-again logic on async threads --- src/base/base_entry_point.c | 8 ++++---- src/texture_cache/texture_cache.c | 1 + src/texture_cache/texture_cache.h | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/base/base_entry_point.c b/src/base/base_entry_point.c index b9cc7abe..4a7726ed 100644 --- a/src/base/base_entry_point.c +++ b/src/base/base_entry_point.c @@ -193,10 +193,10 @@ async_thread_entry_point(void *params) if(!ins_atomic_u32_eval(&async_loop_again)) { MutexScope(async_tick_start_mutex) cond_var_wait(async_tick_start_cond_var, async_tick_start_mutex, os_now_microseconds()+100000); - if(lane_idx() == 0) - { - async_loop_again = 0; - } + } + else if(lane_idx() == 0) + { + async_loop_again = 0; } #if defined(CONTENT_H) c_tick(); diff --git a/src/texture_cache/texture_cache.c b/src/texture_cache/texture_cache.c index 95d137a0..a5b598a2 100644 --- a/src/texture_cache/texture_cache.c +++ b/src/texture_cache/texture_cache.c @@ -97,6 +97,7 @@ tex_texture_from_hash_topology(Access *access, U128 hash, TEX_Topology topology) n->v.top = topology; tex_shared->req_count += 1; } + cond_var_broadcast(async_tick_start_cond_var); } // rjf: node? -> grab & access diff --git a/src/texture_cache/texture_cache.h b/src/texture_cache/texture_cache.h index 86ac7e96..6eece14c 100644 --- a/src/texture_cache/texture_cache.h +++ b/src/texture_cache/texture_cache.h @@ -109,4 +109,4 @@ internal R_Handle tex_texture_from_key_topology(Access *access, C_Key key, TEX_T internal void tex_tick(void); -#endif //TEXTURE_CACHE_H +#endif // TEXTURE_CACHE_H