Commit Graph

66 Commits

Author SHA1 Message Date
ed 6c6e4ad75e remove backtrace (now part of vendor)
preparing to do a full rewrite of the prototype (curation of old code)
2025-09-14 11:17:29 -04:00
ed 73bfdb63ea misc changes
mostly added kt1l from watl exercise
2025-08-07 10:53:35 -04:00
ed 3769413a50 messing around with testing using keyword in proc args (with new debug support) 2025-07-19 00:07:36 -04:00
ed a617ecc61f took a break and started to figure out worker codenames for fun 2025-07-07 23:32:35 -04:00
ed 6d780482c7 Mostly still reviewing and planning... (see description)
Anything considered static can be aggregated into a single VArena. We don't have to worry about ever releasing its memory or it growing "too large".  All memory here must be fixed sized.
Conservative persistent memory can grow on demand but we would perfer if it could be trimmed or released when no longer dealing with heavy scenarios. Persistent memory should use a slab allocator that is backed by a virtual address space pool allocator instead of pools allocating from a single varena. Chained Arenas can source thier chunks of vmem from the slab which can be utilized for scratch memory. Fonts should be loaded from VSlab. The string cache should use a dedicated varena with 16-byte alignment. All conservative memory should be trimmable by a wipe command which should free all unused blocks. Each block should be a single OS aware reserve of vmem.

The Frame can possilby stay as a single varena with scratch allocation utilized on demand. Although it may be more viable for chained varenas to be derived from the main varena via a slab or pool interface. Frame memory should be trimmable on command which should release its committed vmem to its initial value. A dedicated transient varena should not exist. It should be removed when possible. File mappings for now can use a dedicated varena made on demand with a capped reserve size of 4 meg. Any file exceeding this needs the host to support virtual memory mapped I/O for files. The codebase db will use sqlite for the file I/O abstraction.

Host might only need to track the first persistent block of vmem, and the rest can be handled by the client (including wrapping that vmem up in a varena). Hot-reload only needs persistent vmem's ref restored on the client module's side. All other references can be resolved from there.
2025-07-07 02:00:57 -04:00
ed 87d5cda2c0 more review 2025-07-04 14:40:25 -04:00
ed 2e8381b097 Beginning to review progress on prototype codebase bootstrapping. 2025-07-04 14:06:28 -04:00
ed 74567ae98a adding some stuff from watl but not ready to use yet 2025-06-28 20:57:05 -04:00
ed cf7151a1ce misc changes
not worth comment ing on...
2025-06-28 20:56:49 -04:00
ed 29130cb367 old stuff
Planning to come back to this and eval some state.
Not ready to fully come back still out learning from the past.
2025-06-26 21:44:30 -04:00
ed 85dbaa37b9 updating to latest VEFontCache... tested 10k draw call target (worked) 2025-02-13 19:12:13 -05:00
ed e23935db5b More cleanup, preparing VEFontCache for public repo 2025-01-10 09:32:19 -05:00
ed c114624eee fixes for: Atlas-Region B clear-region on caching glyph, batching, & tuning default values for performance
Need to fix the debug vis for the library
2025-01-09 23:36:39 -05:00
ed 08a8b4b823 Insane perfomrance after tuning the batch and caches. 2025-01-09 14:54:59 -05:00
ed b4abde1094 Misc: VFontCache perf and features, exposing config on prototype side... 2025-01-09 13:23:35 -05:00
ed ce84652417 More offloading to shaper, seeing if its better todo some math in loop... 2025-01-08 08:38:06 -05:00
ed 18d8735c54 Preparing to attempt to offload various metric calculations for a shape's glyphs to the shape itself from the draw list generator 2025-01-07 22:24:23 -05:00
ed 7dee697103 partially restoring old order to try to identity the regression with blitting to atlas... 2025-01-07 17:52:42 -05:00
ed a9080fe1f3 LRU cache now as templated key type
Was testing to see if 16-bit cach emade a diff for the glyphs (it did not)
2025-01-06 21:18:39 -05:00
ed 0350a0c282 Remove rune tracking for string cache, + vecache changes
Getting ready to de-hardcode vefontcache shaders
2025-01-06 14:12:55 -05:00
ed 878c419a1f Oversized streamlined 2025-01-04 20:09:59 -05:00
ed fe4f3ad14a VEFontCache : Streamlined to_cache (fixed) 2025-01-04 16:59:56 -05:00
ed 83b7098ce9 WIP : trying to fix oversized yet again... 2025-01-04 10:16:22 -05:00
ed cb6053395c WIP - VEFontCache: Major changes
* Add back proper batching (busted the rendering for it though..)
* Some reogonzation of definitions and procedure args
* CURRENTLY BROKEN: Something went wrong with the calculations for text positioning..
2025-01-03 23:06:31 -05:00
ed 078d9c8447 Misc changes 2025-01-03 18:04:20 -05:00
ed 8c7b3e2058 misc changes 2025-01-03 13:06:05 -05:00
ed 9448c3906c Performance improvement using the index of glyph_pack for sub slices instead of appending values directly. 2025-01-02 20:05:45 -05:00
ed 73ba89e7f9 WIP - VEFontCache: Rendering 3k lines of whitespace ast is 16 ms rn... 2025-01-02 17:49:39 -05:00
ed 4adbfaa9fd WIP - VEFontCahe: More progress on optimizing codepaths with SOA 2025-01-01 22:11:41 -05:00
ed 5559d62826 Got render_list proper setup for UI_State rendering...
Still need a spacial indexing method to prevent redundant enqueues to the drawlist (esp for text)

