Feature Articles

NVIDIA GeForce 8800 GTX / GTS (G80) - The World's First DX10 GPU

By Vijay Anand - 9 Nov 2006

DX 10 Compliancy - Geometry Shader

DirectX 10 Compliancy - Geometry Shader

The other major requirement and a highlight of SM 4.0 is the presence of a geometry shader. Since the GeForce 8800 uses a unified shader architecture, it doesn't physically have such units, but logically, this shader is nested between the vertex and pixel shader hierarchy. This is because the geometry shader takes the output from the vertex shader and for the first time ever, the geometry shader allows creation or destruction of vertices (data amplification or data minimization) without the intervention of the CPU. Traditionally altering an existing 3D model would require heavy intervention from the CPU, which would hamper the ability to perform such operations in real-time effectively.

The logical pipeline of a DirectX 9 graphics card.

The new logical pipeline of a DirectX 10 graphics card.

With the geometry shader, the CPU is relived of this task and real-time alteration of the model can take place many folds speedier on the GPU. A supporting feature that makes all this possible is called stream output. Basically, stream output allows data output from the vertex or geometry shaders to be written directly to the frame buffer without requiring to pass through the entire graphics rendering pipeline. The written output can then be dispatched again to the shader processors for further processing and advanced shader effects. The stream output is a more generalized form of the previously known "render to vertex buffer" feature that we've touched on in the days of the G70 and NV40. Geometry shaders together with stream processing allow complex geometry processing and GPU-based physical simulation with little CPU overhead. An important area for application of these benefits is in realistic character animation and facial expressions - all possible thanks to the new DirectX 10 spec. Such rendering can be done via software on CPUs but the outcome would be nowhere as fast the GPU which has a much stronger floating point performance. Thus, the GPU based geometry shaders help to shift certain geometry processing from the CPU to the GPU for much better performance.

Some of the other visual quality enhancements made by the DirectX 10 spec upgrade include the requirement to support 128-bit HDR, increased render target support allowing more complex shaders to be used, vastly improved instancing support which is now able to create variations of the original through texture arrays and render targets with reduced CPU intervention, and finally vertex texturing which was formally used with vertex shaders is now a feature extended to the geometry shader to perform displacements that modify vertex positions of objects as well as create new shapes, forms and geometry data. Many of these are improved upon variations of the more limited original implementations found in DirectX 9.0c standard which we've explained here and it would be good reference if you aren't familiar with them.

Join HWZ's Telegram channel here and catch all the latest tech news!
Our articles may contain affiliate links. If you buy through these links, we may earn a small commission.