nVidia GeForce 6800 - šestá generace GPU realitou
15.4.2004, Zdeněk Kabát, článek

Den se s dnem sešel a po dlouhém očekávání byl konečně oficiálně ohlášen grafický čip šesté generace od nVidie, GeForce 6800. Teprve minulý týden se podařilo odhalit oficiální název pro NV40, tento týden ve středu, tedy 14. dubna, skončila všechna NDA a mohu nyní říct, že víme téměř vše. Připravte se na to, že GeForce 6800 je opravdový technologický skvost a její výkon je drtivý.
Kapitoly článku:
DirectX 9.0 - Shader Model 3.0
Samostatnou kapitolu stojí za to věnovat podpoře nového grafického API, a to DirectX 9.0c. Dlouho se diskutovalo o názvu tohoto rozhraní, ale nakonec určil Microsoft vzhledem k malým změnám jen písmenko „c“. Oficiálně se tato verze nazývá DirectX 9.0 Shader Model 3.0, což již samo o sobě naznačuje, že Pixel a Vertex Shadery se vyskytují ve verzi 3.0.
Tomu odpovídá i název celé architektury čipu GeForce 6800, který zní CineFX 3.0. Nejdříve se podíváme na rozdíly mezi Shadery verze 2.0 a 3.0, abychom viděli, jaké změny GeForce 6800 přináší. Zde jsou změny pro Vertex Shader, kde VS_2_a je Vertex Shader 2.0 Extended:
Z tabulky je vidět, že rozdílů není tolik, ale na druhou stranu se mezi nimi vyskytují faktory jako je predikce instrukcí, dynamická kontrola toku, Texture Fetch apod., které jsem popisoval výše jako součást grafické pipeline, a které jsou místy velmi důležité. Upozorňuji, že toto jsou požadavky pro Vertex Shader 3.0, takže jakýkoliv GPU bez těchto hodnot nemůže Shader Modelu 3.0 vyhovovat.
Ještě se podíváme na odlišnosti v Pixel Shaderu verze 3.0:
Opět tu máme úpravy hlavně v různých limitech, počtech instrukcí, registrů apod. Součástí je opět dynamické řízení toku, což se stane velmi užitečným nástrojem programátorů. Upraven je také High Precision Mode, který byl v PS 2.0 24 bitů - nyní je podmínkou FP32, což znamená, že mu nebudou čipy ATi při zachování FP24 vyhovovat.
Rozepisovat se detailně o DirectX 9.0 Shader Model 3.0 by vydalo na celý článek, tak se zatím musíte smířit s tímto výčtem změn. Ostatně, hlavním předmětem je GeForce 6800 Ultra, jejíž popis dále pokračuje.
Samostatnou kapitolu stojí za to věnovat podpoře nového grafického API, a to DirectX 9.0c. Dlouho se diskutovalo o názvu tohoto rozhraní, ale nakonec určil Microsoft vzhledem k malým změnám jen písmenko „c“. Oficiálně se tato verze nazývá DirectX 9.0 Shader Model 3.0, což již samo o sobě naznačuje, že Pixel a Vertex Shadery se vyskytují ve verzi 3.0.
Tomu odpovídá i název celé architektury čipu GeForce 6800, který zní CineFX 3.0. Nejdříve se podíváme na rozdíly mezi Shadery verze 2.0 a 3.0, abychom viděli, jaké změny GeForce 6800 přináší. Zde jsou změny pro Vertex Shader, kde VS_2_a je Vertex Shader 2.0 Extended:
![]() | VS_2_0 | VS_2_a | VS_3_0 |
# of instruction slots | 256 | 256 | >= 512 |
Max # of instructions executed | 65535 | 65535 | >=65535 |
Instruction Predication | - | x | x |
Temp Registers | 12 | 13 | 32 |
# constant registers | >=256 | >=256 | >=256 |
Static Flow Control | x | x | x |
Dynamic Flow Control | - | x | x |
Dynamic Flow Control Depth | - | 24 | 24 |
Vertex Texture Fetch | - | - | x |
# of texture samplers | - | - | 4 |
Geometry Instancing Support | - | - | x |
Z tabulky je vidět, že rozdílů není tolik, ale na druhou stranu se mezi nimi vyskytují faktory jako je predikce instrukcí, dynamická kontrola toku, Texture Fetch apod., které jsem popisoval výše jako součást grafické pipeline, a které jsou místy velmi důležité. Upozorňuji, že toto jsou požadavky pro Vertex Shader 3.0, takže jakýkoliv GPU bez těchto hodnot nemůže Shader Modelu 3.0 vyhovovat.
Ještě se podíváme na odlišnosti v Pixel Shaderu verze 3.0:
![]() | PS_2_0 | PS_2_a | PS_2_b | PS_3_0 |
Dependant Texture Limit | 4 | No Limit | 4 | No Limit |
Texture Instruction Limit | 32 | Unlimited | Unlimited | Unlimited |
Position Register | - | - | - | x |
Instruction Slots | 32 + 64 | 512 | 512 | >= 512 |
Executed Instructions | 32 + 64 | 512 | 512 | >=65535 |
Interpolated Registers | 2 + 8 | 2 + 8 | 2 + 8 | 10 |
Instruction Predication | - | x | - | x |
Index Input Registers | - | - | - | x |
Temp Registers | 12 | 22 | 32 | 32 |
Constant Registers | 32 | 32 | 32 | 224 |
Arbitrary Swizzling | - | x | - | x |
Gradient Instructions | - | x | - | x |
Loop Count Register | - | - | - | x |
Face Register (2-sided Lighting) | - | - | - | x |
Dynamic Flow Control | - | - | - | 24 |
Opět tu máme úpravy hlavně v různých limitech, počtech instrukcí, registrů apod. Součástí je opět dynamické řízení toku, což se stane velmi užitečným nástrojem programátorů. Upraven je také High Precision Mode, který byl v PS 2.0 24 bitů - nyní je podmínkou FP32, což znamená, že mu nebudou čipy ATi při zachování FP24 vyhovovat.
Rozepisovat se detailně o DirectX 9.0 Shader Model 3.0 by vydalo na celý článek, tak se zatím musíte smířit s tímto výčtem změn. Ostatně, hlavním předmětem je GeForce 6800 Ultra, jejíž popis dále pokračuje.