Yes and no. View.
Current GPUs are designed to render triangles, since triangles are a pleasure to work with. And since modern GPUs are designed to work with triangles, people use triangles, so GPUs need to process triangles, and therefore they are designed to process only triangles.
As you say, triangles just have advantages that make them easy to use. GPUs can be made (and made) to render other primitives natively, but it's just not worth it. If you say a modern graphics processor for rendering an ATV, it breaks it into two triangles and displays them.
Not because there is a technical reason why the GPU cannot display the squares initially, but because it is not worth spending transistors. It is much more useful to focus the GPU on triangles as quickly as possible, and then simply emulate other primitives if needed.
So, modern GPUs have hardware limitations, so they do not work with quadrants, for example, but not because it is impossible to create a graphics processor that works with ATVs. That would be less efficient. :)
As for the "avoidance of triangles", I’m sure that basically what the fragment shader does is: it fills one pixel. The GPU simply runs it several million times in parallel to fill the entire screen. You could draw two large triangles that form a square that fills the entire screen, and then simply specify a fragmented shader that fills it with the content that you like.
If you want more control over the process, do it in software, and then: paint one pixel at a time on the surface of the memory, and then load it as a texture onto the GPU. But this is slow. :)
source share