Handmade Hero»Episode Guide
Sorting Render Elements
?
?

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:25Recap and set the stage for the day
0:25Recap and set the stage for the day
0:25Recap and set the stage for the day
1:28Run the game and hit an assertion
1:28Run the game and hit an assertion
1:28Run the game and hit an assertion
2:33handmade_world_mode.cpp: Turn off FillGroundChunk
2:33handmade_world_mode.cpp: Turn off FillGroundChunk
2:33handmade_world_mode.cpp: Turn off FillGroundChunk
3:07Run the game and note the lack of sprite sorting
3:07Run the game and note the lack of sprite sorting
3:07Run the game and note the lack of sprite sorting
4:34handmade_world_mode.cpp: Turn FillGroundChunk back on and note that we need some room in which to do the sorting
4:34handmade_world_mode.cpp: Turn FillGroundChunk back on and note that we need some room in which to do the sorting
4:34handmade_world_mode.cpp: Turn FillGroundChunk back on and note that we need some room in which to do the sorting
5:29Debugger: Step into AllocateRenderGroup
5:29Debugger: Step into AllocateRenderGroup
5:29Debugger: Step into AllocateRenderGroup
6:45handmade.cpp: Increase the amount of memory allocated to this TranState
6:45handmade.cpp: Increase the amount of memory allocated to this TranState
6:45handmade.cpp: Increase the amount of memory allocated to this TranState
7:04Debugger: Step into BeginRender and inspect Work->Task->Arena
7:04Debugger: Step into BeginRender and inspect Work->Task->Arena
7:04Debugger: Step into BeginRender and inspect Work->Task->Arena
8:03handmade_world_mode.cpp: Make RenderGroup use 512KB
8:03handmade_world_mode.cpp: Make RenderGroup use 512KB
8:03handmade_world_mode.cpp: Make RenderGroup use 512KB
10:39Blackboard: Render Sorting
10:39Blackboard: Render Sorting
10:39Blackboard: Render Sorting
13:56Blackboard: Sort buffer
13:56Blackboard: Sort buffer
13:56Blackboard: Sort buffer
15:12Blackboard: Producing the sort key
15:12Blackboard: Producing the sort key
15:12Blackboard: Producing the sort key
19:01"For the love of god, Mischief"α
19:01"For the love of god, Mischief"α
19:01"For the love of god, Mischief"α
20:03handmade_render_group.cpp: Consider how to sort
20:03handmade_render_group.cpp: Consider how to sort
20:03handmade_render_group.cpp: Consider how to sort
22:09handmade_render_group.cpp: Find the PushBufferOffset for each Entry in RenderGroupToOutput, and make the function take SortEntryCount and *SortEntries
22:09handmade_render_group.cpp: Find the PushBufferOffset for each Entry in RenderGroupToOutput, and make the function take SortEntryCount and *SortEntries
22:09handmade_render_group.cpp: Find the PushBufferOffset for each Entry in RenderGroupToOutput, and make the function take SortEntryCount and *SortEntries
25:29Blackboard: How we're currently rendering the screen
25:29Blackboard: How we're currently rendering the screen
25:29Blackboard: How we're currently rendering the screen
26:25Consider how best to do this sort
26:25Consider how best to do this sort
26:25Consider how best to do this sort
28:37handmade_render_group.h: Add u32 SortEntryAt to render_group
28:37handmade_render_group.h: Add u32 SortEntryAt to render_group
28:37handmade_render_group.h: Add u32 SortEntryAt to render_group
29:03handmade_render_group.cpp: Set that SortEntryAt in AllocateRenderGroup and use it in PushRenderElement_
29:03handmade_render_group.cpp: Set that SortEntryAt in AllocateRenderGroup and use it in PushRenderElement_
29:03handmade_render_group.cpp: Set that SortEntryAt in AllocateRenderGroup and use it in PushRenderElement_
30:16Blackboard: Pushing entries on from the top and sorts on from the bottom
30:16Blackboard: Pushing entries on from the top and sorts on from the bottom
30:16Blackboard: Pushing entries on from the top and sorts on from the bottom
30:57handmade_render_group.cpp: Implement these pushes, and make PushRenderElement_ take r32 SortKey
30:57handmade_render_group.cpp: Implement these pushes, and make PushRenderElement_ take r32 SortKey
30:57handmade_render_group.cpp: Implement these pushes, and make PushRenderElement_ take r32 SortKey
33:11handmade_render_group.cpp: Clean up compile errors and propagate the SortKey
33:11handmade_render_group.cpp: Clean up compile errors and propagate the SortKey
33:11handmade_render_group.cpp: Clean up compile errors and propagate the SortKey
38:39Run the game and see that it isn't quite right
38:39Run the game and see that it isn't quite right
38:39Run the game and see that it isn't quite right
39:40handmade_render_group.cpp: Reverse the sorting order
39:40handmade_render_group.cpp: Reverse the sorting order
39:40handmade_render_group.cpp: Reverse the sorting order
40:09Run the game and see that it is now correct
40:09Run the game and see that it is now correct
40:09Run the game and see that it is now correct
40:20Blackboard: The Clear was happening last, after rendering everything
40:20Blackboard: The Clear was happening last, after rendering everything
40:20Blackboard: The Clear was happening last, after rendering everything
41:05handmade_render_group.cpp: Introduce SortEntries
41:05handmade_render_group.cpp: Introduce SortEntries
41:05handmade_render_group.cpp: Introduce SortEntries
43:13Blackboard: Bubble Sort
43:13Blackboard: Bubble Sort
43:13Blackboard: Bubble Sort
47:36handmade_render_group.cpp: Implement SortEntries as a Bubble Sort
47:36handmade_render_group.cpp: Implement SortEntries as a Bubble Sort
47:36handmade_render_group.cpp: Implement SortEntries as a Bubble Sort
50:47Run the game and see that it might actually be right
50:47Run the game and see that it might actually be right
50:47Run the game and see that it might actually be right
51:51handmade_world_mode.cpp: Give the GroundBuffer some zBias
51:51handmade_world_mode.cpp: Give the GroundBuffer some zBias
51:51handmade_world_mode.cpp: Give the GroundBuffer some zBias
52:48handmade_world_mode.cpp: Turn off the GroundBuffer for now
52:48handmade_world_mode.cpp: Turn off the GroundBuffer for now
52:48handmade_world_mode.cpp: Turn off the GroundBuffer for now
53:08Run the game and see that the sorting is working properly
53:08Run the game and see that the sorting is working properly
53:08Run the game and see that the sorting is working properly
53:59handmade_world_mode.cpp: Increase the zBias and then apply the bias in the correct place
53:59handmade_world_mode.cpp: Increase the zBias and then apply the bias in the correct place
53:59handmade_world_mode.cpp: Increase the zBias and then apply the bias in the correct place
56:00Run the game and see that it all works correctly now (apart from the torso being in front all the time)
56:00Run the game and see that it all works correctly now (apart from the torso being in front all the time)
56:00Run the game and see that it all works correctly now (apart from the torso being in front all the time)
56:28Q&A
🗩
56:28Q&A
🗩
56:28Q&A
🗩
57:20Danyguag Do you know the Vulkan release date?
🗪
57:20Danyguag Do you know the Vulkan release date?
🗪
57:20Danyguag Do you know the Vulkan release date?
🗪
57:56insobot Well?
🗪
57:56insobot Well?
🗪
57:56insobot Well?
🗪
58:09grimjoey Can you talk about pros and cons of heapsort and quicksort, and / or explain quaternions?
🗪
58:09grimjoey Can you talk about pros and cons of heapsort and quicksort, and / or explain quaternions?
🗪
58:09grimjoey Can you talk about pros and cons of heapsort and quicksort, and / or explain quaternions?
🗪
59:03evraire Which sort are you planning to ultimately replace bubble sort with?
🗪
59:03evraire Which sort are you planning to ultimately replace bubble sort with?
🗪
59:03evraire Which sort are you planning to ultimately replace bubble sort with?
🗪
59:59Miblo Bubble Sort is the simplest sort? I worked my way to doing a Selection Sort in my practices, so assume that must be down there for simplicity
🗪
59:59Miblo Bubble Sort is the simplest sort? I worked my way to doing a Selection Sort in my practices, so assume that must be down there for simplicity
🗪
59:59Miblo Bubble Sort is the simplest sort? I worked my way to doing a Selection Sort in my practices, so assume that must be down there for simplicity
🗪
1:00:41quikligames n^2 is actually faster in most cases?
🗪
1:00:41quikligames n^2 is actually faster in most cases?
🗪
1:00:41quikligames n^2 is actually faster in most cases?
🗪
1:02:21angus_holder Can't you just use binary insertion to put items into their correct position so the array is sorted the whole time? That way RenderGroupToOutput doesn't have to do anything
🗪
1:02:21angus_holder Can't you just use binary insertion to put items into their correct position so the array is sorted the whole time? That way RenderGroupToOutput doesn't have to do anything
🗪
1:02:21angus_holder Can't you just use binary insertion to put items into their correct position so the array is sorted the whole time? That way RenderGroupToOutput doesn't have to do anything
🗪
1:02:55Blackboard: Sorting After vs Sorting During
1:02:55Blackboard: Sorting After vs Sorting During
1:02:55Blackboard: Sorting After vs Sorting During
1:05:31TheLagScript Have you ever made something of this sort of a project before? When you stream, do you just do everything as you go, sort of "improv" coding, or do you do stuff off stream to prepare what you are actually going to code on stream?
🗪
1:05:31TheLagScript Have you ever made something of this sort of a project before? When you stream, do you just do everything as you go, sort of "improv" coding, or do you do stuff off stream to prepare what you are actually going to code on stream?
🗪
1:05:31TheLagScript Have you ever made something of this sort of a project before? When you stream, do you just do everything as you go, sort of "improv" coding, or do you do stuff off stream to prepare what you are actually going to code on stream?
🗪
1:07:07CFlickster Are we going raid Shawn McGrath's stream tomorrow night after this one?
🗪
1:07:07CFlickster Are we going raid Shawn McGrath's stream tomorrow night after this one?
🗪
1:07:07CFlickster Are we going raid Shawn McGrath's stream tomorrow night after this one?
🗪
1:07:31slashac How do you disable syntax highlight in Emacs while keeping comment and macro highlighted?
🗪
1:07:31slashac How do you disable syntax highlight in Emacs while keeping comment and macro highlighted?
🗪
1:07:31slashac How do you disable syntax highlight in Emacs while keeping comment and macro highlighted?
🗪
1:08:50TheLagScript Is your Visual Studio "custom" theme anywhere? I really like it
🗪
1:08:50TheLagScript Is your Visual Studio "custom" theme anywhere? I really like it
🗪
1:08:50TheLagScript Is your Visual Studio "custom" theme anywhere? I really like it
🗪
1:09:54Wrap it up
🗩
1:09:54Wrap it up
🗩
1:09:54Wrap it up
🗩
1:11:20Shout out to HandmadeDev, who are building a community site for projects like Handmade Hero, with nicer forums
🗩
1:11:20Shout out to HandmadeDev, who are building a community site for projects like Handmade Hero, with nicer forums
🗩
1:11:20Shout out to HandmadeDev, who are building a community site for projects like Handmade Hero, with nicer forums
🗩