[video output=day254 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Reenabling Profiling" vod_platform=youtube id=b48NmnVEvu8 annotator=Miblo] [1:31][Run the game and propose getting the profiling system back in some semblance of working order] [7:31][handmade_debug.cpp: Reacquaint ourselves with CollateDebugRecords] [12:15][Savour the moment][quote 421] [13:17][handmade_debug.cpp: Simplify CollateDebugRecords and change what gets passed to StoreEvent] [16:36][Blackboard: Call Attribution] [18:30][handmade_debug.h: Make a note to store call attribution data in debug_stored_event] [20:25][handmade_debug.cpp: Implement Call Attribution] [22:10][handmade_debug.cpp: Collapse DEBUGDrawElement and DEBUGDrawEvent down to one function] [24:12][Blackboard: Sketch out the overview profiler] [25:56][handmade_debug_interface.h: Begin to implement ThreadIntervalGraph] [28:23][Run the game and see END_BLOCK being printed out][quote 422] [31:12][Debugger: Hit an assertion and investigate] [32:09]["Would you be a lamb and jump me there?"][quote 423] [34:55]["We just have a bug bug"][quote 424] [36:03][handmade_debug.cpp: Comment out the StoreEvent calls to determine that 32MiB is not enough memory] [39:03][handmade_debug.cpp: Make GetElementFromEvent take b32 CreateHierarchy in order to conditionally do GetGroupForHierarchicalName] [42:49][handmade_debug.cpp: Introduce the notion of ProfileGroup] [45:09][Run the game and check out the debug visualisation] [48:01][handmade_debug.cpp: Make DrawProfileIn draw one frame] [1:10:21][Run the game and check out the correct debug visualisation][quote 425] [1:11:10][Q&A][:speech] [1:11:35][handmade_debug.cpp: Convert a PointerToU32 down to CloseEvent->GUID] [1:12:47][@garryjohanson][What do you think of using a "call tree" to track dependencies across multi-threading?] [1:13:33][@erdomina][What command do you use to change from cutscene to game] [1:13:39][@jameswidman][Tomorrow is episode 0xff!] [1:13:49][@xpansionpak][How do you handle tasks that run in separate threads but take longer than a frame to compute? For example, I heard that in the new Forza the rear view mirror updates at half the framerate as everything else] [1:14:45][@naysayer88][WHY WAS I NOT INFORMED THAT KRAMPUS IS IN THIS GAME?] [1:16:15][@dafreaki][Is talking to the chat while coding helpful to work things out?] [1:16:51][@cubercaleb][Do you have a problem with Santa from your childhood?] [1:17:39]["Santa is not good"][quote 426] [1:18:13][@naysayer88][I DID NOT GET A PICTURE OF KRAMPUS] [1:18:31][@desuused][Did you consider visualizing timing using flame graphs?] [1:20:00][@angus_holder][Is this software renderering? The frame time has tanked] [1:20:43][handmade_debug.cpp: Stop looping through every event every time] [1:23:23][Close down here] [1:24:04][@angus_holder][Do you have a secret phobia of writing game code?] [1:27:16][@garryjohanson][Can we make games in GameMaker and submit them to you for the final game?] [1:29:55][@abnercoimbre][Q: After you stop recording, beckon people to stay in the chat for a bit] [1:30:33]["It would be weird..."][quote 427] [1:30:42][@abnercoimbre][Q: It has to do with won_3d and an interview with him] [1:31:29][@abnercoimbre][Q: It's not a live interview...] [1:31:40][Close down the stream][:speech] [1:32:16][Recommend Won Chun][:speech][quote 428] [/video]