+Matthew Booth Thank you for the comment! Python is definitely not the best choice to write highly optimized rendering engine... But there are different tools for different jobs. Python's great for writing high level logic in a readable way and iterating fast. And there are CUDA and C++ bindings for the critical parts. Although debugging the PythonC++ bridge isn't very convenient.
31:50 "So we talked about how CPU works and then about a weird little trick that can help you lose 32 bytes in a day or less." haha! Thanks for the video, I learned a lot.
Great presentation. Thank you for taking the time to share these valuable insights and your experience with us! Some 5 min talks on specific topics would be awesome.
This is the sort of stuff game programmers should also know, whenever I see videos about game development it's never, or rarely anything related to optimization. It's the sort of things many if not all beginner programmers will be thrown off by noticing that their application or system does not scale well which in most cases can be largely mitigated by actually knowing what your code blocks do on a hardware level.
Must say, great video. Especially for me as someone who is studying game programming, this was very enlightening, and much easier to follow than a lot of the other stuff I have read/watched. So, thank you very much :)
Sigi Thanks for the praise :) What parts do you mean? What did you find hard? I'm thinking about recording another talk, very short, ~5 minutes, a single subject. Like, explain binary numbers with fractions. Useful for implementing quantization correctly. And understanding IEEE floats well.
+Sergiy Migdalskiy Just to make things clear, there's nothing wrong with your speech, I really do enjoyed your presentation! I was talking about the background noise, if you listen closely you can hear an outcry (which I suppose is due to someone got something finally working). Anyway, I can't wait to get more details about Source 2. I hope it will revolutionize game development and gaming experience just like the Source engine did in the early 2000's.
@Sergiy Migdalskiy @19:30 How can you check if a cache line is being used by another core? Is there a way to check for the MESI/MOESI/MESIF bits? PS: Great presentation, btw.
Great talk :). But I have question though. In 60th slide there example of implementation of RPointer. I do not really understand implementation of operator -> Why does it use m_nOffset twice in return operator? And how is base pointer for offset provided there. For context: There is an implementation from slides: template class RPointer { unsigned short m_nOffset; public: T* operator -> () { Assert( m_nOffset != 0 ); // must not be NULL return ( ( byte* )&m_nOffset ) + m_nOffset; } void operator = (T*p){m_nOffset = p?((byte*)p)-(byte*)this:0;} };
Thanks for watching! The first use is to take the address of the RPointer itself. The second is to add the offset to it. m_nOffset holds the offset, in bytes, from the memory location holding m_nOffset itself. That's the whole idea. If you memmove that memory anywhere else, it'll still point to the same data. No fixups needed.
@@migdalskiy wait are you sure? i have just been messaged by Sergiy Checker#8140, he has your face on the profile picture and has claimed that i need to buy a 50 dollar steam gift card to unban my steam account for false accusations, could it be somebody is pretending to be you or is it really you who tried scamming me?
Слишком много слов. Пожалуйста попроще и покороче. The details get in the way, and there are too many terms that are not explained. Hard to follow in general.
I think this talk is more for people who are already knowledgeable in this area. If you want something simpler and more beginner-friendly about the same subject, I liked this talk (Practical Optimizations - Jason Booth): ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-NAVbI1HIzCE.html
31:50 "So we talked about how CPU works and then about a weird little trick that can help you lose 32 bytes in a day or less." haha! Thanks for the video, I learned a lot.