diff --git a/cmuratori/hero/code/code432.hmml b/cmuratori/hero/code/code432.hmml index e830fd3..fe10fbb 100644 --- a/cmuratori/hero/code/code432.hmml +++ b/cmuratori/hero/code/code432.hmml @@ -24,21 +24,21 @@ [42:30][:Run the game and crash in ComputeLightPropagation()][:lighting :optimisation :rendering] [44:45][Step in to GetBox() to see that our BoxIndex is busted][:lighting :optimisation :rendering :run] [46:33][Step through RayCast() to see what's happening][:lighting :optimisation :rendering :run] -[49:46][Make RayCast() actually set the BoxIndex and BoxSurfaceIndex][:lighting :optimisation :owl :rendering] +[49:46][Make RayCast() actually set the BoxIndex and BoxSurfaceIndex][:lighting :optimisation :owl :programming :rendering] [50:55][:Run the game with the selection happening][:lighting :optimisation :owl :performance :rendering] -[51:09][Make RayCast() set the RayP in SIMD using a v3_4x version of Select()][:lighting :optimisation :owl :rendering] +[51:09][Make RayCast() set the RayP in SIMD using a v3_4x version of Select()][:lighting :optimisation :owl :programming :rendering] [53:38][:Run the game to see that we are down to \~26ms][:lighting :optimisation :owl :performance :rendering] -[54:22][Add a TIMED_FUNCTION() in RayCast()][:lighting :optimisation :owl :rendering] +[54:22][Add a TIMED_FUNCTION() in RayCast()][:lighting :optimisation :owl :programming :rendering] [54:41][:Run the game to consult the profiler][:lighting :optimisation :owl :performance :rendering] -[54:55][Add a TIMED_BLOCK() around the startup code in RayCast()][:lighting :optimisation :owl :rendering] +[54:55][Add a TIMED_BLOCK() around the startup code in RayCast()][:lighting :optimisation :owl :programming :rendering] [55:35][:Run the game and consult the profiler to see that the startup cost is not high][:lighting :optimisation :owl :performance :rendering] -[56:00][Perform SampleHemisphere() in SIMD][:lighting :optimisation :owl :rendering :statistics] -[1:01:22][:Run the game to see that we're down to 22ms per frame] -[1:02:04][Temporarily make SampleHemisphere() use complete randomisation][:lighting :optimisation :owl :rendering :statistics] +[56:00][Perform SampleHemisphere() in SIMD][:lighting :optimisation :owl :programming :rendering :statistics] +[1:01:22][:Run the game to see that we're down to 22ms per frame][:lighting :optimisation :owl :performance :rendering] +[1:02:04][Temporarily make SampleHemisphere() use complete randomisation][:lighting :optimisation :owl :programming :rendering :statistics] [1:02:20][:Run the game to see that this would put us back up to 30ms per frame, and note why][:lighting :optimisation :owl :performance :rendering :statistics] -[1:04:08][Drop the RayCount down to 4 in ComputeLightPropagation()][:lighting :optimisation :owl :rendering] +[1:04:08][Drop the RayCount down to 4 in ComputeLightPropagation()][:lighting :optimisation :owl :programming :rendering] [1:04:25][:Run the game and unexpectedly see no speed improvement][:lighting :optimisation :owl :rendering :run] -[1:05:45][Remove variable suffixes in RayCast()][:lighting :optimisation :owl :rendering] +[1:05:45][Remove variable suffixes in RayCast()][:lighting :optimisation :owl :programming :rendering] [1:08:55][Consider removing the Depth loop in RayCast() and reposition the AnyTrue(Mask) test][:lighting :optimisation :rendering] [1:10:31][:Run the game and consider where to go from here][:lighting :optimisation :rendering] [1:11:25][Inspect the assembly of RayCast()][:asm :lighting :optimisation :rendering]