Handmade Hero»Episode Guide
Collating Debug Events
?
?

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:19"We have all the code"α
0:19"We have all the code"α
0:19"We have all the code"α
0:25Recap and plan for today
0:25Recap and plan for today
0:25Recap and plan for today
3:05(Blackboard) Problems related to performance counter visualization
3:05(Blackboard) Problems related to performance counter visualization
3:05(Blackboard) Problems related to performance counter visualization
3:32There's one straightforward approach to performance counter visualization that we could implement...
3:32There's one straightforward approach to performance counter visualization that we could implement...
3:32There's one straightforward approach to performance counter visualization that we could implement...
4:16...but it poses some problems
4:16...but it poses some problems
4:16...but it poses some problems
5:11We could sidestep the issue by building two separate views: one hierarchical, the other one a ranking of routines sorted by total decreasing execution time
5:11We could sidestep the issue by building two separate views: one hierarchical, the other one a ranking of routines sorted by total decreasing execution time
5:11We could sidestep the issue by building two separate views: one hierarchical, the other one a ranking of routines sorted by total decreasing execution time
8:40Implementing DEBUGOverlay by writing the usage code first
8:40Implementing DEBUGOverlay by writing the usage code first
8:40Implementing DEBUGOverlay by writing the usage code first
9:15Thinking aloud about the task
9:15Thinking aloud about the task
9:15Thinking aloud about the task
13:46(Blackboard) We'll support the display of multithreaded routines by segmenting the bar charts into lanes
13:46(Blackboard) We'll support the display of multithreaded routines by segmenting the bar charts into lanes
13:46(Blackboard) We'll support the display of multithreaded routines by segmenting the bar charts into lanes
23:45Figuring out the structures that will allow us to draw the charts
23:45Figuring out the structures that will allow us to draw the charts
23:45Figuring out the structures that will allow us to draw the charts
27:34Testing the new code
27:34Testing the new code
27:34Testing the new code
27:50Filling out the collation structures
27:50Filling out the collation structures
27:50Filling out the collation structures
28:39We'll use an arena to collate the debug events and records...
28:39We'll use an arena to collate the debug events and records...
28:39We'll use an arena to collate the debug events and records...
31:28...which means we'll be recollating all the data every frame
31:28...which means we'll be recollating all the data every frame
31:28...which means we'll be recollating all the data every frame
34:54Testing that we are still running. The memory we'll use for collation should be in place now
34:54Testing that we are still running. The memory we'll use for collation should be in place now
34:54Testing that we are still running. The memory we'll use for collation should be in place now
35:01Collating the debug information
35:01Collating the debug information
35:01Collating the debug information
39:53(Blackboard) Which event arrays are we going to process?
39:53(Blackboard) Which event arrays are we going to process?
39:53(Blackboard) Which event arrays are we going to process?
40:56“Sometimes programming just doesn't make sense.”β
40:56“Sometimes programming just doesn't make sense.”β
40:56“Sometimes programming just doesn't make sense.”β
41:07Make CollateDebugRecords() loop over the debug event arrays from oldest to newest
41:07Make CollateDebugRecords() loop over the debug event arrays from oldest to newest
41:07Make CollateDebugRecords() loop over the debug event arrays from oldest to newest
43:51Processing the debug event arrays
43:51Processing the debug event arrays
43:51Processing the debug event arrays
44:45Multithreading and the possible lack of strict rdtsc serialization could interfere with the ordering of the events
44:45Multithreading and the possible lack of strict rdtsc serialization could interfere with the ordering of the events
44:45Multithreading and the possible lack of strict rdtsc serialization could interfere with the ordering of the events
45:16We'll draw a new set of bars after each frame marker
45:16We'll draw a new set of bars after each frame marker
45:16We'll draw a new set of bars after each frame marker
49:25We'll ignore all events preceding the first frame marker we encounter
49:25We'll ignore all events preceding the first frame marker we encounter
49:25We'll ignore all events preceding the first frame marker we encounter
50:20Figuring out the relative clock of events inside a frame
50:20Figuring out the relative clock of events inside a frame
50:20Figuring out the relative clock of events inside a frame
52:18"I liked how that completed to nothings"γ
52:18"I liked how that completed to nothings"γ
52:18"I liked how that completed to nothings"γ
55:56Q&A
🗩
55:56Q&A
🗩
55:56Q&A
🗩
56:57andsz_ You could have made your loop this way: for(u32 EventArrayIndex = InvalidEventArrayIndex + 1; EventArrayIndex != InvalidEventArrayIndex; EventArrayIndex = (EventArrayIndex + 1) % MAX_DEBUG_FRAME_COUNT) { ... }; Or did you want to save the modulo?
🗪
56:57andsz_ You could have made your loop this way: for(u32 EventArrayIndex = InvalidEventArrayIndex + 1; EventArrayIndex != InvalidEventArrayIndex; EventArrayIndex = (EventArrayIndex + 1) % MAX_DEBUG_FRAME_COUNT) { ... }; Or did you want to save the modulo?
🗪
56:57andsz_ You could have made your loop this way: for(u32 EventArrayIndex = InvalidEventArrayIndex + 1; EventArrayIndex != InvalidEventArrayIndex; EventArrayIndex = (EventArrayIndex + 1) % MAX_DEBUG_FRAME_COUNT) { ... }; Or did you want to save the modulo?
🗪
58:39ChronalDragon Might not have a ton of on-topic questions. Chat was a bit... distracted
🗪
58:39ChronalDragon Might not have a ton of on-topic questions. Chat was a bit... distracted
🗪
58:39ChronalDragon Might not have a ton of on-topic questions. Chat was a bit... distracted
🗪
58:45elxenoaizd What would be the most important things you'd look at when hiring a programmer? What type of questions would you ask? Does he have to have, like, 20+ years of experience?
🗪
58:45elxenoaizd What would be the most important things you'd look at when hiring a programmer? What type of questions would you ask? Does he have to have, like, 20+ years of experience?
🗪
58:45elxenoaizd What would be the most important things you'd look at when hiring a programmer? What type of questions would you ask? Does he have to have, like, 20+ years of experience?
🗪
1:00:54garryjohanson Do you think you do not need to ever worry about modulus or divides anymore?
🗪
1:00:54garryjohanson Do you think you do not need to ever worry about modulus or divides anymore?
🗪
1:00:54garryjohanson Do you think you do not need to ever worry about modulus or divides anymore?
🗪
1:02:22quartertron Which Linux debugger is closest to not sucking and what is it missing?
🗪
1:02:22quartertron Which Linux debugger is closest to not sucking and what is it missing?
🗪
1:02:22quartertron Which Linux debugger is closest to not sucking and what is it missing?
🗪
1:02:54OriginalName667 On a scale of 1 to Visual Studio, why is Emacs a 1 and when will you join the visual studio master race?
🗪
1:02:54OriginalName667 On a scale of 1 to Visual Studio, why is Emacs a 1 and when will you join the visual studio master race?
🗪
1:02:54OriginalName667 On a scale of 1 to Visual Studio, why is Emacs a 1 and when will you join the visual studio master race?
🗪
1:04:10diaboIix17 Sorry if this has been asked before, but what keyboard are you using?
🗪
1:04:10diaboIix17 Sorry if this has been asked before, but what keyboard are you using?
🗪
1:04:10diaboIix17 Sorry if this has been asked before, but what keyboard are you using?
🗪
1:04:59LewyLue How did you get into Game Development?1
🗪
1:04:59LewyLue How did you get into Game Development?1
🗪
1:04:59LewyLue How did you get into Game Development?1
🗪
1:06:08Stephenlast My girlfriend wanted to let you know that she has the same water bottle as you!
🗪
1:06:08Stephenlast My girlfriend wanted to let you know that she has the same water bottle as you!
🗪
1:06:08Stephenlast My girlfriend wanted to let you know that she has the same water bottle as you!
🗪
1:07:23waterlimon What decision process do you use to choose the color of sweater to wear on a particular day?
🗪
1:07:23waterlimon What decision process do you use to choose the color of sweater to wear on a particular day?
🗪
1:07:23waterlimon What decision process do you use to choose the color of sweater to wear on a particular day?
🗪
1:07:48aceflameseer Will you please sign the contract with twitch so we can get good Casey emotes in chat?
🗪
1:07:48aceflameseer Will you please sign the contract with twitch so we can get good Casey emotes in chat?
🗪
1:07:48aceflameseer Will you please sign the contract with twitch so we can get good Casey emotes in chat?
🗪
1:08:01elxenoaizd Have you seen the Poker keyboard series? It's very interesting in that it has all the keys in the center of the keyboard, you never have to leave the center row
🗪
1:08:01elxenoaizd Have you seen the Poker keyboard series? It's very interesting in that it has all the keys in the center of the keyboard, you never have to leave the center row
🗪
1:08:01elxenoaizd Have you seen the Poker keyboard series? It's very interesting in that it has all the keys in the center of the keyboard, you never have to leave the center row
🗪
1:08:13Stephenlast We'll keep you updated!
🗪
1:08:13Stephenlast We'll keep you updated!
🗪
1:08:13Stephenlast We'll keep you updated!
🗪
1:08:16Cx00 Still using the 3 bin system for clothes?
🗪
1:08:16Cx00 Still using the 3 bin system for clothes?
🗪
1:08:16Cx00 Still using the 3 bin system for clothes?
🗪
1:08:20elxenoaizd Does it ever happen to you when you sleep on a problem and then when you wake up the solution would just click in your head?
🗪
1:08:20elxenoaizd Does it ever happen to you when you sleep on a problem and then when you wake up the solution would just click in your head?
🗪
1:08:20elxenoaizd Does it ever happen to you when you sleep on a problem and then when you wake up the solution would just click in your head?
🗪
1:10:37elxenoaizd Does it have to be at night, or just when you're sleeping?
🗪
1:10:37elxenoaizd Does it have to be at night, or just when you're sleeping?
🗪
1:10:37elxenoaizd Does it have to be at night, or just when you're sleeping?
🗪
1:11:07Cx00 What time do you usually go to sleep?
🗪
1:11:07Cx00 What time do you usually go to sleep?
🗪
1:11:07Cx00 What time do you usually go to sleep?
🗪
1:11:13vtlmks Could you please expand on what you meant by "in the future there won't be dedicated hardware for graphics"? You mean it'll be more CPU cores and ray tracing instead?
🗪
1:11:13vtlmks Could you please expand on what you meant by "in the future there won't be dedicated hardware for graphics"? You mean it'll be more CPU cores and ray tracing instead?
🗪
1:11:13vtlmks Could you please expand on what you meant by "in the future there won't be dedicated hardware for graphics"? You mean it'll be more CPU cores and ray tracing instead?
🗪
1:12:34Dragonkinn02 Would you think in the next 5-10 years they'll move us from 64-bit to 128 bit?
🗪
1:12:34Dragonkinn02 Would you think in the next 5-10 years they'll move us from 64-bit to 128 bit?
🗪
1:12:34Dragonkinn02 Would you think in the next 5-10 years they'll move us from 64-bit to 128 bit?
🗪
1:12:53Wind it on down
🗩
1:12:53Wind it on down
🗩
1:12:53Wind it on down
🗩