|
|
|
|
|
by samlittlewood
2639 days ago
|
|
I was working on 3D rendering and games around this time - pretty much all the PC cards were burdened with terrible CPU->GPU interfaces. The handshaking, setup calculations and register wrangling was such that below a certain triangle size, it would have been quicker for the CPU to just draw the pixels itself. Some cards (Um, Oak?) required per-scanline setup. I got one of these cards - confirmed it was indeed hella fast (even for large meshes of small triangles), and then dropped into SoftICE a few times, winding up at this code: https://github.com/sezero/glide/blob/glide-devel-sezero/glid... My thoughts were - "Wow, somebody gets it!" - Very tight triangle setup, and a simple PCI register layout that means that the setup code just writes the gradients out to a block - the last write pushes the triangle into the huge on-card FIFO. That performance, along with the simplicity of glide, made it a a no-brainer to drop all other card support and focus on that exclusively. |
|