Tracking Asset Usage
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
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 and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

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:05@noxy_key What function owns the pointer to the head of linked list?
🗪
1:10:05@noxy_key What function owns the pointer to the head of linked list?
🗪
1:10:05@noxy_key What function owns the pointer to the head of linked list?
🗪
1:10:16@zuurr_ Isn't a linked list what you're always told not to do if you're care about the cache at all?
🗪
1:10:16@zuurr_ Isn't a linked list what you're always told not to do if you're care about the cache at all?
🗪
1:10:16@zuurr_ Isn't a linked list what you're always told not to do if you're care about the cache at all?
🗪
1:11:45@insofaras 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:45@insofaras 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:45@insofaras 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:07@constantinopol 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:07@constantinopol 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:07@constantinopol 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:14@phazyck 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:14@phazyck 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:14@phazyck 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:56@captainduh Will there be a fountain of heads somewhere in the actual game, possibly as a Halloween item?
🗪
1:13:56@captainduh Will there be a fountain of heads somewhere in the actual game, possibly as a Halloween item?
🗪
1:13:56@captainduh Will there be a fountain of heads somewhere in the actual game, possibly as a Halloween item?
🗪
1:14:03@sukmiekok Is Twitch your full-time job?
🗪
1:14:03@sukmiekok Is Twitch your full-time job?
🗪
1:14:03@sukmiekok Is Twitch your full-time job?
🗪
1:14:07@guit4rfreak How will you re-enable the live code reloading after this is done?
🗪
1:14:07@guit4rfreak How will you re-enable the live code reloading after this is done?
🗪
1:14:07@guit4rfreak How will you re-enable the live code reloading after this is done?
🗪
1:15:13@cubercaleb Can you briefly go over inlined functions?
🗪
1:15:13@cubercaleb Can you briefly go over inlined functions?
🗪
1:15:13@cubercaleb Can you briefly go over inlined functions?
🗪
1:16:20@abnercoimbre Which classic data structure do you enjoy implementing the most?
🗪
1:16:20@abnercoimbre Which classic data structure do you enjoy implementing the most?
🗪
1:16:20@abnercoimbre Which classic data structure do you enjoy implementing the most?
🗪
1:17:08@grumpygiant256 Does/will this system support hotloading of assets?
🗪
1:17:08@grumpygiant256 Does/will this system support hotloading of assets?
🗪
1:17:08@grumpygiant256 Does/will this system support hotloading of assets?
🗪
1:18:38@guit4rfreak Does it make sense to write your own non-block dynamic allocator instead of using the memory system of the OS?
🗪
1:18:38@guit4rfreak Does it make sense to write your own non-block dynamic allocator instead of using the memory system of the OS?
🗪
1:18:38@guit4rfreak Does it make sense to write your own non-block dynamic allocator instead of using the memory system of the OS?
🗪