From f0724f5f07369e878ddcb9cf11732ec2d10cc7d5 Mon Sep 17 00:00:00 2001 From: Matt Mascarenhas Date: Mon, 18 Mar 2019 01:29:27 +0000 Subject: [PATCH] Annotate hero/code519 --- cmuratori/hero/code/code519.hmml | 70 ++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 cmuratori/hero/code/code519.hmml diff --git a/cmuratori/hero/code/code519.hmml b/cmuratori/hero/code/code519.hmml new file mode 100644 index 0000000..74b8d8b --- /dev/null +++ b/cmuratori/hero/code/code519.hmml @@ -0,0 +1,70 @@ +[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Brainstorming about Z Bias" vod_platform=youtube id=3vUzT7JFMVc annotator=Miblo] +[0:02][Recap and set the stage for the day][:speech] +[1:35][Fix typos in EditableBoolean(), EditableSize() and Error() as per @KimJorgensen's bug report[ref + site=GitHub + page="HandmadeHero / cpp / FormatString bugs" + url=https://github.com/HandmadeHero/cpp/issues/90]][:"error handling" :"string manipulation"] +[10:41][Close issue 90[ref + site=GitHub + page="HandmadeHero / cpp / FormatString bugs" + url=https://github.com/HandmadeHero/cpp/issues/90]][:admin :"error handling" :"string manipulation"] +[11:42][Investigate @gingerBill's bug report 'Bug in `PushSize_` that could cause buffer overflow'[ref + site=GitHub + page="HandmadeHero / cpp / Bug in `PushSize_` that could cause buffer overflow" + url=https://github.com/HandmadeHero/cpp/issues/88]][:memory :research] +[19:34][Insert assertions in PushSize_()][:memory] +[23:19][Introduce IsPow2()][:mathematics] +[29:14][Test Power of 2][:blackboard :mathematics] +[35:58][Carefully scrutinise PushSize_() as per @gingerBill's bug report[ref + site=GitHub + page="HandmadeHero / cpp / Bug in `PushSize_` that could cause buffer overflow" + url=https://github.com/HandmadeHero/cpp/issues/88]][:memory :research] +[37:12][Explicitly parenthesise the (Used + Size > Size) comparison in PushSize_()][:memory] +[37:56][Conclude that the bug report is wrong[ref + site=GitHub + page="HandmadeHero / cpp / Bug in `PushSize_` that could cause buffer overflow" + url=https://github.com/HandmadeHero/cpp/issues/88]][:memory :research] +[41:22][Check out C's operator precedence rules[ref + title="C Operator Precedence Table" + url=http://web.cse.ohio-state.edu/~babic.1/COperatorPrecedenceTable.pdf]][:language :mathematics :research] +[42:34][Continue to investigate @gingerBill's bug report[ref + site=GitHub + page="HandmadeHero / cpp / Bug in `PushSize_` that could cause buffer overflow" + url=https://github.com/HandmadeHero/cpp/issues/88]][:memory :research] +[45:29][Construct PushSize_() failure cases to address @gingerBill's bug report[ref + site=GitHub + page="HandmadeHero / cpp / Bug in `PushSize_` that could cause buffer overflow" + url=https://github.com/HandmadeHero/cpp/issues/88]][:memory] +[52:16][Step through our PushSize_() test to see that it behaves well][:memory :run] +[54:04][Construct a PushSize_() test in which our request is right on the boundary][:memory] +[55:47][Step through our PushSize_() test to see that it behaves well][:memory :run] +[58:01][Try allocating 4 MiB as the second, expansion-triggering allocation][:memory] +[58:58][Step through our PushSize_() test to see that it behaves well][:memory :run] +[59:39][Try allocating 4 MiB as the first allocation][:memory] +[1:00:05][Step through our PushSize_() test to see that it behaves well][:memory :run] +[1:01:30][Close issue 88 with a few words on the helpfulness of concrete repro-cases in bug reports[ref + site=GitHub + page="HandmadeHero / cpp / Bug in `PushSize_` that could cause buffer overflow" + url=https://github.com/HandmadeHero/cpp/issues/88]][:admin] +[1:04:17][A few words on judicious unit testing][:speech] +[1:12:47][A final glance at the open issues[ref + site=GitHub + page="HandmadeHero / cpp / Issues" + url=https://github.com/HandmadeHero/cpp/issues]][:research] +[1:13:35][Consider hiding the assets of disabled alignment points][:"asset system" :run :ui] +[1:16:26][Consider solving our 2D billboard asset Z-bias problem][:rendering :run] +[1:20:43][Set up to express our Z-bias in CompileZBiasProgram()][:hardware :rendering :research] +[1:23:39][Sprite Z-bias encoding][:blackboard :rendering] +[1:28:24][How CompileZBiasProgram() is currently working][:hardware :rendering :research] +[1:30:17][Adjusting sprite position in Y][:blackboard :rendering] +[1:33:32][Imaginary encodings of sprite position and orientation][:blackboard :mathematics :rendering] +[1:43:54][Don the tennis headband][:admin :hat] +[1:44:55][Understanding ZBias in the case that sprites are drawn exactly upright][:blackboard :hat :mathematics :rendering] +[1:50:11][Understanding ZBias in the case that sprites are drawn lying down a little][:blackboard :hat :mathematics :rendering] +[1:53:24][Projecting in the vertex shader the sprite's Z positions to the passed in Z heights of the world plane][:blackboard :hat :mathematics :rendering] +[1:58:23][Q&A][:hat :speech] +[1:59:07][@vapenir][Q: What kind of testing (unit, replays, etc.) do you use on 1935 / have you used over the years? Is automated testing even really a thing at game studios?][:hat] +[2:02:40][@uplinkcoder][Q: Any news on 1935?] +[2:02:43][@gunngames][Q: For people who don't want to fuss with platform specific code, would you say SDL is a good solution?][:library :"platform layer"] +[2:04:15][We're all done][:speech] +[/video]