[video output=day010 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code template=code010_template.html title="QueryPerformanceCounter and RDTSC" vod_platform=youtube id=tAcUIEoy2Yk annotator=jacebennett annotator=Miblo annotator=theinternetftw]
[1:19][The Intel Architecture Reference Manual]
[3:49][RDTSC- Read Time-Stamp Counter, measures clock cycles]
[7:40][QueryPerformanceCounter(), measures wall clock time]
[15:30][Timing our frames]
[17:02][Union types (LARGE_INTEGER)]
[21:48][Method of determining time elapsed between frames]
[23:19][QueryPerformanceFrequency()]
[26:32][Using dimensional analysis to convert between unit types]
[31:13][Converting seconds/frame to ms/frame]
[32:36][Printing out MSPerFrame]
[38:10][Finding Frames Per Second using dimensional analysis (cause we can)]
[45:44][The dangers of wsprintf()]
[50:10][Using RDTSC to find cycles per frame]
[56:43][Use wsprintf() to print our timings as floats]
[59:18][A bit more about wsprintf()]
[1:02:05][Final Thoughts]
[1:04:32][Q&A][:speech]
[1:04:46][RDTSC returns unsigned int]
[1:05:28][Explanation of how C handles division based on type]
[1:07:34][How compiler optimizations affect the execution time]
[1:09:58][Do the divide in doubles.]
[1:13:26][It would be nice to have a roadmap...Would you consider doing a 24 hour stream?]
[1:14:30][Will we be able to use a Playstation 2 controller?]
[1:14:53][Can we expect more Jeff and Casey shows in the future?]
[1:15:04][Is it safe to use 64-bit variables and functions on a 32-bit PC?]
[1:16:17][Even though we are doing low level programming, sometimes we have to pass things to Windows, which makes it difficult to follow exactly what the computer is doing. Will this be the same when we go to other platforms?]
[1:18:45][Do you use a profiler or mostly hand-coded timing calls?]
[1:18:57][Why do you use PascalCase for everything?]
[1:19:04][Is it a violation to set one member of a union and then read from another?]
[1:19:15][@mvandevander][ Was wondering when we would get around to using RawInput to handle DualShock 4 natively]
[1:20:47][@tom_forsyth][ Modern CPUs RDTSC returns nominal clocks not real clocks.]
[1:22:14][Why are you avoiding doubles in your code?]
[1:22:50][Are you opposed to ever using high level languages in making games?]
[1:23:23][If you wanted to lock the FPS at a particular number, would you just sleep or do something more complex?]
[1:24:55][Isn't RDTSC affected by variable processor technologies in modern processors like SpeedStep?]
[1:26:54][Have you done Ludum Dare?]
[1:27:10][Can we do a bonus stream on ASM?]
[1:28:51][If you read the latency tables for SSE2 float vs double, you'll see that double isn't that much slower than float...]
[1:37:18][What are your thoughts on Swift?]
[1:37:23][What do you think of Jonathan Blow's programming language?]
[1:37:50][Do you have any discussions with Jonathan Blow on his compiler and what sort of features you would like to see in it?]
[1:38:59][Do you ever write functions like printf() that take variable arguments?]
[1:39:07][Would you consider using a templated type-safe version of printf(), even though you hate templates?]
[1:39:28][MULPD is only half as fast if you do millions of operations...]
[1:40:03][What low level language would you suggest to someone new to programming?]
[1:40:13][Are we using the Win32 API but compiling for 64-bits? Do we need to compile for 32-bits for Windows XP support? It looks like we have int64 and real64 in the cpp]
[1:40:50][In game development, do you follow enterprise design patterns, or do you have some different design patterns?]
[1:41:09][What do you use for collections if you do not use templates?]
[1:41:18][I didn't get the outome of the MULPS/MULPD compare. The latency packing was the same, how does that end up being double time?]
[1:44:04][RE MULPS/MULPD: If you're writing SIMD code then you care, otherwise you don't.]
[1:45:58][Comment about compiler auto-vectorization]
[1:47:43][Tom Forsyth's rant on double precision]
[1:48:35][Will we take MSVC all the way to shipping or will we use LLVM even on Windows?]
[1:50:03][What's an intrinsic?]
[1:55:23][Switch back to debug build from optimized]
[1:56:03][Isn't it a pain to work in Windows, especially as a programmer?]
[1:57:05][Didn't we want to start adding warnings?]
[/video]
