mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-07 14:28:40 +00:00
idx runs baking
This commit is contained in:
@@ -1299,6 +1299,39 @@ rdim2_bake(Arena *arena, RDIM_BakeParams *params)
|
|||||||
lane_sync();
|
lane_sync();
|
||||||
RDIM_StringBakeResult baked_strings = rdim2_shared->baked_strings;
|
RDIM_StringBakeResult baked_strings = rdim2_shared->baked_strings;
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////
|
||||||
|
//- rjf: bake idx runs
|
||||||
|
//
|
||||||
|
ProfScope("bake idx runs")
|
||||||
|
{
|
||||||
|
// rjf: set up
|
||||||
|
if(lane_idx() == 0)
|
||||||
|
{
|
||||||
|
rdim2_shared->baked_idx_runs.idx_count = bake_idx_runs->total_count;
|
||||||
|
rdim2_shared->baked_idx_runs.idx_runs = push_array_no_zero(arena, RDI_U32, rdim2_shared->baked_idx_runs.idx_count);
|
||||||
|
}
|
||||||
|
lane_sync();
|
||||||
|
|
||||||
|
// rjf: wide fill
|
||||||
|
{
|
||||||
|
Rng1U64 range = lane_range(bake_idx_runs->slots_count);
|
||||||
|
for EachInRange(slot_idx, range)
|
||||||
|
{
|
||||||
|
RDI_U64 off = bake_idx_runs->slots_base_idxs[slot_idx];
|
||||||
|
for EachNode(n, RDIM_BakeIdxRunChunkNode, bake_idx_runs->slots[slot_idx].first)
|
||||||
|
{
|
||||||
|
for EachIndex(n_idx, n->count)
|
||||||
|
{
|
||||||
|
rdim_memcpy(rdim2_shared->baked_idx_runs.idx_runs + off, n->v[n_idx].idxes, sizeof(n->v[n_idx].idxes[0])*n->v[n_idx].count);
|
||||||
|
off += n->v[n_idx].count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lane_sync();
|
||||||
|
RDIM_IndexRunBakeResult baked_idx_runs = rdim2_shared->baked_idx_runs;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
//- rjf: compute layout for scope sub-lists (locals / voffs)
|
//- rjf: compute layout for scope sub-lists (locals / voffs)
|
||||||
//
|
//
|
||||||
@@ -1858,14 +1891,14 @@ rdim2_bake(Arena *arena, RDIM_BakeParams *params)
|
|||||||
result.thread_variables = rdim2_shared->baked_thread_variables;
|
result.thread_variables = rdim2_shared->baked_thread_variables;
|
||||||
result.constants = rdim2_shared->baked_constants;
|
result.constants = rdim2_shared->baked_constants;
|
||||||
result.procedures = rdim2_shared->baked_procedures;
|
result.procedures = rdim2_shared->baked_procedures;
|
||||||
// result.scopes = rdim2_shared->baked_scopes;
|
result.scopes = rdim2_shared->baked_scopes;
|
||||||
result.inline_sites = rdim2_shared->baked_inline_sites;
|
result.inline_sites = rdim2_shared->baked_inline_sites;
|
||||||
result.scope_vmap = rdim2_shared->baked_scope_vmap;
|
result.scope_vmap = rdim2_shared->baked_scope_vmap;
|
||||||
// result.top_level_name_maps = rdim2_shared->baked_top_level_name_maps;
|
// result.top_level_name_maps = rdim2_shared->baked_top_level_name_maps;
|
||||||
// result.name_maps = rdim2_shared->baked_name_maps;
|
// result.name_maps = rdim2_shared->baked_name_maps;
|
||||||
// result.file_paths = rdim2_shared->baked_file_paths;
|
// result.file_paths = rdim2_shared->baked_file_paths;
|
||||||
result.strings = rdim2_shared->baked_strings;
|
result.strings = rdim2_shared->baked_strings;
|
||||||
// result.idx_runs = rdim2_shared->baked_idx_runs;
|
result.idx_runs = rdim2_shared->baked_idx_runs;
|
||||||
// result.location_blocks = rdim2_shared->baked_location_blocks;
|
// result.location_blocks = rdim2_shared->baked_location_blocks;
|
||||||
// result.location_data = rdim2_shared->baked_location_data;
|
// result.location_data = rdim2_shared->baked_location_data;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user