Not entirely true.
Games have been using dozens of threads for literally 20 years now. The problem has always been that only a handful do any major amount of work.
The way games were typically designed, two threads did about 90% of the work. One was the primary game thread, which would run through the various game systems in sequence and manage the overall game state. Each individual system could be made parallel, but the sequence through each system was a sequential operation.
The second major thread was the GPU rendering thread. GPU rendering was almost always done in one thread due to graphics APIs not have an easy mechanism to allow multiple threads to control the rendering process, which itself was a serial operation. This was a HW limitation that developers could not work around; no matter how fast the rest of the program was, your maximum speed was limited by how fast you could push data to and from the GPU.
Never graphic APIs (DX12/Vulkan/Rust) make it *much* easier for the developer to split the rendering workload across multiple threads, and more control of the rendering process has been given to the developers. While this in turn causes poor performance when used incorrectly (many early DX12 titles had this issue), it allows the developers to tailor the GPU rendering pipeline to best fit their application.
There's also been a move away from using one thread to run the game state. Rather then run through game systems sequentially, the big idea nowadays is to run each system in parallel on a separate thread, which allows for a much higher level of parallization [though also making the program more difficult to debug as processing is now non-sequential].
Regardless, the same *total* amount of work is unchanged, but is now balanced across all cores instead of having just two do 90% of the work. This is why Intel is still slightly faster in games, since their CPU cores have always been powerful enough to handle core-heavy workloads. AMD has had weaker CPU cores, which is why they benefit more then Intel by splitting up the thread workload (even if Intel remains slightly faster in games overall).
*Is a Software Engineer. I don't work in the gaming industry, but have worked on both ancient (35+ year old code bases) and state-of-the-art embedded systems.
Comment