Handmade Hero»Episode Guide
Implementing Drill-down in the Profiler
?
?

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:58Run the game and consider how to develop the profiler
0:58Run the game and consider how to develop the profiler
0:58Run the game and consider how to develop the profiler
5:10handmade_debug.cpp: Make DrawProfileIn do PushRectOutline instead of PushRect
5:10handmade_debug.cpp: Make DrawProfileIn do PushRectOutline instead of PushRect
5:10handmade_debug.cpp: Make DrawProfileIn do PushRectOutline instead of PushRect
5:56handmade_render_group.cpp: Introduce a PushRectOutline that takes the same arguments as PushRect
5:56handmade_render_group.cpp: Introduce a PushRectOutline that takes the same arguments as PushRect
5:56handmade_render_group.cpp: Introduce a PushRectOutline that takes the same arguments as PushRect
6:34Run the game and see that the outlined rectangles don't seem to be correct
6:34Run the game and see that the outlined rectangles don't seem to be correct
6:34Run the game and see that the outlined rectangles don't seem to be correct
9:24Debugger: Step into PushRectOutline and inspect its values
9:24Debugger: Step into PushRectOutline and inspect its values
9:24Debugger: Step into PushRectOutline and inspect its values
12:43handmade_render_group.cpp: Make PushRectOutline use the thickness
12:43handmade_render_group.cpp: Make PushRectOutline use the thickness
12:43handmade_render_group.cpp: Make PushRectOutline use the thickness
13:40handmade_debug.cpp: Get that thickness back in there
13:40handmade_debug.cpp: Get that thickness back in there
13:40handmade_debug.cpp: Get that thickness back in there
14:03Run the game and view the profiler
14:03Run the game and view the profiler
14:03Run the game and view the profiler
14:26handmade_debug.cpp: Introduce DrawProfileBars
14:26handmade_debug.cpp: Introduce DrawProfileBars
14:26handmade_debug.cpp: Introduce DrawProfileBars
19:21handmade_debug.cpp: Call DrawProfileBars in DrawProfileIn
19:21handmade_debug.cpp: Call DrawProfileBars in DrawProfileIn
19:21handmade_debug.cpp: Call DrawProfileBars in DrawProfileIn
20:11Run the game and see that the profile view is the same
20:11Run the game and see that the profile view is the same
20:11Run the game and see that the profile view is the same
20:19handmade_debug.cpp: Call DrawProfileBars recursively
20:19handmade_debug.cpp: Call DrawProfileBars recursively
20:19handmade_debug.cpp: Call DrawProfileBars recursively
21:07Run the game and view the entire call stack in the profile
21:07Run the game and view the entire call stack in the profile
21:07Run the game and view the entire call stack in the profile
22:02handmade_debug.h: Introduce MouseTextStackY to enable us to see information for multiple debug elements
22:02handmade_debug.h: Introduce MouseTextStackY to enable us to see information for multiple debug elements
22:02handmade_debug.h: Introduce MouseTextStackY to enable us to see information for multiple debug elements
23:28Run the game and see this information
23:28Run the game and see this information
23:28Run the game and see this information
24:18handmade_debug.cpp: Introduce GetLineAdvance to give us a more robust way to write multiple lines
24:18handmade_debug.cpp: Introduce GetLineAdvance to give us a more robust way to write multiple lines
24:18handmade_debug.cpp: Introduce GetLineAdvance to give us a more robust way to write multiple lines
26:50Run the game and see our correctly spaced lines
26:50Run the game and see our correctly spaced lines
26:50Run the game and see our correctly spaced lines
27:21win32_handmade.cpp: Increase the PushBufferSize
27:21win32_handmade.cpp: Increase the PushBufferSize
27:21win32_handmade.cpp: Increase the PushBufferSize
27:57Run the game, view the profiler and consider implementing zoom
27:57Run the game, view the profiler and consider implementing zoom
27:57Run the game, view the profiler and consider implementing zoom
30:52handmade_debug.cpp: Begin to implement zoom
30:52handmade_debug.cpp: Begin to implement zoom
30:52handmade_debug.cpp: Begin to implement zoom
31:51handmade_debug.h: Introduce debug_view_profile_graph
31:51handmade_debug.h: Introduce debug_view_profile_graph
31:51handmade_debug.h: Introduce debug_view_profile_graph
34:32handmade_debug.cpp: Provide the ability to set RootNode based on a search
34:32handmade_debug.cpp: Provide the ability to set RootNode based on a search
34:32handmade_debug.cpp: Provide the ability to set RootNode based on a search
46:15handmade_debug.h and handmade_debug.cpp: Provide the ability to set the profile graph root for zooming
46:15handmade_debug.h and handmade_debug.cpp: Provide the ability to set the profile graph root for zooming
46:15handmade_debug.h and handmade_debug.cpp: Provide the ability to set the profile graph root for zooming
52:58Run the game and try out the zoom
52:58Run the game and try out the zoom
52:58Run the game and try out the zoom
53:30Debugger: Break into DEBUGEndInteract and inspect the values upon zooming
53:30Debugger: Break into DEBUGEndInteract and inspect the values upon zooming
53:30Debugger: Break into DEBUGEndInteract and inspect the values upon zooming
1:01:12Debugger: Break on ZoomInteraction, inspect the values and find that we're currently picking the wrong Frame
1:01:12Debugger: Break on ZoomInteraction, inspect the values and find that we're currently picking the wrong Frame
1:01:12Debugger: Break on ZoomInteraction, inspect the values and find that we're currently picking the wrong Frame
1:04:46handmade_debug.cpp: Search for the correct Frame to set the RootNode
1:04:46handmade_debug.cpp: Search for the correct Frame to set the RootNode
1:04:46handmade_debug.cpp: Search for the correct Frame to set the RootNode
1:06:58Run the game and successfully try out the beautiful zoom
1:06:58Run the game and successfully try out the beautiful zoom
1:06:58Run the game and successfully try out the beautiful zoom
1:09:28Q&A
🗩
1:09:28Q&A
🗩
1:09:28Q&A
🗩
1:10:11deepmist: Are you as productive in a single 8 hour period as you are on the show over 8 sessions?
🗪
1:10:11deepmist: Are you as productive in a single 8 hour period as you are on the show over 8 sessions?
🗪
1:10:11deepmist: Are you as productive in a single 8 hour period as you are on the show over 8 sessions?
🗪
1:10:38Popcorn0x90 Do you have that in your current game at work?
🗪
1:10:38Popcorn0x90 Do you have that in your current game at work?
🗪
1:10:38Popcorn0x90 Do you have that in your current game at work?
🗪
1:10:54jessem3y3r Is our debug tooling sophisticated enough to detect OS slowness, i.e. problems with heap / mem performance, etc?1
🗪
1:10:54jessem3y3r Is our debug tooling sophisticated enough to detect OS slowness, i.e. problems with heap / mem performance, etc?1
🗪
1:10:54jessem3y3r Is our debug tooling sophisticated enough to detect OS slowness, i.e. problems with heap / mem performance, etc?1
🗪
1:13:14SoysauceTheKid When doing playback, is the debug info showing the past CPU info?
🗪
1:13:14SoysauceTheKid When doing playback, is the debug info showing the past CPU info?
🗪
1:13:14SoysauceTheKid When doing playback, is the debug info showing the past CPU info?
🗪
1:13:49oscarnuwar Only in C/CPP?
🗪
1:13:49oscarnuwar Only in C/CPP?
🗪
1:13:49oscarnuwar Only in C/CPP?
🗪
1:13:57cynikhul What type of game is this, e.g. FPS, RPM etc?
🗪
1:13:57cynikhul What type of game is this, e.g. FPS, RPM etc?
🗪
1:13:57cynikhul What type of game is this, e.g. FPS, RPM etc?
🗪
1:14:05Popcorn0x90 Yes profiler!
🗪
1:14:05Popcorn0x90 Yes profiler!
🗪
1:14:05Popcorn0x90 Yes profiler!
🗪
1:14:10guitarm87 I discovered why I didn't see the font rendering. I'm on a 2560 x 1440 screen with 200% DPI scaling. Do I have to use a specific resolution to make it work?
🗪
1:14:10guitarm87 I discovered why I didn't see the font rendering. I'm on a 2560 x 1440 screen with 200% DPI scaling. Do I have to use a specific resolution to make it work?
🗪
1:14:10guitarm87 I discovered why I didn't see the font rendering. I'm on a 2560 x 1440 screen with 200% DPI scaling. Do I have to use a specific resolution to make it work?
🗪
1:14:59erdomina Was there a factor in not implementing moving backwards in the threading system?
🗪
1:14:59erdomina Was there a factor in not implementing moving backwards in the threading system?
🗪
1:14:59erdomina Was there a factor in not implementing moving backwards in the threading system?
🗪
1:17:27Call it
🗩
1:17:27Call it
🗩
1:17:27Call it
🗩
1:18:20Promote 4coder
🗩
1:18:20Promote 4coder
🗩
1:18:20Promote 4coder
🗩