There are programmers and then there are programmers. Some of us actually take pride in doing things right and taking advantage of available resources without making piles of bloat.
Yes, I said they tend to be lazy - I didn't say all of them were. Maybe 3 of the 50 programmers I worked with in my last 22 years were like you. The rest couldn't be bothered with actually reading all the requirements, caring about human factors, or even commenting within the code to identify when and why changes had been made.
Yeah, because that's how this works. For anything requiring user input, the control thread is always waiting on the user. For anything not requiring user input, there still has to be something controlling operation. Again, due to the nature of OpenGL and DirectX APIs, games have not even had the option of applying SMP/SMT to the graphics engine. With DX12 and Vulkan, they have that option, and if you think nobody will take advantage of that, I think a bunch of programmers will be slightly offended.
Well multi-core CPUs have been the standard for quite a few years. How long do we have to wait before this happens?
1. There is no such thing as "true multi-core program". Either it uses multiple threads or it doesn't.
You just said above that games can't function very well with multiple cores because their inherent design requirements and that the OpenGL and DirectX APIs prevent implementing SMP/SMT. That's pretty much what I was talking about.
2. CMT outperformed SMT in lots of things that
didn't make use of FP ops. Piledriver competed just fine with the same-era Intel chips for those tasks. See some 7-zip benchmarks for examples, e.g. some guy's stock 8350 only being 12% slower than EarthDog's 4.5GHz (25% moar hurts
) 3770k
And I don't think this was because CMT was a bad idea, just the FP performance was weak. Intel, after all, is also sharing an FPU for "HT" threads.
It's always a bad idea if you design a CPU architecture that you know doesn't work well with current software and then somehow expect everything to be modified to run well on it. Especially when you only have a small share of the market. AMD tried to pretend that an FX-8350 is a true 8-core processor, when it really wasn't because of the shared FPUs. Intel never claimed an i7 quad core was an 8 core, just that it had 4 cores and 8 threads.