From 2b83b697456e8c25604dcdb19971711e57b08d5d Mon Sep 17 00:00:00 2001 From: Ed_ Date: Fri, 21 Jun 2024 16:33:15 -0400 Subject: [PATCH] Converted string cache table to use HMapChained, initial impl for ui_box_traverse_next_layer_based --- code/font/VEFontCache/LRU.odin | 3 ++ code/grime/hashmap_chained.odin | 10 +++- code/grime/string_cache.odin | 12 ++--- code/sectr/font/provider.odin | 2 +- code/sectr/ui/core/base.odin | 84 +++++++++++++++++++++++++++----- code/sectr/ui/core/box.odin | 36 ++++++++++++-- docs/memory design.pur | Bin 130891 -> 52709 bytes 7 files changed, 122 insertions(+), 25 deletions(-) diff --git a/code/font/VEFontCache/LRU.odin b/code/font/VEFontCache/LRU.odin index 8de34fe..cbd0012 100644 --- a/code/font/VEFontCache/LRU.odin +++ b/code/font/VEFontCache/LRU.odin @@ -72,6 +72,9 @@ pool_list_push_front :: proc( pool : ^PoolList, value : PoolListValue ) assert( free_list.num == u64(capacity - size) ) id := array_back( free_list ) + if pool.dbg_name != "" { + logf("pool_list: back %v", id) + } array_pop( free_list ) items.data[ id ].prev = -1 items.data[ id ].next = front diff --git a/code/grime/hashmap_chained.odin b/code/grime/hashmap_chained.odin index 1eafc03..3594933 100644 --- a/code/grime/hashmap_chained.odin +++ b/code/grime/hashmap_chained.odin @@ -15,6 +15,7 @@ package grime import "base:runtime" import "core:mem" +import "core:strings" HTable_Minimum_Capacity :: 4 * Kilobyte @@ -55,7 +56,7 @@ hmap_closest_prime :: proc( capacity : uint ) -> uint hmap_chained_init :: proc( $HMapChainedType : typeid/HMapChained($Type), lookup_capacity : uint, allocator := context.allocator, - pool_bucket_cap : uint = 1 * Kilo, + pool_bucket_cap : uint = 0, pool_bucket_reserve_num : uint = 0, pool_alignment : uint = mem.DEFAULT_ALIGNMENT, dbg_name : string = "", @@ -69,6 +70,11 @@ hmap_chained_init :: proc( $HMapChainedType : typeid/HMapChained($Type), lookup_ raw_mem, error = alloc( size, allocator = allocator ) if error != AllocatorError.None do return + pool_bucket_cap := pool_bucket_cap + if pool_bucket_cap == 0 { + pool_bucket_cap = cast(uint) int(lookup_capacity) * size_of( HMapChainedSlot(Type)) + } + table.header = cast( ^HMapChainedHeader(Type)) raw_mem table.pool, error = pool_init( should_zero_buckets = false, @@ -77,7 +83,7 @@ hmap_chained_init :: proc( $HMapChainedType : typeid/HMapChained($Type), lookup_ bucket_reserve_num = pool_bucket_reserve_num, alignment = pool_alignment, allocator = allocator, - dbg_name = str_intern(str_fmt("%v: pool", dbg_name)).str, + dbg_name = strings.clone(str_fmt_tmp("%v: pool", dbg_name), allocator = allocator), enable_mem_tracking = enable_mem_tracking, ) data := transmute(^^HMapChainedSlot(Type)) memory_after_header(table.header) diff --git a/code/grime/string_cache.odin b/code/grime/string_cache.odin index 3dfa842..406cb3b 100644 --- a/code/grime/string_cache.odin +++ b/code/grime/string_cache.odin @@ -31,7 +31,7 @@ to_str_runes_pair_via_runes :: #force_inline proc ( content : []rune ) -> StrRu StringCache :: struct { slab : Slab, - table : HMapZPL(StrRunesPair), + table : HMapChained(StrRunesPair), } // This is the default string cache for the runtime module. @@ -70,25 +70,25 @@ str_cache_init :: proc( table_allocator, slabs_allocator : Allocator ) -> (cache cache.slab, alloc_error = slab_init( & policy, allocator = slabs_allocator, dbg_name = dbg_name ) verify(alloc_error == .None, "Failed to initialize the string cache" ) - cache.table, alloc_error = make( HMapZPL(StrRunesPair), 4 * Megabyte, table_allocator, dbg_name ) + cache.table, alloc_error = make( HMapChained(StrRunesPair), 1 * Kilo, table_allocator, dbg_name = dbg_name ) return } str_cache_reload :: #force_inline proc ( cache : ^StringCache, table_allocator, slabs_allocator : Allocator ) { slab_reload( cache.slab, table_allocator ) - hmap_zpl_reload( & cache.table, slabs_allocator ) + hmap_chained_reload( cache.table, slabs_allocator ) } str_cache_set_module_ctx :: #force_inline proc "contextless" ( cache : ^StringCache ) { Module_String_Cache = cache } str_intern_key :: #force_inline proc( content : string ) -> StringKey { return cast(StringKey) crc32( transmute([]byte) content ) } -str_intern_lookup :: #force_inline proc( key : StringKey ) -> (^StrRunesPair) { return hmap_zpl_get( & Module_String_Cache.table, transmute(u64) key ) } +str_intern_lookup :: #force_inline proc( key : StringKey ) -> (^StrRunesPair) { return hmap_chained_get( Module_String_Cache.table, transmute(u64) key ) } str_intern :: proc( content : string ) -> StrRunesPair { // profile(#procedure) cache := Module_String_Cache key := str_intern_key(content) - result := hmap_zpl_get( & cache.table, transmute(u64) key ) + result := hmap_chained_get( cache.table, transmute(u64) key ) if result != nil { return (result ^) } @@ -104,7 +104,7 @@ str_intern :: proc( content : string ) -> StrRunesPair verify( alloc_error == .None, "String cache had a backing allocator error" ) // slab_validate_pools( cache.slab.backing ) - result, alloc_error = hmap_zpl_set( & cache.table, transmute(u64) key, StrRunesPair { transmute(string) str_mem, runes } ) + result, alloc_error = hmap_chained_set( cache.table, transmute(u64) key, StrRunesPair { transmute(string) str_mem, runes } ) verify( alloc_error == .None, "String cache had a backing allocator error" ) // slab_validate_pools( cache.slab.backing ) diff --git a/code/sectr/font/provider.odin b/code/sectr/font/provider.odin index 72dfcf4..c022767 100644 --- a/code/sectr/font/provider.odin +++ b/code/sectr/font/provider.odin @@ -73,7 +73,7 @@ font_provider_startup :: proc() font_cache, error = make( HMapChained(FontDef), hmap_closest_prime(1 * Kilo), persistent_allocator(), dbg_name = "font_cache" ) verify( error == AllocatorError.None, "Failed to allocate font_cache" ) - ve.init( & provider_data.ve_font_cache, .STB_TrueType, allocator = persistent_allocator() ) + ve.init( & provider_data.ve_font_cache, .STB_TrueType, allocator = persistent_slab_allocator() ) log("VEFontCached initialized") ve.configure_snap( & provider_data.ve_font_cache, u32(state.app_window.extent.x * 2.0), u32(state.app_window.extent.y * 2.0) ) diff --git a/code/sectr/ui/core/base.odin b/code/sectr/ui/core/base.odin index d2c6b54..5093287 100644 --- a/code/sectr/ui/core/base.odin +++ b/code/sectr/ui/core/base.odin @@ -65,6 +65,11 @@ UI_Parent_Stack_Size :: 512 // UI_Built_Boxes_Array_Size :: 8 UI_Built_Boxes_Array_Size :: 128 * Kilobyte +UI_RenderQueueEntry :: struct { + using links : DLL_NodePN(UI_RenderQueueEntry), + box : ^UI_Box, +} + // TODO(Ed): Rename to UI_Context UI_State :: struct { // TODO(Ed) : Use these? @@ -77,7 +82,9 @@ UI_State :: struct { prev_cache : ^HMapZPL( UI_Box ), curr_cache : ^HMapZPL( UI_Box ), - render_queue : Array(UI_RenderBoxInfo), + // render_queue_builder : SubArena, + render_queue : DLL_NodeFL(UI_RenderQueueEntry), + render_list : Array(UI_RenderBoxInfo), null_box : ^UI_Box, // This was used with the Linked list interface... root : ^UI_Box, @@ -120,7 +127,7 @@ ui_startup :: proc( ui : ^ UI_State, cache_allocator : Allocator /* , cache_rese ui.prev_cache = (& ui.caches[0]) allocation_error : AllocatorError - ui.render_queue, allocation_error = make( Array(UI_RenderBoxInfo), UI_Built_Boxes_Array_Size, cache_allocator, fixed_cap = true ) + ui.render_list, allocation_error = make( Array(UI_RenderBoxInfo), UI_Built_Boxes_Array_Size, cache_allocator, fixed_cap = true ) verify( allocation_error == AllocatorError.None, "Failed to allocate render queue" ) log("ui_startup completed") @@ -132,7 +139,7 @@ ui_reload :: proc( ui : ^ UI_State, cache_allocator : Allocator ) for & cache in ui.caches { hmap_zpl_reload( & cache, cache_allocator) } - ui.render_queue.backing = cache_allocator + ui.render_list.backing = cache_allocator } // TODO(Ed) : Is this even needed? @@ -150,7 +157,7 @@ ui_graph_build_begin :: proc( ui : ^ UI_State, bounds : Vec2 = {} ) stack_clear( & layout_combo_stack ) stack_clear( & style_combo_stack ) - array_clear( render_queue ) + array_clear( render_list ) curr_cache, prev_cache = swap( curr_cache, prev_cache ) @@ -187,21 +194,72 @@ ui_graph_build_end :: proc( ui : ^UI_State ) } computed.content = computed.bounds } + for current := root.first; current != nil; current = ui_box_tranverse_next( current ) { if ! current.computed.fresh { ui_box_compute_layout( current ) } - - // Enqueue for rendering - array_append( & ui.render_queue, UI_RenderBoxInfo { - current.computed, - current.style, - current.text, - current.layout.font_size, - current.layout.border_width, - }) } + + + + // Render order is "layer-based" and thus needs a new traversal done + // ui.render_queue.first = new(UI_RenderQueueEntry) + // ui.render_queue.first.box = root.first + // for current := root.first.next; current != nil; current = ui_box_traverse_next_layer_based( current ) + // { + // entry := new(UI_RenderQueueEntry) + // entry.box = current + // // Enqueue box to render + // // Would be best to use a linked list tied to a sub-arena + // dll_push_back( & ui.render_queue.first, entry ) + // ui.render_queue.last = entry + // } + + // enqueued_id : i32 = 0 + // for enqueued := ui.render_queue.first; enqueued != nil; enqueued = enqueued.next + // { + // /* + // For each enqueue box: + // 1. Check to see if any overlap (traverse all Queued Entries and check to see if their bounds overlap) + // 2. If they do, the box & its children must be popped off the current ancestry layer and moved to the start of the next + // (This could problably be an iteration where we just pop and push_back until we reach the adjacent box of the same layer) + // */ + // // other_id : i32 = 0 + // for other := enqueued.next; other != nil; other = other.next + // { + // if intersects_range2( enqueued.box.computed.bounds, other.box.computed.bounds) + // { + // // Intersection occured, other's box is on top, it and its children must be deferred to the next layer + // next_layer_start := other.next + // for ; next_layer_start != nil; next_layer_start = next_layer_start.next + // { + // if next_layer_start.box == other.box.first do break + // } + + // other.next = next_layer_start + // other.prev = next_layer_start.prev + // next_layer_start.prev = other + // enqueued.next = other.prev + // break + // } + // } + // } + + // Queue should be optimized now to generate the final draw list + // for enqueued := ui.render_queue.first; enqueued != nil; enqueued = enqueued.next + // { + // using enqueued.box + // // Enqueue for rendering + // array_append( & ui.render_list, UI_RenderBoxInfo { + // computed, + // style, + // text, + // layout.font_size, + // layout.border_width, + // }) + // } } get_state().ui_context = nil diff --git a/code/sectr/ui/core/box.odin b/code/sectr/ui/core/box.odin index b10f72d..abeeb32 100644 --- a/code/sectr/ui/core/box.odin +++ b/code/sectr/ui/core/box.odin @@ -124,6 +124,7 @@ ui_box_make :: proc( flags : UI_BoxFlags, label : string ) -> (^ UI_Box) ui_prev_cached_box :: #force_inline proc( box : ^UI_Box ) -> ^UI_Box { return hmap_zpl_get( ui_context().prev_cache, cast(u64) box.key ) } +// Traveral pritorizes immeidate children ui_box_tranverse_next :: proc "contextless" ( box : ^ UI_Box ) -> (^ UI_Box) { using state := get_state() @@ -132,14 +133,13 @@ ui_box_tranverse_next :: proc "contextless" ( box : ^ UI_Box ) -> (^ UI_Box) { // Check to make sure parent is present on the screen, if its not don't bother. is_app_ui := ui_context == & screen_ui - if intersects_range2( ui_view_bounds(), box.computed.bounds) - { + if intersects_range2( ui_view_bounds(), box.computed.bounds) { return box.first } } if box.next != nil do return box.next - // There is no more adjacent nodes + // There are no more adjacent nodes parent := box.parent // Attempt to find a parent with a next, otherwise we just return a parent with nil @@ -154,3 +154,33 @@ ui_box_tranverse_next :: proc "contextless" ( box : ^ UI_Box ) -> (^ UI_Box) // Lift back up to parent, and set it to its next. return parent.next } + +// Traveral pritorizes traversing a "anestry layer" +ui_box_traverse_next_layer_based :: proc "contextless" ( box : ^UI_Box, skip_intersection_test := false ) -> (^UI_Box) +{ + using state := get_state() + + parent := box.parent + if parent != nil + { + if parent.last != box + { + if box.next != nil do return box.next + // There are no more adjacent nodes + } + } + + // Either is root OR + // Parent children exhausted, this should be the last box of this ancestry + // Do children if they are available. + if box.first != nil + { + // Check to make sure parent is present on the screen, if its not don't bother. + if ! skip_intersection_test && intersects_range2( ui_view_bounds(), box.computed.bounds) { + return box.first + } + } + + // We should have exhausted the list if we're on the last box of teh last parent + return nil +} diff --git a/docs/memory design.pur b/docs/memory design.pur index c20815ec7596d68d57ee133fd582f3fa3b0268a7..83aea6ebdb35d016e2b3daffc489cdfcc29124b2 100644 GIT binary patch delta 6015 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 literal 130891 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