OpenGL and Software Renderer Cleanup
?
?

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:08Recap and set the stage for the day
0:08Recap and set the stage for the day
0:08Recap and set the stage for the day
1:30Run the game and demonstrate how we'd like to develop the profiler
1:30Run the game and demonstrate how we'd like to develop the profiler
1:30Run the game and demonstrate how we'd like to develop the profiler
6:10handmade_debug.cpp: Look through the profiler code
6:10handmade_debug.cpp: Look through the profiler code
6:10handmade_debug.cpp: Look through the profiler code
8:55handmade_debug.cpp: Use ThreadOrdinal to set the LaneIndex
8:55handmade_debug.cpp: Use ThreadOrdinal to set the LaneIndex
8:55handmade_debug.cpp: Use ThreadOrdinal to set the LaneIndex
10:12Run the game and view the profiler information in LANES
10:12Run the game and view the profiler information in LANES
10:12Run the game and view the profiler information in LANES
12:11handmade_debug.cpp: Investigate why the background colour is incorrect in the software renderer
12:11handmade_debug.cpp: Investigate why the background colour is incorrect in the software renderer
12:11handmade_debug.cpp: Investigate why the background colour is incorrect in the software renderer
14:42handmade_debug.h: Introduce UITransform layer
14:42handmade_debug.h: Introduce UITransform layer
14:42handmade_debug.h: Introduce UITransform layer
15:38Run the game, view the profile and investigate why it is pink
15:38Run the game, view the profile and investigate why it is pink
15:38Run the game, view the profile and investigate why it is pink
17:21handmade_render.cpp: Make DrawRectangle SIMD and do alpha blending
17:21handmade_render.cpp: Make DrawRectangle SIMD and do alpha blending
17:21handmade_render.cpp: Make DrawRectangle SIMD and do alpha blending
26:01Debugger: Break on FillRect and find that it and ClipRect never intersect
26:01Debugger: Break on FillRect and find that it and ClipRect never intersect
26:01Debugger: Break on FillRect and find that it and ClipRect never intersect
28:40handmade_render.cpp: Set FillRect earlier
28:40handmade_render.cpp: Set FillRect earlier
28:40handmade_render.cpp: Set FillRect earlier
29:17Debugger: Step through and inspect the rectangle values
29:17Debugger: Step through and inspect the rectangle values
29:17Debugger: Step through and inspect the rectangle values
34:30handmade_render.cpp: Use structured art to help debug this
34:30handmade_render.cpp: Use structured art to help debug this
34:30handmade_render.cpp: Use structured art to help debug this
35:17Debugger: Inspect the Blended values
35:17Debugger: Inspect the Blended values
35:17Debugger: Inspect the Blended values
36:42handmade_render.cpp: Multiply Color by 255 in order to get it into the correct space
36:42handmade_render.cpp: Multiply Color by 255 in order to get it into the correct space
36:42handmade_render.cpp: Multiply Color by 255 in order to get it into the correct space
37:42Run the game, see that the colours are incorrect and investigate why
37:42Run the game, see that the colours are incorrect and investigate why
37:42Run the game, see that the colours are incorrect and investigate why
41:51handmade_render.cpp: Square the ColorValues up front
41:51handmade_render.cpp: Square the ColorValues up front
41:51handmade_render.cpp: Square the ColorValues up front
44:28Run the game and see that the colours are now correct
44:28Run the game and see that the colours are now correct
44:28Run the game and see that the colours are now correct
45:19win32_handmade.cpp: Reenable our threads and view the profiler
45:19win32_handmade.cpp: Reenable our threads and view the profiler
45:19win32_handmade.cpp: Reenable our threads and view the profiler
46:06handmade_opengl.cpp: Take account of the 1-pixel border in OpenGLRectangle
46:06handmade_opengl.cpp: Take account of the 1-pixel border in OpenGLRectangle
46:06handmade_opengl.cpp: Take account of the 1-pixel border in OpenGLRectangle
49:30handmade_opengl.cpp: Pass the corrected coordinates to OpenGLRectangle in OpenGLRenderCommands
49:30handmade_opengl.cpp: Pass the corrected coordinates to OpenGLRectangle in OpenGLRenderCommands
49:30handmade_opengl.cpp: Pass the corrected coordinates to OpenGLRectangle in OpenGLRenderCommands
51:47Run the game and see that the fonts look more correct
51:47Run the game and see that the fonts look more correct
51:47Run the game and see that the fonts look more correct
53:00GitHub: Close issue #15
53:00GitHub: Close issue #15
53:00GitHub: Close issue #15
54:16win32_handmade.cpp: Check for OpenGLSupportsSRGBFramebuffer in Win32SetPixelFormau
54:16win32_handmade.cpp: Check for OpenGLSupportsSRGBFramebuffer in Win32SetPixelFormau
54:16win32_handmade.cpp: Check for OpenGLSupportsSRGBFramebuffer in Win32SetPixelFormau
55:53handmade_opengl.cpp: Make OpenGLInit take FramebufferSupportsSRGB
55:53handmade_opengl.cpp: Make OpenGLInit take FramebufferSupportsSRGB
55:53handmade_opengl.cpp: Make OpenGLInit take FramebufferSupportsSRGB
57:54Run the game and admire how close we match
57:54Run the game and admire how close we match
57:54Run the game and admire how close we match
58:21Fight the urge to go back and correct itα
58:21Fight the urge to go back and correct itα
58:21Fight the urge to go back and correct itα
59:07handmade_opengl.cpp: Support the ARB versions of our extensions
59:07handmade_opengl.cpp: Support the ARB versions of our extensions
59:07handmade_opengl.cpp: Support the ARB versions of our extensions
1:01:25GitHub: Close issue #8
1:01:25GitHub: Close issue #8
1:01:25GitHub: Close issue #8
1:02:59Debugger: Break into OpenGLGetInfo and see what extensions this GPU supports
1:02:59Debugger: Break into OpenGLGetInfo and see what extensions this GPU supports
1:02:59Debugger: Break into OpenGLGetInfo and see what extensions this GPU supports
1:04:40Q&A
🗩
1:04:40Q&A
🗩
1:04:40Q&A
🗩
1:05:37desuused I've implemented a quick and dirty flame graph for Handmade Hero
🗪
1:05:37desuused I've implemented a quick and dirty flame graph for Handmade Hero
🗪
1:05:37desuused I've implemented a quick and dirty flame graph for Handmade Hero
🗪
1:06:23erdomina Is the stream being off tomorrow an April Fool's joke?
🗪
1:06:23erdomina Is the stream being off tomorrow an April Fool's joke?
🗪
1:06:23erdomina Is the stream being off tomorrow an April Fool's joke?
🗪
1:06:40cubercaleb What happened to the software rendered performance? It was running at 30 FPS a few months ago! Even without -O2 it was pretty decent
🗪
1:06:40cubercaleb What happened to the software rendered performance? It was running at 30 FPS a few months ago! Even without -O2 it was pretty decent
🗪
1:06:40cubercaleb What happened to the software rendered performance? It was running at 30 FPS a few months ago! Even without -O2 it was pretty decent
🗪
1:07:07build.bat: Switch to -O2 and watch the profiler
1:07:07build.bat: Switch to -O2 and watch the profiler
1:07:07build.bat: Switch to -O2 and watch the profiler
1:09:01win32_handmade.cpp: Switch to Win32RenderType_RenderSoftware_DisplayGDI and again watch the profiler
1:09:01win32_handmade.cpp: Switch to Win32RenderType_RenderSoftware_DisplayGDI and again watch the profiler
1:09:01win32_handmade.cpp: Switch to Win32RenderType_RenderSoftware_DisplayGDI and again watch the profiler
1:11:12cubercaleb So let me get this straight, modern PCI-E connections have several GB/s of bandwidth and yet it takes several frames to upload a texture for the backbuffer?
🗪
1:11:12cubercaleb So let me get this straight, modern PCI-E connections have several GB/s of bandwidth and yet it takes several frames to upload a texture for the backbuffer?
🗪
1:11:12cubercaleb So let me get this straight, modern PCI-E connections have several GB/s of bandwidth and yet it takes several frames to upload a texture for the backbuffer?
🗪
1:13:20Go eat some dinner
🗩
1:13:20Go eat some dinner
🗩
1:13:20Go eat some dinner
🗩