När den första riktiga striden om 3D-acceleratorer utkämpades fanns det många fler utmanare än bara ATI och NVIDIA. Sökandet var faktiskt inte efter en GeForce4-mördare, utan snarare ett kort som kunde störta den mäktiga Voodoo2 med 3dfx. En granskning av grafikkortet skulle inte vara komplett utan en jämförelse mellan 3dfx, ATI, Matrox, NVIDIA och S3. Vår första recension av Matrox Millennium G400MAX hade totalt 12 kort från alla dessa tillverkare representerade. Vår senaste sammanställning av grafikkort hade 9 kort, varav 6 var från NVIDIA; de återstående tre från ATI-lägret.
Darwinismen lämnade marknaden med två stora konkurrenter, vilket inte nödvändigtvis var en dålig sak. Prestanda har förbättrats enormt sedan Savage3D och G200s dagar samtidigt som bildkvalitet och funktioner har nått nya höjder. Men som vi har sett gång på gång, närhelst det sker ett paradigmskifte på någon marknad finns det utrymme för marknadsandelar att förlora och vinna. Med trenden i utlåning av GPU:er mot mer flexibla och programmerbara kärnor (som vi nämnde i vår GeForce3-recension, det finns en trend mot att göra GPU:er mycket mer CPU-liknande) kommer de företag som inte hakar på att förlora marknadsandelar medan de företag som kan visa ledarskap kommer utan tvekan att vinna.
Även om NVIDIA har levererat världens första programmerbara grafikprocessor på massmarknaden i nästan två år nu, är tekniken fortfarande mycket infantil till sin natur. En otrolig aktiveringsplattform för dagens GPU:er har varit Microsofts DirectX 8 som lovade möjligheten att utnyttja kraften i dessa programmerbara “shader”-enheter. Även om vi fortfarande inte har sett många hårt slående titlar använda de mest attraktiva DX8-funktionerna, är spel äntligen vid horisonten. Demos och kommande titlar som använder sig av dessa pixel- och vertex-skuggningar visar upp många av de snygga effekter som kan uppnås när du inte har att göra med en grafikpipeline med fasta funktioner utan att 3DLabs bara har en mycket flexibel uppsättning shaders. inte tillräckligt.
Varför programmerbar?
Namnet på spelet är programmerbarhet; under dagarna innan hårdvaru-3D-acceleratorer använde utvecklare värdprocessorn för att hantera allt från fysik och AI till att rendera de faktiska ramarna. Problemet med detta var att även de mest kraftfulla stationära processorerna inte är väl lämpade för att utföra den typ av intensivt arbete som krävs för att köra dessa 3D-spel. De är mycket flexibla genom att du kan programmera dem att göra nästan vilken funktion du vill, men de har inte minnesbandbredden eller den extra processorkraften för att hantera alla sina “vardagliga” uppgifter samt utföra alla 3D-rendering krävs vid höga bildhastigheter.
Introduktionen av hårdvaru-3D-acceleratorer tog bort bördan från värdprocessorn genom att tillhandahålla en dedikerad processor med en bra mängd dedikerad minnesbandbredd väl lämpad för 3D-rendering och inget annat. Problemet med detta tillvägagångssätt var att processortillverkarna definierade vad programmerarna kunde göra med sin hårdvara. Och även om hårdvaruingenjörer är fantastiska på att implementera tillståndsmaskiner och optimera logik, är de inte världens Tim Sweeneys eller John Carmacks när det gäller att definiera vad nästa generations 3D-spel kommer att behöva.
Sedan kom dagens generation av “programmerbara” (vi ska förklara citaten lite) 3D-acceleratorer. Arkitekturer som GeForce4 och Radeon 8500 ger utvecklarna en hel del frihet; friheten att diktera vad de vill att dessa mycket kraftfulla grafikprocessorer ska göra. Men friheten är inte obegränsad; samma frihet som för närvarande finns för en utvecklare att skriva kod för en AMD Athlon XP eller Intel Pentium 4 finns inte för en spelutvecklare som skapar en 3D-motor. Flexibiliteten som erbjuds av dagens GPU:er är en dröm som går i uppfyllelse för utvecklarna vars kreativitet har begränsats av gårdagens grafikpipelines med fasta funktioner, men enligt 3DLabs räcker det fortfarande inte.
Vi har redan nämnt varför värdprocessorn, i all sin oändligt programmerbara glans, inte kan användas som den enda 3D-acceleratorn i ett system. Men vad händer om en liknande, generell 3D-processor kan introduceras med förmågan att vara helt programmerbar ungefär som en CPU? Föreställ dig en processor med ett otroligt antal parallella exekveringsenheter som är skräddarsydda specifikt för SIMD-karaktären hos 3D-renderingsberäkningar som också hade programmerbarheten hos en stationär CPU. Kraften i den här processorn skulle kunna utnyttjas av ett programmeringsspråk på hög nivå (ungefär som C/C++, FORTRAN, Java, C#, etc… för stationära processorer) och det skulle ge spelutvecklare den största flexibiliteten att vara så kreativa som de kunde möjligen föreställa sig.
Detta är 3DLabs vision (vi kommer att diskutera hur realistisk det är med den här delen senare) och ärligt talat är det den riktning som 3D-grafikmarknaden är på väg in. Konkurrensen på marknaden kommer inte att fortsätta om utvecklare tvingas välja mellan stöder ATI:s pixel shaders eller NVIDIA:s. När en mjukvaruutvecklare går för att skriva ett program för x86-processorer bestämmer de sig inte för att stödja en AMD-version av x86 eller en Intel-version; det finns en allmän instruktionsuppsättning medan hårdvaran som implementerar instruktionsuppsättningen kan skilja sig från en CPU-leverantör till nästa, vilket i allmänhet är transparent för utvecklaren.
Citatet som 3DLabs pekar på för att illustrera problemet med de nuvarande “programmerbara” GPU:erna är från en gammal planuppdatering av John Carmack med hänvisning till GeForce3:s Pixel Shaders:
“Andra företag hade potentiellt bättre tillvägagångssätt, men de är nu tvungna att dumma ner dem till nivån för GF3 för kompatibilitetens skull. Förhoppningsvis kan vi fortfarande se en del av den extra flexibiliteten i OpenGL-tillägg.”
Istället för att “fördumma” deras inställning till en programmerbar pixelpipeline till nivån för GeForce3, bestämde sig 3DLabs för att skapa en ännu mer programmerbar arkitektur som de hävdar är en superset av allt som är tillgängligt för närvarande.
Dagens överraskande tillkännagivande är 3DLabs senaste grafikarkitektur som kommer att användas i allt från framtida proffskort till konsument-/spelprodukter senare i år. Ännu mer överraskande är det faktum att kisel av produktionskvalitet för närvarande körs på 3DLabs och det skulle vara pessimistiskt att säga att de första leveranserna av denna teknik inte kommer att ske inom 2 månader.
Låt oss börja…