Tracking Asset Usage
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:18Recap and plan for today
0:18Recap and plan for today
0:18Recap and plan for today
1:12Using the OS's virtual memory system to solve our memory management problem
1:12Using the OS's virtual memory system to solve our memory management problem
1:12Using the OS's virtual memory system to solve our memory management problem
4:27Tracking memory load
4:27Tracking memory load
4:27Tracking memory load
4:51Using an allocation scheme that gets the memory from the OS and returns it on eviction
4:51Using an allocation scheme that gets the memory from the OS and returns it on eviction
4:51Using an allocation scheme that gets the memory from the OS and returns it on eviction
8:19Implementing platform_allocate_memory
8:19Implementing platform_allocate_memory
8:19Implementing platform_allocate_memory
10:26These changes break the looped live code editing feature
10:26These changes break the looped live code editing feature
10:26These changes break the looped live code editing feature
12:57Two approaches: a) deferring LoadBitmap calls till the end of the frame and b) keeping some amount of free space to make loading always possible
12:57Two approaches: a) deferring LoadBitmap calls till the end of the frame and b) keeping some amount of free space to make loading always possible
12:57Two approaches: a) deferring LoadBitmap calls till the end of the frame and b) keeping some amount of free space to make loading always possible
13:40Tracking amount of memory used in the asset system (AcquireAssetMemory)
13:40Tracking amount of memory used in the asset system (AcquireAssetMemory)
13:40Tracking amount of memory used in the asset system (AcquireAssetMemory)
15:16RealeaseAssetMemory requires us to provide the size of asset to free
15:16RealeaseAssetMemory requires us to provide the size of asset to free
15:16RealeaseAssetMemory requires us to provide the size of asset to free
18:16Using the platform calls instead of the memory arenas
18:16Using the platform calls instead of the memory arenas
18:16Using the platform calls instead of the memory arenas
19:17Tracking memory usage and freeing memory at the end of the frame (EvictAssetsAsNecessary)
19:17Tracking memory usage and freeing memory at the end of the frame (EvictAssetsAsNecessary)
19:17Tracking memory usage and freeing memory at the end of the frame (EvictAssetsAsNecessary)
21:40Evicting the least recently used asset
21:40Evicting the least recently used asset
21:40Evicting the least recently used asset
23:18EvictAsset
23:18EvictAsset
23:18EvictAsset
26:44Distinguishing between bitmaps and sound inside AssetState
26:44Distinguishing between bitmaps and sound inside AssetState
26:44Distinguishing between bitmaps and sound inside AssetState
29:35Computing the amount of memory taken by an asset
29:35Computing the amount of memory taken by an asset
29:35Computing the amount of memory taken by an asset
35:11Getting rid of duplicated calculations
35:11Getting rid of duplicated calculations
35:11Getting rid of duplicated calculations
41:41Figuring out the location of the chunk of memory to free
41:41Figuring out the location of the chunk of memory to free
41:41Figuring out the location of the chunk of memory to free
45:52Doubly linked list to keep track of least recently used asset
45:52Doubly linked list to keep track of least recently used asset
45:52Doubly linked list to keep track of least recently used asset
52:09Doubly linked list theory (blackboard)
52:09Doubly linked list theory (blackboard)
52:09Doubly linked list theory (blackboard)
53:55AddAssetHeaderToList
53:55AddAssetHeaderToList
53:55AddAssetHeaderToList
56:21Semantic setup of pointers
56:21Semantic setup of pointers
56:21Semantic setup of pointers
57:13RemoveAssetHeaderFromList
57:13RemoveAssetHeaderFromList
57:13RemoveAssetHeaderFromList
1:02:18Initial sentinel setup
1:02:18Initial sentinel setup
1:02:18Initial sentinel setup
1:04:33We should avoid evicting locked assets
1:04:33We should avoid evicting locked assets
1:04:33We should avoid evicting locked assets
1:07:32Types of doubly linked lists and overview of their implementation
1:07:32Types of doubly linked lists and overview of their implementation
1:07:32Types of doubly linked lists and overview of their implementation
1:10:00Q&A
🗩
1:10:00Q&A
🗩
1:10:00Q&A
🗩
1:10:05noxy_key What function owns the pointer to the head of linked list?
🗪
1:10:05noxy_key What function owns the pointer to the head of linked list?
🗪
1:10:05noxy_key What function owns the pointer to the head of linked list?
🗪
1:10:16zuurr_ Isn't a linked list what you're always told not to do if you're care about the cache at all?
🗪
1:10:16zuurr_ Isn't a linked list what you're always told not to do if you're care about the cache at all?
🗪
1:10:16zuurr_ Isn't a linked list what you're always told not to do if you're care about the cache at all?
🗪
1:11:45insofaras Could the platform_allocate_memory function allocate a few bytes more than requested and store the size there to avoid it having to be passed to the free function?
🗪
1:11:45insofaras Could the platform_allocate_memory function allocate a few bytes more than requested and store the size there to avoid it having to be passed to the free function?
🗪
1:11:45insofaras Could the platform_allocate_memory function allocate a few bytes more than requested and store the size there to avoid it having to be passed to the free function?
🗪
1:12:07constantinopol Having a list header at the end of each asset struct, wouldn't that invalidate the cache a lot, when processing the list, since asset structs are potentially large?
🗪
1:12:07constantinopol Having a list header at the end of each asset struct, wouldn't that invalidate the cache a lot, when processing the list, since asset structs are potentially large?
🗪
1:12:07constantinopol Having a list header at the end of each asset struct, wouldn't that invalidate the cache a lot, when processing the list, since asset structs are potentially large?
🗪
1:13:14phazyck In RemoveAssetHeaderFromList, would it make sense to zero out the prev and next pointers of the header that is being removed, or is it just unnecessary cleanup? Are there pros and cons to this?
🗪
1:13:14phazyck In RemoveAssetHeaderFromList, would it make sense to zero out the prev and next pointers of the header that is being removed, or is it just unnecessary cleanup? Are there pros and cons to this?
🗪
1:13:14phazyck In RemoveAssetHeaderFromList, would it make sense to zero out the prev and next pointers of the header that is being removed, or is it just unnecessary cleanup? Are there pros and cons to this?
🗪
1:13:56captainduh Will there be a fountain of heads somewhere in the actual game, possibly as a Halloween item?
🗪
1:13:56captainduh Will there be a fountain of heads somewhere in the actual game, possibly as a Halloween item?
🗪
1:13:56captainduh Will there be a fountain of heads somewhere in the actual game, possibly as a Halloween item?
🗪
1:14:03sukmiekok Is Twitch your full-time job?
🗪
1:14:03sukmiekok Is Twitch your full-time job?
🗪
1:14:03sukmiekok Is Twitch your full-time job?
🗪
1:14:07guit4rfreak How will you re-enable the live code reloading after this is done?
🗪
1:14:07guit4rfreak How will you re-enable the live code reloading after this is done?
🗪
1:14:07guit4rfreak How will you re-enable the live code reloading after this is done?
🗪
1:15:13cubercaleb Can you briefly go over inlined functions?
🗪
1:15:13cubercaleb Can you briefly go over inlined functions?
🗪
1:15:13cubercaleb Can you briefly go over inlined functions?
🗪
1:16:20abnercoimbre Which classic data structure do you enjoy implementing the most?
🗪
1:16:20abnercoimbre Which classic data structure do you enjoy implementing the most?
🗪
1:16:20abnercoimbre Which classic data structure do you enjoy implementing the most?
🗪
1:17:08grumpygiant256 Does/will this system support hotloading of assets?
🗪
1:17:08grumpygiant256 Does/will this system support hotloading of assets?
🗪
1:17:08grumpygiant256 Does/will this system support hotloading of assets?
🗪
1:18:38guit4rfreak Does it make sense to write your own non-block dynamic allocator instead of using the memory system of the OS?
🗪
1:18:38guit4rfreak Does it make sense to write your own non-block dynamic allocator instead of using the memory system of the OS?
🗪
1:18:38guit4rfreak Does it make sense to write your own non-block dynamic allocator instead of using the memory system of the OS?
🗪