45 lines
3.2 KiB
Plaintext
45 lines
3.2 KiB
Plaintext
[video output=day255 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Building a Profile Tree" vod_platform=youtube id=6Ym-Nq1g7-s annotator=Miblo]
|
|
[0:11][Set the stage for the day]
|
|
[0:32][Problem #1: No fast way to get out the profiling information for the previous frame]
|
|
[1:06][Problem #2: In order to print out the profile view we need some concept of the nesting of calls inside one another]
|
|
[4:01][Blackboard: Profile Queries]
|
|
[6:43][Hype the new version of 4coder]
|
|
[7:52][handmade_debug.cpp: Enable the profiler]
|
|
[8:12][Run the game and hit an InvalidCodePath as we overflow the PushBuffer of the renderer]
|
|
[14:25][handmade_debug.cpp: Disable the profiler]
|
|
[15:02][handmade_debug.h: Add StoredEventCount, ProfileBlockCount and DataBlockCount to debug_frame]
|
|
[16:32][handmade_debug.cpp: Increment these values in StoreEvent and CollateDebugRecords]
|
|
[17:37][handmade_debug.cpp: Print out these values]
|
|
[18:45][Run the game and see what those numbers look like]
|
|
[21:40][Consider how to process this data]
|
|
[24:31][handmade_debug.h: Introduce debug_profile_node]
|
|
[30:01][handmade_debug.cpp: Make DrawProfileIn take a debug_profile_node and work through how to use it]
|
|
[39:15][handmade_debug.cpp: Make the DrawProfileIn call in DEBUGDrawElement take RootProfileNode]
|
|
[43:55][handmade_debug.h: Use debug_stored_events in debug_profile_node]
|
|
[47:25][Be Mr Cheesy - Mr Cheesepants, Cheese man][quote 430]
|
|
[48:03][handmade_debug.cpp: Set debug_stored_event *Node to the result of StoreEvent (via *StoredEvent) and then immediately rewrite it]
|
|
[59:54][Run the game and see that we're never adding anything to the RootProfileNode]
|
|
[1:00:34][handmade_debug.cpp: Conditionally set the ParentEvent in BeginBlock]
|
|
[1:05:21][handmade_debug.cpp: Setup the children in BeginBlock]
|
|
[1:06:35][Debugger: Step into DrawProfileIn and inspect the RootEvent]
|
|
[1:08:06][handmade_debug.cpp: Correctly set the Node's Duration]
|
|
[1:10:48][Run the game and admire the bizarre results]
|
|
[1:11:11][Q&A][:speech]
|
|
[1:11:51][@insobot][Need to find a whole os is that we get a taste again... For some! Implementing merge?]
|
|
[1:12:00][@grumpygiant256][Will the day-counter overflow tomorrow, or will The Variable provide more bits for us?]
|
|
[1:12:17][@desuused][How are you going to celebrate Handmade Hero episode 0xFF?]
|
|
[1:13:23][@cubercaleb][Soon enough we will need 10 bits to store the day counter!]
|
|
[1:14:40][@cubercaleb][We may even need 11 bits!]
|
|
[1:15:00][@guitarm87][How long will it take me to get your "flow" of coding? 40 years?]
|
|
[1:15:24][@fartasanelk][What kind of data is the profiler intended to display?]
|
|
[1:16:26][@ravicavus][Do you know what the total line count is at?]
|
|
[1:16:55][@cubercaleb][Will you be able to turn on / off profiling for certain functions with the debug UI?]
|
|
[1:17:36][@theinternetftw][ A big part of the slow startup for me is that the ModeArena is cleared to zero by default at the moment. That's about 256MB]
|
|
[1:18:39][win32_handmade.cpp: Set GlobalRenderingType to software]
|
|
[1:20:07][Run the game and witness a very slow fade]
|
|
[1:21:11][build.bat: Stop linking with opengl32.lib]
|
|
[1:22:02][win32_handmade.cpp: Switch back to OpenGL and witness a longer startup]
|
|
[1:22:48][Wind down, wrap it up][:speech]
|
|
[1:23:47][Anticipate new 4coder][:speech]
|
|
[/video]
|