Reply 40 of 45, by swaaye
wrote:This contains nVidia's statement on NV30's internals (and some of TR's interpretation and measurement): http://techreport.com/r […]
This contains nVidia's statement on NV30's internals (and some of TR's interpretation and measurement):
http://techreport.com/review/4966/nvidia-gefo … 800-ultra-gpu/4It can do 8 texture/stencil/shader operations per clock, but only 4 color+z operations per clock. Per other nVidia specs, it also supports 16 textures per pass (this includes NV30). "8x.5" may be more accurate then, but overall it gets quite screwy in real-life because it isn't like 3DLabs P10 where it's "locked" in one array mode or another. Instead this all dances back and forth in real time (clock to clock); I don't know to what extent it supports "mixing and matching" across its available resources, which is where "8x.5" may or may not make better sense.
On the stencil/shadow thing, per this (http://www.nvidia.com/object/feature_ultrashadow.html) it appears all of the FX chips support two-sided stencil and should handle stencil shadowing (if I'm reading correctly), but the NV35 added shadow culling, which is meant to improve performance (like HyperZ), but appears to be tied to the renderer, as opposed to the hardware, so the developer would have to implement it ("programmers can define" as opposed to "the blessed chip automatically figures out"). In a Tom's Hardware comparison, 5800 and 5900 performed almost identically in a Doom 3 test, which could potentially be interpreted as a lack of shadow culling support (or importance).
Oh I see where you're coming from with the 16 textures per pass aspect. Yeah that is a Direct3D 9 spec IIRC so all compliant GPUs have that capability. When I say 8x0, I am referring to the 8 texture/stencil/shader operations per clock aspect. It was a Beyond3D thing I think.
You're right - they certainly are curious GPUs.
Interesting about Doom3 and NV35 equaling NV30. Maybe another game using the engine implements that stencil extension. Or perhaps it is unnecessary with NV4x and so just went ignored.