Commit Graph
100 Commits
Author SHA1 Message Date
ed a0f51913dc initial job queue load test during exit, works with hot-reload. 2025-10-15 01:59:19 -04:00
ed 9f75d080a7 hot reload works with tick lanes and job worker loops! 2025-10-15 00:44:14 -04:00
ed ed6a79fd78 job workers ticking (hot-reload untested) 2025-10-14 00:31:33 -04:00
ed c106d3bc96 WIP: tick lanes were working, currently bootstrapping the job system. 2025-10-14 00:04:30 -04:00
ed 0d904fba7c WIP: Untested more process runtime bootstrapping, some decisions on how grime is setup.. 2025-10-13 12:47:16 -04:00
ed 4abd2401f0 Naming convention change for atomics
cache_coherent_ is what I'm going with for now based off of studying it further.

I really really don't like the "atomic" as the verbiage phrase. It conveys nothing about what the execution engine is actually doing with the thread caches or the bus snoop.
2025-10-13 02:49:07 -04:00
ed 5f57cea027 got multi-laned hot-reload 2025-10-13 02:13:58 -04:00
ed 8ced7cc71e progress on setting up host/client api process execution 2025-10-12 19:52:17 -04:00
ed 406ff97968 progress on setting up host/client api process execution 2025-10-12 16:20:08 -04:00
ed 866432723e progress on grime 2025-10-12 16:19:26 -04:00
ed 80846d035f got it compiling again (still quite a bit todo) 2025-10-12 02:13:57 -04:00
ed 54ff97b6c1 more progress on grime for code2 2025-10-12 01:52:08 -04:00
ed 983cac0660 Bewing cursed stuff... (not sure I'll bother, but I want to see if it works...) 2025-10-11 22:46:13 -04:00
ed d25757da61 more progress on code 2 2025-10-11 21:24:46 -04:00
ed 05e979907a WIP: fleshing out cod2 for once a bit more
Planning to try out a flavor of Ryan's multi-threaded laned procs with the some extra threads hooked up separately to a job system.
Will most likely do 2 threads main/helper on live lanes, then 2 others on job queue loops
2025-10-11 19:17:29 -04:00
ed 7219b780fc began the rewrite... 2025-09-14 16:26:43 -04:00
ed 34e9f590ff making initial code2 codebase diretory 2025-09-14 16:05:56 -04:00
ed 8125f1680c preparing for codebase rewrite 2025-09-14 16:05:30 -04:00
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 fe8e84f9bd Selected primary names, reduction of secondary names 2025-07-08 00:14:19 -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 b15503c079 fleshing out some of the input binding impl 2025-07-04 14:06:51 -04:00
ed 2e8381b097 Beginning to review progress on prototype codebase bootstrapping. 2025-07-04 14:06:28 -04:00
ed ff91e41da9 convert all region/endregion directives to the comment signature used with editor plugins 2025-06-30 09:26:17 -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 bf5ecd0e0d adjust build script to odin_sectr.exe (renamed when compiler builds) 2025-06-28 20:56:11 -04:00
ed 54db9a7d57 misc updates to dependencies
removed freetype, updated vefontcache to latest and sokol + sokol gp
2025-06-26 23:27:05 -04:00
ed 3fd4e139d9 gitignore fixes 2025-06-26 22:15:43 -04:00
ed 01e989adc8 update gitignore 2025-06-26 21:46:32 -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 5b0878d14d update to latest vefontcache 2025-02-13 19:47:19 -05:00
ed 85dbaa37b9 updating to latest VEFontCache... tested 10k draw call target (worked) 2025-02-13 19:12:13 -05:00
ed 0f5f9c18b1 Update readme, build scripts
Add incremental build check for stb truetype lib
2025-02-01 09:29:31 -05:00
ed 07cd28226f update to latest 2025-01-13 20:44:07 -05:00
ed 0cd2d84c64 Simplified text rendering code (since its now much of the heavily lifting is all on VEFontCache) 2025-01-13 01:08:02 -05:00
ed 7680290650 vefontcache fixes 2025-01-13 00:55:42 -05:00
ed fd424c94bb Fixed bug wth vefoncache storage_entry.visible, added building stb_truetype to dep update 2025-01-12 22:03:38 -05:00
ed 9d5ac7b0d2 got it to compile with vefontcache changes, runtime issues.. 2025-01-12 16:41:55 -05:00
ed 9da0e73d3b Misc changes to engine and shaders 2025-01-12 14:01:11 -05:00
ed bc47b37a46 Update vefontcache to latest 2025-01-12 14:00:58 -05:00
ed a869ebab69 Add custom stb_truetype package/lib to thirdparty for vefontcache update 2025-01-12 14:00:43 -05:00
ed 22cf5c653b Update readme 2025-01-10 11:01:57 -05:00
ed e23935db5b More cleanup, preparing VEFontCache for public repo 2025-01-10 09:32:19 -05:00
ed 50dd6130c8 Working towards getting the library to an alpha release state 2025-01-10 01:54:18 -05:00
ed 488e5ba67f shaper_shape_text_latin was not resolving atlas info and bounds + lru poollist touchup 2025-01-09 23:53:59 -05:00
ed 9ab7bf78c6 made draw type vis a compile time option
Didn't want to deal with the branchless math trial and error...
2025-01-09 23:48:43 -05:00
ed b5fdc02b7d Updates to client api settings and memory suage of sokol_gp 2025-01-09 23:37:15 -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 fa627b4c4a LRU proper casts id to Pool_ListIter (don't assume i32) 2025-01-07 22:23:24 -05:00
ed 6010dd1590 Fix for blitting 2025-01-07 22:10:06 -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 6e01c39899 Builds again has on text rendering (makes sense) 2025-01-07 10:17:46 -05:00
ed 3a245a1e9b WIP (Broken) docs and huge changes 2025-01-07 03:06:12 -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 bf38087d8e Remove rune tracking for string cache, + vecache deharcoding atlas...
Shapers as well
2025-01-06 17:21:16 -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 f1f98ffafb Removed usage of procedure using statements from vefontcache 2025-01-06 11:23:30 -05:00
ed 840e6053ff WIP - VEFontCache: Working on getting font size usage and super-sampling via scaling working on library side... 2025-01-06 11:00:55 -05:00
ed c0b439bc30 Update readme and build script 2025-01-06 01:20:27 -05:00
ed d400ad6524 Merge remote-tracking branch 'github.com/master' 2025-01-04 20:30:03 -05:00
ed f18da9af05 minor adjustments 2025-01-04 20:29:32 -05:00
edandGitHub 62f9a726ee Update Readme.md 2025-01-04 20:27:54 -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 5b59942c1a WIP - VEFontCache: Working on streamlining to_cache codepath 2025-01-04 15:55:33 -05:00
ed 83b7098ce9 WIP : trying to fix oversized yet again... 2025-01-04 10:16:22 -05:00
ed d6e232b3f7 Fixed ui rendering issue with getting vertical metrics unscaled. 2025-01-04 10:13:30 -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 049633bdc5 VEFontCache: Fixed oversized drawing
* Added ENABLE_DRAW_TYPE_VIS
* Added DISABLE_PROFILING
* Some cleanup of unused codepaths
*
2025-01-03 18:04:15 -05:00
ed f6e7741bf3 More codepath simplification, convert lru to track u32 2025-01-03 15:11:02 -05:00
ed c4c3bba20c VEFontchange: codepath changes and bugfixing 2025-01-03 13:06:43 -05:00
ed 8c7b3e2058 misc changes 2025-01-03 13:06:05 -05:00
ed db1701a5d7 finished simpiflying/pipelining generate_oversized_draw_list 2025-01-03 02:16:49 -05:00
ed b066b0de3a more perf improves for VEFontCache 2025-01-03 01:25:05 -05:00
ed 5e0afd5b7b WIP - VEFontCache : generate_shape_draw_list codepath simplification 2025-01-02 22:56:08 -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 44c97eec71 move freetype function to its own file to declutter draw.odin 2025-01-02 18:16:46 -05:00
ed b427f1fbc8 decide_codepoint_region -> atlas_decide_region (codepath simplifcation... 2025-01-02 18:03:32 -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 560b2a125b Adjustments to render codepath on sectr side 2025-01-02 13:00:22 -05:00
ed fa881a263a Successfuly hard-segmented the three different situations for enquing glyphs of a shape 2025-01-01 23:07:22 -05:00
ed 4adbfaa9fd WIP - VEFontCahe: More progress on optimizing codepaths with SOA 2025-01-01 22:11:41 -05:00
ed dd1752f84b WIP - VeFontcache: Testing performance of using an SOA setup for processing shape's glyphs 2025-01-01 17:01:59 -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 9015f4ce3c Converted UI_State box caches to use hmap_chained 2024-12-31 02:39:18 -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 ddca5e8668 Finished initial window implementation 2024-12-31 00:17:05 -05:00
ed 2a89778c0f May have figured out auto-layout for ordering children (horizontally or vertically)
I'm going to leave the manual compute_layout options for now but their going to be disabled by default.
2024-12-30 23:05:15 -05:00