Simple Performance Counters
?
?

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)
2:04Blackboard: Basic process of optimization
2:04Blackboard: Basic process of optimization
2:04Blackboard: Basic process of optimization
6:02Gather statistics
6:02Gather statistics
6:02Gather statistics
8:45Revisit __rdtsc
8:45Revisit __rdtsc
8:45Revisit __rdtsc
10:22GAME_UPDATE_AND_RENDER: Add __rdtsc cycle counts
10:22GAME_UPDATE_AND_RENDER: Add __rdtsc cycle counts
10:22GAME_UPDATE_AND_RENDER: Add __rdtsc cycle counts
11:23Introduce debug_cycle_counter in handmade_platform.h
11:23Introduce debug_cycle_counter in handmade_platform.h
11:23Introduce debug_cycle_counter in handmade_platform.h
13:52Support folks on platforms such as Linux and Mac, etc.
13:52Support folks on platforms such as Linux and Mac, etc.
13:52Support folks on platforms such as Linux and Mac, etc.
18:42Compile, clean and run
18:42Compile, clean and run
18:42Compile, clean and run
19:44FillGroundChunk: Turn off the ground chunks
19:44FillGroundChunk: Turn off the ground chunks
19:44FillGroundChunk: Turn off the ground chunks
20:24Get a look at those timer values
20:24Get a look at those timer values
20:24Get a look at those timer values
26:09Run the game and see the debug cycle count
26:09Run the game and see the debug cycle count
26:09Run the game and see the debug cycle count
27:25We are already missing our budgetα
27:25We are already missing our budgetα
27:25We are already missing our budgetα
28:16Confirm what we know to be true
28:16Confirm what we know to be true
28:16Confirm what we know to be true
28:45RenderGroupToOutput: Add a timed block
28:45RenderGroupToOutput: Add a timed block
28:45RenderGroupToOutput: Add a timed block
29:55Introduce DebugGlobalMemory to enable us to access this timing stuff even when we shouldn't have access to it
29:55Introduce DebugGlobalMemory to enable us to access this timing stuff even when we shouldn't have access to it
29:55Introduce DebugGlobalMemory to enable us to access this timing stuff even when we shouldn't have access to it
32:10Note the difference between the two cycle counts
32:10Note the difference between the two cycle counts
32:10Note the difference between the two cycle counts
33:34Confirm that DrawRectangleSlowly is the culprit
33:34Confirm that DrawRectangleSlowly is the culprit
33:34Confirm that DrawRectangleSlowly is the culprit
35:16Introduce HitCount to discover if DrawRectangleSlowly is slow because it is slow, or because it's called so often
35:16Introduce HitCount to discover if DrawRectangleSlowly is slow because it is slow, or because it's called so often
35:16Introduce HitCount to discover if DrawRectangleSlowly is slow because it is slow, or because it's called so often
37:45Discover that we're calling the renderer thirteen times and DrawRectangleSlowly 64 times
37:45Discover that we're calling the renderer thirteen times and DrawRectangleSlowly 64 times
37:45Discover that we're calling the renderer thirteen times and DrawRectangleSlowly 64 times
39:05Figure out how many pixels we're filling
39:05Figure out how many pixels we're filling
39:05Figure out how many pixels we're filling
42:49Interpret the data
42:49Interpret the data
42:49Interpret the data
43:28Bust out some emacs-fuβ
43:28Bust out some emacs-fuβ
43:28Bust out some emacs-fuβ
43:42Note that we're not operating on that many more pixels than the total on the screen
43:42Note that we're not operating on that many more pixels than the total on the screen
43:42Note that we're not operating on that many more pixels than the total on the screen
44:21Blackboard: Overdraw
44:21Blackboard: Overdraw
44:21Blackboard: Overdraw
46:30Blackboard: Progress report
46:30Blackboard: Progress report
46:30Blackboard: Progress report
47:24Turn off the NormalMap
47:24Turn off the NormalMap
47:24Turn off the NormalMap
48:58Understanding ballpark timings
48:58Understanding ballpark timings
48:58Understanding ballpark timings
51:53Make an estimate
51:53Make an estimate
51:53Make an estimate
1:00:48AVX-512 hype
1:00:48AVX-512 hype
1:00:48AVX-512 hype
1:01:15Q&A
🗩
1:01:15Q&A
🗩
1:01:15Q&A
🗩
1:01:54grumpygiant256 Why no text labels on the counters?
🗪
1:01:54grumpygiant256 Why no text labels on the counters?
🗪
1:01:54grumpygiant256 Why no text labels on the counters?
🗪
1:02:10childz I'm sorry if this is something you've gone over before, but can you explain the difference between new and malloc() in C++ and when each is useful?
🗪
1:02:10childz I'm sorry if this is something you've gone over before, but can you explain the difference between new and malloc() in C++ and when each is useful?
🗪
1:02:10childz I'm sorry if this is something you've gone over before, but can you explain the difference between new and malloc() in C++ and when each is useful?
🗪
1:03:04mrcowking Is your handwriting as bad in real life as it is with a tablet?
🗪
1:03:04mrcowking Is your handwriting as bad in real life as it is with a tablet?
🗪
1:03:04mrcowking Is your handwriting as bad in real life as it is with a tablet?
🗪
1:03:22mr4thdimention Can you also cut out instructions by doing more work to save previous computations. Like d - XAxis, followed by d - XAxis - YAxis. Should that just be 2 instructions?
🗪
1:03:22mr4thdimention Can you also cut out instructions by doing more work to save previous computations. Like d - XAxis, followed by d - XAxis - YAxis. Should that just be 2 instructions?
🗪
1:03:22mr4thdimention Can you also cut out instructions by doing more work to save previous computations. Like d - XAxis, followed by d - XAxis - YAxis. Should that just be 2 instructions?
🗪
1:03:50davidthomas426 Do you think we'll do multithreading in the software renderer?
🗪
1:03:50davidthomas426 Do you think we'll do multithreading in the software renderer?
🗪
1:03:50davidthomas426 Do you think we'll do multithreading in the software renderer?
🗪
1:04:07braincruser Is it possible to Quad-pump every operation?
🗪
1:04:07braincruser Is it possible to Quad-pump every operation?
🗪
1:04:07braincruser Is it possible to Quad-pump every operation?
🗪
1:07:29braincruser I meant, put it in wide instruction (SIMD)
🗪
1:07:29braincruser I meant, put it in wide instruction (SIMD)
🗪
1:07:29braincruser I meant, put it in wide instruction (SIMD)
🗪
1:09:02garryjohanson Would you talk Jeff into doing an optimization stream where you are the TA?
🗪
1:09:02garryjohanson Would you talk Jeff into doing an optimization stream where you are the TA?
🗪
1:09:02garryjohanson Would you talk Jeff into doing an optimization stream where you are the TA?
🗪
1:10:01That is the end of the stream
🗩
1:10:01That is the end of the stream
🗩
1:10:01That is the end of the stream
🗩