I'm in the process of trying to see if I can keep getting vefontcache even more performant... Making it multi-threaded can help but there might be some single-thread per still possible..
2025-01-01 14:13:30 -05:00
ed c7d465d06e Another bugfix for hashmap_chained 2024-12-31 11:26:21 -05:00
ed 1fb011f56c hmap_chained: fix for not properly being able to override slots with matching key (that were still occupied) 2024-12-31 02:38:22 -05:00
ed b54d336193 Adjustments to logger 2024-12-31 02:07:30 -05:00
ed 898c389bb0 prototype cursor done 2024-11-29 20:11:08 -05:00
ed 5fbede25cb fix for compile error on table api breaking change 2024-06-27 00:00:26 -04:00
ed e6ccdd90d1 changes to sectr module based on VEFontCache changes 2024-06-26 15:23:44 -04:00
ed 9d0cc125a9 Misc changes
* Made refactor rende procedures to specify dependencies instead of directly grabbing from state singleton
2024-06-26 06:03:00 -04:00
ed 1533a14a1b misc changes
* draw_text_string_pos_extent_zoomed can now oversample text futher (if desired)
* render_ui_via_box_tree has a rudimentary render pass layering optimization

Add support for the slab allocator to accept arbitrary alignments (odin's map container needs it)
Messing around with 64-byte alignment as the default for the allocator...
2024-06-25 19:13:41 -04:00
ed 1fe741034d wip : trying to fix the workspace view bounds detection 2024-06-25 02:38:08 -04:00
ed 894c3fee97 Fix hot-reload 2024-06-24 23:38:53 -04:00
ed 55b80da8e5 Fixed input event buffer issues
Queue doesn't properly act as a ring buffer had to roll my own.
I want to make a allocated ring buffer as well...
2024-06-23 13:59:04 -04:00
ed ce1d31f0d4 Progress on fleshing out rendering (Getting ui ready to render in "layer batches") 2024-06-23 02:47:13 -04:00
ed 2b83b69745 Converted string cache table to use HMapChained, initial impl for ui_box_traverse_next_layer_based 2024-06-21 16:33:15 -04:00
ed a560222d5d Fixed a long-standing issue with the chained hashmap (finally) 2024-06-21 00:26:29 -04:00
ed c405c47e6c mem tracker updates 2024-06-20 15:36:47 -04:00
ed 489faf5515 Misc changes (refactors, notes) 2024-06-20 14:39:50 -04:00
ed 5d6f996d3c Finished fixing input back to prev-sokol feature parity 2024-06-19 18:09:11 -04:00
ed bcbbf95471 add support for fixed_size option to make_queue 2024-06-19 05:51:13 -04:00
ed 10f58b432e truncate log files on init 2024-06-19 05:50:40 -04:00
ed 59ed4d9dd6 fix hot-reload, starting to setup proper rendering again.
* Added hot_reload, measure_text_size to VEFontCache
2024-06-19 02:34:02 -04:00