is presently its sole maintainer,
You can support him:
Recap and plan for the day
Plan for today: Writing our own general-purpose memory allocator
Ode to stack memory allocation
The asset system needs a more sophisticated memory allocator
Closer look at asset eviction and memory fragmentation (blackboard)
Overview of our approach
Thinking of our available memory in terms of free fragments
Merging contiguous free blocks
We won't be performing small allocations
Every block will keep information of neighboring blocks
A possible way of implementing the allocation operation
We can call EvictAssetsAsNecessary from inside AcquireAssetMemory!
Modifying AcquireAssetMemory to work with our own memory
Evicting assets to make room for a new one
Keeping track of the location of our assets
Doubly linked list of memory blocks
Conditionally splitting the memory block used to store an asset as a function of its remaining capacity
Recovering memory blocks inside ReleaseAssetMemory
jameswidman Q: Given that this is an optimization problem, it seems like we'll want to have a system for profiling asset use and eviction (and check its output periodically as the game and assets grow over the next year or so). Should this be on the agenda in the near term?
graeme7 Q: I'm not clear on what happens in the else when we fail to find a block, could you go over it?
constantinopol Q: Why do we need to check the remaining size > threshold ? Why not just use the remaining size if it satisfies the request size?
snafusel Q: How come this memory management system is strictly limited to game assets and not other things as well?
gasto5 Q: What will the GUI handle? (Answered at 01:11:18)
grumpygiant256 Q: If this were a commercial project, would it make sense to use malloc instead here, or write your own anyway for managing assets?
gasto5 Q: Any possibility of using Markov Chains for the game or game engine?
mojobojo Q: It's looking like Vulkan, if it gets released in a timely manner, is going to be a good choice for hardware rendering. I just read that you have control over all memory to avoid any unknown allocations "Explicit memory management in Vulkan allows applications to use custom allocation strategies. For example to allocate all memory up-front and avoid any allocations during rendering"
blah238 Q: Have you thought about having a "prefab" asset that people could use to make more complex assets, like a whole house with functional doors?
gasto5 Q: (Referring to Q at 01:06:41) The GUI mentioned in the TODO list
constantinopol Q: You keep saying "split the block in half" What do you mean? 'Size = Size/2'?
mojobojo Q: (Referring to Q at 01:09:47) This is where I read it from: http://blog.imgtec.com/powervr/trying-out-the-new-vulkan-graphics-api-on-powervr-gpus
insofaras Q: Will the debug GUI have a cool console like Quake/Unreal?