He PC hardware for gaming It is used quite sparingly, as there are components in the circuitry that are not used at all and if used, the performance of games for all users will be increased at zero cost, i.e. say for free. Why does this happen and what benefits would there be if it were used?
Advances in PC game development in recent years should have put an end to the myth that this is a platform where optimizing games to make better use of the system was something reserved for dedicated systems. However, most programmers decide to ignore a large part of the system.
Multithreading and runs on PC hardware for gaming
In games, additional cores and execution threads are used to perform certain tasks that are complementary to the main game process, but which are part of it and are essential because they are complementary. The methodology usually consists of having a general process that acts as a conductor for all the others and distributes the rest between the different cores of the main processor.
More or less the process works as follows:
- The main game process divides its work into several subtasks, each of which behaves similarly, but refers to different game objects. This allows you to stop the work and be able to process these subtasks by blocks, which reduces the time the processor takes on each frame.
- The delegation of sub-tasks is organized by jobs, each job depends on a processor core or, failing that, on the execution thread of the processor. Once done, each of the tasks is executed in parallel.
The idea is simple, a single core would take much longer to do the job than several at the same time, it’s still the classic division of labor and it helps to reduce the time per frame that the processor occupies, however, this is not the case everything is as beautiful as it seems.
Windows always wants its share and the more the merrier
Windows is like a feudal lord who wants his share and, therefore, will also use CPU resources for his business, which is why we recommend not to always have background tasks. Moreover, it is so selfish that when it comes to distributing tasks between different threads of execution, it does not do so efficiently. The problem comes from the fact that a multithreaded core is not equivalent in power to two cores, but what is done is to take advantage of the inactivity bubbles to take advantage of this performance.
Of course we must not confuse performance and power, one is the percentage of use of the working capacity and the other the working capacity itself. They are completely different concepts. The fact is that when a game asks what resources the processor has, it is not lying, but the operating system takes the opportunity to take some of these resources.
On consoles, on the other hand, one or two cores are usually reserved for the operating system to run in the background, but that’s something simple for a system to play, not a full computer where the operating system will compete for resources in a continued path.
What is not used in PC hardware to play
However, in gaming PC hardware, there are a number of components that are usually overlooked when developing games, for example, GPUs are not only good at displaying graphics, but also at calculating the physics of these and, therefore, are part of their power can be used to carry out these calculations. For the graphics card, this represents a much lower percentage of working capacity utilization than the processor.
However, this is not the only case, for example we have audio codecs on motherboards, network cards and other things that could be used to reduce the impact on the CPU. Simply by assigning them specialized tasks and freeing up central processor cores. Another case is that of DMA units, which can be used to move data between memories without the involvement of the central processor in a simpler and more efficient way.
What we mean is that almost no developer uses these resources on PC and they are readily available through the DirectX API. Apparently, it is much easier to use the central processor than not to take advantage of the resources already available on the users’ computers.