If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
![]() |
|
|
#101 | ||||||||
|
Senior Member
Join Date: Mar 2002
Posts: 3,779
|
Quote:
Quote:
Nothing about rasterization can't be kept local. First of all, going from vertices to quads necessitates a complete redistribution of data by its very nature, so you can't eliminate that data flow. Then you have early Z/stencil testing to cull quads before they even enter the shader pipeline. That involves specialized functionality which would have to be repeated in each shader unit in order for the rasterizer to be eliminated along with duplicated data flow due to the culling not being centralized. Load balancing is made far more complicated since the pixel generation isn't centralized. I think the best way to see why centralized, FF rasterization is here to stay is to just think of the rasterizer as part of the dispatcher, which is needed to oversee all the computation units. Rasterization is not a workload that needs to be distributed, but rather a way of distributing the real workload. Quote:
Quote:
Fog is a pretty meaningless example, because nobody ever said that fog will never be generalized. For texturing, remember that I said filtering, not address calculations. Simply getting 4-8 samples per clock into each shader unit instead of one filtered sample (which is required to get close to FF performance) will cost more die space than the FF filtering unit itself. Quote:
Now, if we move to path tracing and it needs 50x the memory accesses that final pixel texturing does, I guess its possible that devs will do this, but I don't think that's reasonable. Quote:
Quote:
Quote:
|
||||||||
|
|
|
|
|
#102 | |||
|
Senior Member
Join Date: Jan 2003
Location: Ottawa, Ontario
Posts: 1,783
|
Quote:
But that's for running today's applications. There is no doubt the workloads will continue to get much more diverse. Just look at the evolution in the past ten years. Today's highly programmable shaders made absolutely zero sense for a game like Max Payne. Unified pipelines, dynamic flow control, double precision floating-point? Are you kidding me? Yet it was all added in a few years time and we can no longer live without features like this because games and other applications do make use of them (or benefit from it). So as crazy as software rasterization and texture sampling may sound today, people will continue to buy new hardware both for higher performance and new features. Vertex and pixel processing has already become highly programmable, and it wasn't cheap to implement but the resulting flexibility allowed some amazing progress. The next expensive steps, once the transistor budget allows it, is to make rasterization and texture sampling more generic. Do not for a second think of what effect that would have on the performance of today's games. Mark my words; by then Crysis 2 will be running smoothly on a CPU (just like today Max Payne runs smoothly on a CPU). So future GPUs better have some really impressive capabilities! Quote:
Quote:
Basically, the entire software world can't be forced to adopt a new programming approach overnight just by introducing new hardware with a radically new architecture and extensive new capabilities. Despite the potential of running existing applications more efficiently (with a significant rewrite) and enabling whole new classes of applications, it's just too big an investment and risk for software companies. But that doesn't mean it's proof that this kind of architecture is not the future. It's just proof that things evolve faster when taking baby steps rather than trying to take leaps. |
|||
|
|
|
|
|
#103 | |
|
Member
Join Date: May 2004
Location: Europe\Slovenia\Ljubljana
Posts: 300
|
Quote:
__________________
Intel Core i7 920 | 6 GB RAM | ASUS Rampage II Gene | Sapphire HD6870 Toxic | WD Caviar Black 2TB | Auzentech Forte | Altec Lansing MX5021 2.1 |
|
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|