Quote:Original post by ApochPiQ
With the special-purpose dedicated processing power of modern GPUs, it is extremely unlikely that even a master graphics wizard would be able to write a software renderer that could hold its own against hardware-accelerated rendering in the general case.
That's on x86 . Other architectures do not necessary have to perform that bad. Really, you noticed that programmability of graphics cards grows. But as programmability grows, it becomes more and more close to general purprose computation device. As programmability increases, "dedicateness" decreases.
More programmability just means that so-called "hardware rendering" are more and more "software rendering", in fact. Really, CPU where software renderer works is hardware too; and we call it "software rendering" just because you write program that is executed on CPU and do rendering.
x86 CPU versus GPU is closer and closer to good-old "mainframe versus supercomputer" thing (mainframe would suck at rendering, or at playing chess, general purprose supercomputer would suck at running, say, 1000 instances of something dumb like database or text editor, but would be good at rendering, video processing, or something similar - it is highly parallel). Except that GPU is sort of stripped version of general purprose supercomputer, lacking anything that is not needed for graphics.
In summary, the more things are programmable, the closer it is to software renderer. You write shader program - actually you write small piece of software renderer. You write raytracer as shader program - it's essentially software renderer.
[Edited by - Dmytry on June 11, 2005 11:30:34 AM]