provide u64 broadcasting mechanism in base layer wavefront lane context, allows more flexible data sharing mechanism which does not depend on statics; reshape dasm building codepath for clicking into artifact cache

This commit is contained in:
Ryan Fleury
2025-09-22 16:21:30 -07:00
parent 8a1e6ab2e6
commit 4b1939bd6d
12 changed files with 444 additions and 146 deletions
+3 -3
View File
@@ -1969,19 +1969,19 @@ struct TXT_ArtifactCreateShared
};
internal void *
txt_artifact_create(String8 key)
txt_artifact_create(String8 key, B32 *retry_out)
{
ProfBeginFunction();
Temp scratch = scratch_begin(0, 0);
Access *access = access_open();
//- rjf: get shared state
local_persist TXT_ArtifactCreateShared *shared = 0;
TXT_ArtifactCreateShared *shared = 0;
if(lane_idx() == 0)
{
shared = push_array(scratch.arena, TXT_ArtifactCreateShared, 1);
}
lane_sync();
lane_sync_u64(&shared, 0);
//- rjf: unpack key
U128 hash = {0};
+1 -1
View File
@@ -203,7 +203,7 @@ internal TXT_ScopeNode *txt_scope_node_from_info_pt(TXT_TextInfo *info, TxtPt pt
////////////////////////////////
//~ rjf: Artifact Cache Hooks / Lookups
internal void *txt_artifact_create(String8 key);
internal void *txt_artifact_create(String8 key, B32 *retry_out);
internal void txt_artifact_destroy(void *ptr);
internal TXT_TextInfo txt_text_info_from_hash_lang(Access *access, U128 hash, TXT_LangKind lang);
internal TXT_TextInfo txt_text_info_from_key_lang(Access *access, C_Key key, TXT_LangKind lang, U128 *hash_out);