Today, the vast majority of processors are heterogeneous chips that not only have several CPU cores inside, but also what we call an iGPU or integrated graphics chip. We have always interpreted this component as a piece that is less simple to move little more than the Windows desktop, a kind of replacement that as soon as it is time to do the hard work, that is, generate the graphics in the games, it passes the baton to the main graphics card to take a vacation. However, this is a huge waste of resources.
Why will the integrated GPU become important in games?
The main job of a graphics card is to generate images, however, for some time now they are used for other different tasks, but in different markets than the PC. We don’t have our Radeon or our GeForce to help synthesize a protein or to create a military simulation. Of course, there are a number of things for which the excess GPU power, caused by downtime, is used to solve common problems in games, especially those related to collision detection or the calculation of game physics. .
However, to perform these tasks, many games do not use the graphics card and leave the additional CPU cores to do the work, and this causes one of the things that allows the flexibility of contemporary GPUs to be in disuse. The reason for this is that an NVIDIA graphics card is not programmed in the same way as an AMD one, and instead, Intel and AMD processors do use the same code.
The concept of the preframe
One of the most important calculations in games is that of visibility, that is, getting to know which objects are actually seen in each frame and which are not. This is done by the main GPU when generating the frame, however, for some time now the concept of pre-rendering has been used, which consists not in generating a frame with all the complete information, but in generating the image as simply as possible. possible as long as we know the visible objects in the next frame.
This is easy to implement due to the simple fact that the driver only has to execute the next frame in a trimmed way to obtain the corresponding information and that the graphics card acts accordingly when it renders the final frame next. Think of it as a sketch that a draftsman makes with few details before making the final drawing.
What is its utility?
Well, there are several and we are going to list them below:
- It allows us to completely discard all geometry that is in the display list, but is superfluous for the following reasons:
- Out of camera
- behind a larger object
- Too far away and therefore details would not be differentiated.
- It allows the creation of a tree data structure that tells us where each object is located, which is essential for Ray Tracing.
- It allows us to order the geometry according to its position on the screen, which facilitates the possibility of rendering by tiles and thereby reducing the impact on video memory.
How is the preframe built?
It is about creating the next frame with less information, since it will not be seen on the screen, certain parts of the 3D pipeline are omitted in order to speed up the construction of the preframe.
- No graphic shader is applied, in any of the stages.
- No textures or color information is applied either.
- No image post-processing effects of any kind are applied either.
The idea is to be able to have it ready in a few milliseconds, with the aim that the information is ready so that the GPU can use it in its favor to generate the final frame. Remember that the goal is to indicate the visibility and positioning of the geometry in the scene, information that is key to generating a frame. And this is where the trap behind all this mechanism comes in.
It is in the stages after the rasterization stage that the most data ends up moving and therefore the ones that require the most power, by removing them from the equation this means that we can move the execution of the preframe to much simpler graphics hardware, such as It is the graphics integrated in the processor, so it must be active to be able to use it.
The complications involved in its implementation
Okay, everything we’ve discussed so far is very nice on paper, but now it’s time to talk about the crude part, and we’re only going to see this solution when both the architecture of both the integrated GPU and the card graphics are the same or at least compatible. This, unfortunately, is already a problem for NVIDIA, as it is the only one of the three brands that does not have an x86 CPU. What’s more, AMD would be the only company that could take advantage of this situation in order to force the use of its Ryzen processors and Radeon graphics cards in the future.
On the other hand, the idea of the preframe is ideal for GPUs with a large number of cores, however, with the progressive increase in the costs of building chips, any external help is welcome, even if it is through the integrated graphics in the processor. After all, prices cannot continuously climb upwards, there will come a point where the market will say enough is enough.