[, < / ], >Jump to previous / next episode W, K, P / S, J, NJump to previous / next timestamp t / TToggle theatre / SUPERtheatre mode VRevert filter to original stateYSelect link (requires manual Ctrl-c)
Menu toggling
qQuotesrReferencesfFilteryLinkcCredits
In-Menu and Index Controls
a
w s
d
hjkl
←
↑ ↓
→
EscClose menu / unfocus timestamp
Quotes and References Menus and Index
EnterJump to timestamp
Quotes, References and Credits Menus
oOpen URL (in new tab)
Filter Menu
x, SpaceToggle category and focus next X, ShiftSpaceToggle category and focus previous vInvert topics / media as per focus
2:08Describe our vectorisation of ComputeVoxelIrradianceAt()
📖
2:08Describe our vectorisation of ComputeVoxelIrradianceAt()
📖
2:08Describe our vectorisation of ComputeVoxelIrradianceAt()
📖
3:11Instrument ComputeVoxelIrradianceAt() to verify the new SIMD against the old scalar code
3:11Instrument ComputeVoxelIrradianceAt() to verify the new SIMD against the old scalar code
3:11Instrument ComputeVoxelIrradianceAt() to verify the new SIMD against the old scalar code
9:08Continue to make ComputeVoxelIrradianceAt() operate wide
9:08Continue to make ComputeVoxelIrradianceAt() operate wide
9:08Continue to make ComputeVoxelIrradianceAt() operate wide
13:14Introduce an f32_4x version of Clamp01(), with a few words on optimising compilers
13:14Introduce an f32_4x version of Clamp01(), with a few words on optimising compilers
13:14Introduce an f32_4x version of Clamp01(), with a few words on optimising compilers
16:19Continue to make ComputeVoxelIrradianceAt() operate wide
16:19Continue to make ComputeVoxelIrradianceAt() operate wide
16:19Continue to make ComputeVoxelIrradianceAt() operate wide
29:10Change the f32_4x version of Clamp01() to use ZeroF32_4x()
29:10Change the f32_4x version of Clamp01() to use ZeroF32_4x()
29:10Change the f32_4x version of Clamp01() to use ZeroF32_4x()
29:57billdstrong How is he going to test the Clamp01() if he deleted it from the original code?
🗪
29:57billdstrong How is he going to test the Clamp01() if he deleted it from the original code?
🗪
29:57billdstrong How is he going to test the Clamp01() if he deleted it from the original code?
🗪
30:04Introduce an f32_4x version Floor()1
30:04Introduce an f32_4x version Floor()1
30:04Introduce an f32_4x version Floor()1
31:46Fix compile errors in our ComputeVoxelIrradianceAt() vectorisation
31:46Fix compile errors in our ComputeVoxelIrradianceAt() vectorisation
31:46Fix compile errors in our ComputeVoxelIrradianceAt() vectorisation
35:52Optimise ComputeVoxelIrradianceAt() to sum weights before broadcasting them
35:52Optimise ComputeVoxelIrradianceAt() to sum weights before broadcasting them
35:52Optimise ComputeVoxelIrradianceAt() to sum weights before broadcasting them
38:19On the cognitive demand of SIMD, as opposed to instruction sets like AVX-512 and NEON
🗩
38:19On the cognitive demand of SIMD, as opposed to instruction sets like AVX-512 and NEON
🗩
38:19On the cognitive demand of SIMD, as opposed to instruction sets like AVX-512 and NEON
🗩
42:01Continue to make ComputeVoxelIrradianceAt() operate wide, loading in the tiles2,3
42:01Continue to make ComputeVoxelIrradianceAt() operate wide, loading in the tiles2,3
42:01Continue to make ComputeVoxelIrradianceAt() operate wide, loading in the tiles2,3
1:09:06Introduce ConvertS32()4
1:09:06Introduce ConvertS32()4
1:09:06Introduce ConvertS32()4
1:12:44Finish making ComputeVoxelIrradianceAt() operate wide, introducing an f32_4x version of Clamp()
1:12:44Finish making ComputeVoxelIrradianceAt() operate wide, introducing an f32_4x version of Clamp()
1:12:44Finish making ComputeVoxelIrradianceAt() operate wide, introducing an f32_4x version of Clamp()
1:18:39Run the game
🏃
1:18:39Run the game
🏃
1:18:39Run the game
🏃
1:19:02Step through ComputeVoxelIrradianceAt() to find that our vectorised code has been compiled out
🏃
1:19:02Step through ComputeVoxelIrradianceAt() to find that our vectorised code has been compiled out
🏃
1:19:02Step through ComputeVoxelIrradianceAt() to find that our vectorised code has been compiled out
🏃
1:19:28Make ComputeVoxelIrradianceAt() return the SIMD computed result
1:19:28Make ComputeVoxelIrradianceAt() return the SIMD computed result
1:19:28Make ComputeVoxelIrradianceAt() return the SIMD computed result
1:19:50Step through ComputeVoxelIrradianceAt() and try to check out our vectorised code
🏃
1:19:50Step through ComputeVoxelIrradianceAt() and try to check out our vectorised code
🏃
1:19:50Step through ComputeVoxelIrradianceAt() and try to check out our vectorised code
🏃
1:21:15Disable multithreading of the lighting
1:21:15Disable multithreading of the lighting
1:21:15Disable multithreading of the lighting
1:21:45Step through our multithreaded ComputeVoxelIrradianceAt()
🏃
1:21:45Step through our multithreaded ComputeVoxelIrradianceAt()
🏃
1:21:45Step through our multithreaded ComputeVoxelIrradianceAt()
🏃
1:22:19Comment out the old scalar ComputeVoxelIrradianceAt()
1:22:19Comment out the old scalar ComputeVoxelIrradianceAt()
1:22:19Comment out the old scalar ComputeVoxelIrradianceAt()
1:23:16Step through our single-threaded ComputeVoxelIrradianceAt()
🏃
1:23:16Step through our single-threaded ComputeVoxelIrradianceAt()
🏃
1:23:16Step through our single-threaded ComputeVoxelIrradianceAt()
🏃
1:23:54Update RemedyBG
🗹
1:23:54Update RemedyBG
🗹
1:23:54Update RemedyBG
🗹
1:26:30Step through the assembly of our new vectorised ComputeVoxelIrradianceAt()
🏃
1:26:30Step through the assembly of our new vectorised ComputeVoxelIrradianceAt()
🏃
1:26:30Step through the assembly of our new vectorised ComputeVoxelIrradianceAt()
🏃
1:28:41Our lighting looks like the vectorisation just worked
🏃
1:28:41Our lighting looks like the vectorisation just worked
🏃
1:28:41Our lighting looks like the vectorisation just worked
🏃
1:28:47Enable multithreading of the lighting
1:28:47Enable multithreading of the lighting
1:28:47Enable multithreading of the lighting
1:29:05Our lighting looks like it did before
🏃
1:29:05Our lighting looks like it did before
🏃
1:29:05Our lighting looks like it did before
🏃
1:29:18hhlightprof total seconds elapsed: 5.110175
🏃
1:29:18hhlightprof total seconds elapsed: 5.110175
🏃
1:29:18hhlightprof total seconds elapsed: 5.110175
🏃
1:30:56Disable LIGHTING_USE_GRID
1:30:56Disable LIGHTING_USE_GRID
1:30:56Disable LIGHTING_USE_GRID
1:31:13hhlightprof total seconds elapsed: 6.390334
🏃
1:31:13hhlightprof total seconds elapsed: 6.390334
🏃
1:31:13hhlightprof total seconds elapsed: 6.390334
🏃
1:32:36Enable LIGHTING_USE_GRID
1:32:36Enable LIGHTING_USE_GRID
1:32:36Enable LIGHTING_USE_GRID
1:32:5477% of our frame time spent in ComputeLightPropagationWork
🏃
1:32:5477% of our frame time spent in ComputeLightPropagationWork
🏃
1:32:5477% of our frame time spent in ComputeLightPropagationWork
🏃
1:34:09Q&A
🗩
1:34:09Q&A
🗩
1:34:09Q&A
🗩
1:35:00billdstrong Q: Do you plan on bringing your editor on stream, or not? You keep bragging about it
🗪
1:35:00billdstrong Q: Do you plan on bringing your editor on stream, or not? You keep bragging about it
🗪
1:35:00billdstrong Q: Do you plan on bringing your editor on stream, or not? You keep bragging about it
🗪
1:35:05mindmark42 Q: Can you run lightprof without any days?
🗪
1:35:05mindmark42 Q: Can you run lightprof without any days?
🗪
1:35:05mindmark42 Q: Can you run lightprof without any days?
🗪
1:35:17mindmark42 rays
🗪
1:35:17mindmark42 rays
🗪
1:35:17mindmark42 rays
🗪
1:35:28Try decreasing the CostMetric from 16 to 0 in GridRayCast()
1:35:28Try decreasing the CostMetric from 16 to 0 in GridRayCast()
1:35:28Try decreasing the CostMetric from 16 to 0 in GridRayCast()
1:36:03hhlightprof total seconds elapsed: 2.583887
🏃
1:36:03hhlightprof total seconds elapsed: 2.583887
🏃
1:36:03hhlightprof total seconds elapsed: 2.583887
🏃
1:36:47vaualbus Q: Can we time that function with the debug system? So we see how long the top part of that function takes?
🗪
1:36:47vaualbus Q: Can we time that function with the debug system? So we see how long the top part of that function takes?
🗪
1:36:47vaualbus Q: Can we time that function with the debug system? So we see how long the top part of that function takes?
🗪
1:37:01equivocatorrr Q: Why is frame time stability such a rare / impossible thing without leaving headroom?
🗪
1:37:01equivocatorrr Q: Why is frame time stability such a rare / impossible thing without leaving headroom?
🗪
1:37:01equivocatorrr Q: Why is frame time stability such a rare / impossible thing without leaving headroom?
🗪
1:38:54pragmascrypt Q: Did you activate threading again for the benchmark?
🗪
1:38:54pragmascrypt Q: Did you activate threading again for the benchmark?
🗪
1:38:54pragmascrypt Q: Did you activate threading again for the benchmark?
🗪
1:39:18sagian2005 Q: Casey, I just sent you an email. It's re: the SSE stuff you did on today's stream. You might get a smile out of it
🗪
1:39:18sagian2005 Q: Casey, I just sent you an email. It's re: the SSE stuff you did on today's stream. You might get a smile out of it
🗪
1:39:18sagian2005 Q: Casey, I just sent you an email. It's re: the SSE stuff you did on today's stream. You might get a smile out of it
🗪
1:39:29nobodad Q: naysayer88 mentioned that you discussed with him why programming languages shouldn't have unsigned integers. Have you posted your rationale somewhere that I can read? Would you be willing to?
🗪
1:39:29nobodad Q: naysayer88 mentioned that you discussed with him why programming languages shouldn't have unsigned integers. Have you posted your rationale somewhere that I can read? Would you be willing to?
🗪
1:39:29nobodad Q: naysayer88 mentioned that you discussed with him why programming languages shouldn't have unsigned integers. Have you posted your rationale somewhere that I can read? Would you be willing to?
🗪
1:40:49fl_aw3n Q: Can I compile all files in all subdirectories with CL recursively?
🗪
1:40:49fl_aw3n Q: Can I compile all files in all subdirectories with CL recursively?
🗪
1:40:49fl_aw3n Q: Can I compile all files in all subdirectories with CL recursively?
🗪
1:41:06yesyesyourmother Q: Can you use some of the lighting work you do on Handmade Hero in different projects?
🗪
1:41:06yesyesyourmother Q: Can you use some of the lighting work you do on Handmade Hero in different projects?
🗪
1:41:06yesyesyourmother Q: Can you use some of the lighting work you do on Handmade Hero in different projects?
🗪
1:41:31relvet Q: When do we add special sauce, and how much of it? I feel this game needs a Sauce-O-Meter
🗪
1:41:31relvet Q: When do we add special sauce, and how much of it? I feel this game needs a Sauce-O-Meter
🗪
1:41:31relvet Q: When do we add special sauce, and how much of it? I feel this game needs a Sauce-O-Meter
🗪
1:42:31mindmark42 Q: Couldn't the v3 XYZ be loaded with a single load if we pad them?
🗪
1:42:31mindmark42 Q: Couldn't the v3 XYZ be loaded with a single load if we pad them?
🗪
1:42:31mindmark42 Q: Couldn't the v3 XYZ be loaded with a single load if we pad them?
🗪
1:46:11exp_ix Q: Are there any fundamental differences between games engines that use low poly models vs this one?
🗪
1:46:11exp_ix Q: Are there any fundamental differences between games engines that use low poly models vs this one?
🗪
1:46:11exp_ix Q: Are there any fundamental differences between games engines that use low poly models vs this one?
🗪
1:47:34noobgirrafe How can I get your emacs config?
🗪
1:47:34noobgirrafe How can I get your emacs config?
🗪
1:47:34noobgirrafe How can I get your emacs config?