Your old console from years ago runs certain games much better than your newer, more modern PC. Why is this happening? That is why we are going to introduce you to the concept of Draw Call, which has to do with the poor optimization of computer games compared to other systems. And what is the reason for this general trend?
Many video games today are open world, this means that instead of having a series of parts that we have to overcome sequentially, what we have is a unified map where several things happen at the same time. Having to calculate all the elements at the same time would result in choking the central processor. So the map, although it is unified, is divided into small sections with a loading screen where or a cinematic in the middle. Which allows our processor to load only what is in that area and discard the rest of the elements. However, many times there are optimizations, they are not well done.
What is a Draw Call and how does it affect gaming performance?
The problem is that the CPU does not have a visual concept of what is seen and what is not seen, it simply has a list of objects that it has to solve their interaction with the rest from one frame to another. For each object on stage, what is done is what we call a Draw Call. That is, use a graphical API such as DirectX, OpenGL or Vulkan for the graphics card to draw said object on the scene. So the generation of game graphics always starts in the central processor.
In order to reduce costs, what is done today is that each Draw Call refers to “a group of polygons that share the same properties”. Thanks to this, if for example we need to draw the grass of a meadow, we do not need a call to the GPU via API for each blade of grass, but we can unify it. This is called batches or packed in Spanish. The fact of unifying them in a single group makes sense, since it is not the same to wait for several shipments in a row where the processor has to stop for each one of them and send them to the GPU, than to make a single shipment and forget.
For example, in the image in this section we can see a large number of balls that use the same modeling, but different colors. We can make each of them a call to the graphic API, that all of a color are, or group them all in a single post.
How does the use of a Graphic API or another influence?
If a processor has to perform a lot of draw calls, then the best solution is to take and divide the work between several cores. However, this is not possible to do, since the draw list created by the CPU is only one. How to reduce the cost overrun? Remove all those system calls that can work independently of scene drawing and place them in separate lists. This means that they can be carried by different nuclei. However, the display list will always run on the same kernel.
The fact of separating graphics and computing into two different parts is something that we have seen in DirectX 12 onwards and Vulkan. If the game is running in DirectX 11 mode or earlier, or alternatively in OpenGL. So the amount of Draw Call will be higher, although much of it will be for computation and not graphics. At a simplistic level, they are nothing more than calls for the graphics card to perform a series of calculations. But it is important in order to reduce the number of calls to the graph, since depending on the type of system the game is running on, the amount of Draw Call can be a problem for its performance.
The Draw Call and the graphics card
Typically, it is the DMA unit inside the GPU that copies the display lists from system RAM to graphics card RAM (VRAM) using the PCI Express interface. However, Resizable BAR allows the central processor to do the opposite, sending the data directly to the graph. However, the ideal would be a unified memory model for access, but we do not have this on PC or consoles today.
One of the things that the graphics card has to do is determine the visibility of the objects, this means that it has to eliminate all the objects that are not seen in that frame. That is: those that are too far away, those that are off camera or those that are covered by other larger objects. The central processor does not know if these objects meet these conditions or not, it simply knows that they are on the scene and the GPU of the graphics card will be in charge of carrying out the discard process.
Why on PC games seem to be less optimized?
Typically, if the frame rate is high enough, then the game developers won’t worry if the draw call number is too high. This is a problem on PC, since the hardware is constantly evolving and tends to lack optimization. While on consoles, there is a tendency to reduce the number of API calls in order to keep the frame rate high and stable.
Curiously, the games that are best optimized in this aspect are games as a service, although not all of them, the reason is that they are based on letting people play for free and are financed through sporadic payments from their users. For these it is extremely important to have the largest possible market share. What has led to a dominance of this class of titles in the market. Plain and simple most of the public can execute them without problems. On the other hand, games with a high graphic load due to lousy optimization on PC can ask for twice the power than on console to offer the same quality.
This is not something that also happens on PC, since it could be that a studio in charge of converting a game to a specific console falls into the same problem of lack of optimization. So in the end, much of the blame for that game not working well on your computer is human and not the hardware you have.
Once the technical reasons have been explained, we have to talk about the politicians who influence much more than you think. Console manufacturers have quality departments that test games for their consoles and see that they work properly. However, when a title is very important, this leads to a race against time that translates into day 1 patches and even disasters like Cyberpunk 2077.
That doesn’t exist on PC, neither the Epic Store nor Valve with Steam have a quality process that certifies that the games are well optimized. Neither can you with the plethora of different hardware configurations on the market. Why worry that today’s PC won’t run a game well when tomorrow’s will?