is presently its sole maintainer,
You can support him:
Recap and plan for today
Preventing eviction of locked assets (those used in background tasks)
We never lock any asset; let's lock some
Not locking sounds
The render group knows whether an asset should be locked or not
Safeguarding against caller mistakes
Preventing the eviction of assets before they are completely loaded
Testing the changes
Moving the most recently used asset to the front of the linked list
Getting the header from the slot is tricky
MoveHeaderToFront should only affect loaded bitmaps
Deciding to clean up the loaded asset code
"Locked" as a flag, independent of asset loading stage
Checking the commit size of the game on the Windows task manager. Casey's head gets in the way; see Q at 01:01:43
Simplifying the loaded asset infrastructure
Merging asset slot and asset
Condensing everything necessary to work with an asset into the asset header
Storing the size of the loaded asset instead of its type
ttbjm Q: Your head was over the window when you were looking at the commit size
constantinopol Q: The linked-list way of computing least-used asset seems like a simple and neat trick. What are its drawbacks?
manicthenobody Q: Garlandobloom may be too drunk today
gasto5 Q: Can you explain the code in which you changed the asset loading so that it stops blinking (the bitmaps and sounds)?
culver_fly Q: Will there be a concern of cache misses while manipulating the doubly linked lists every frame?
graeme7 Q: You've got a TODO about the size of the audio asset struct. How important do you think it is to keep structs compact? -- (Casey undoes the size shrinking of LoadedBitmap, since now it's included in the asset header and not in the asset slot (blackboard))
braincruser Q: Do you have a hard drive to check this system on it?
captainduh Q: Is there a problem setting the asset header to null after unlocking it? I thought there was some background loading of some stuff
breadthofhair Q: Is the heap and the stack just different sections of RAM, managed by the OS? Also, if so, do different programs ever share stack space? Would you please shed some light on this or point me to some video of yours that I missed?
breadthofhair Q: I'm confused as to what the memory layout will be after using the doubly linked list for a while? The memory will fragment eventually as of now, no?
constantinopol Q: Couldn't we use just use a 'IsLocked' bool, inside 'Asset->Header' struct?
groggeh Q: Won't this method of swapping the assets cause memory fragmentation?
captainduh Q: So something like this can't happen? Asset evict function is called, release happens, unlock happens, thread context switches to loader, something gets loaded into that slot with some header, thread context switches back, header is cleared to 0
jameswidman Q: Is it possible that, due to the kernel caching disk accesses, we're paying more than once for each asset? Like, after we evict an asset, is another copy of it likely to be cached in physical memory because of the OS's caching of the pack file?