Hoofdcategorieën
Device Settings

John Carmack over nVidia NV30 versus ATi R300

Door Wouter Tinus, donderdag 30 januari 2003 16:22
Bron: Blue's News, submitter: T.T., views: 789

Op Blue's News is een .plan update te lezen van John Carmack, waarin hij zijn bevindingen over de prestaties van de twee snelste GPU's van dit moment beschrijft. Carmack is op een zeer laag niveau met deze architecturen bezig geweest voor de ontwikkeling van de Doom III-engine, en heeft er dan ook verschillende modi in zijn nieuwe speeltje gebouwd om de beste prestaties uit de verschillende architecturen te kunnen halen. Naast de generieke ARB- en ARB2-modus kent de software ook speciale getunede R200-, NV10-, NV20- en NV30-modi.

Doom III screenshot Tijdens het werk aan de nieuwe 3d-engine voor Doom III is Carmack opgehouden met het ondersteunen van alle API-uitbreidingen die door nVidia en ATi specifiek voor hun eigen kaarten zijn gedaan. In plaats van hier mee door te gaan is hij overgestapt op puur algemene ARB-functies, een beslissing die overigens ook door de hardwarebedrijven gesteund wordt. Het verschil in performance tussen R200-mode en ARB2-mode op een R300-kaart zoals de Radeon 9700 is minimaal, maar op de GeForce FX is het echter een heel ander verhaal. Carmack ontdekte dat zodra de specifieke nVidia- en NV30-functies in de code werden vervangen voor algemene functies, de performance van de kaart halveerde. Waar de GeForce FX eerst nog sneller was dan de R300, was hij zonder de optimalisaties een makkelijke prooi voor zijn grootste concurrent.

nVidia is uiteraard op de hoogte van deze situatie, en heeft Carmack verzekerd dat er nog veel ruimte voor verbetering is in de drivers. De R300 architectuur gebruikt namelijk een vaste precisie (96-bits), terwijl de NV30 drie verschillende niveaus hanteert (32, 64 of 128-bits), waarbij standaard voor de hoogste optie wordt gekozen. Dat kan dan wel positief voor de kwaliteit zijn, maar het is natuurlijk wel een flinke domper op de prestaties. De uitdaging voor de software engineers van nVidia is nu dus om de drivers zo te tunen dat de ARB-functies in de toekomst minstens even snel verwerkt zullen worden als de NV-functies, onder andere door niets steeds automatisch de maximale precisie te gebruiken. Als het bedrijf dat voor elkaar krijgt dan zou er bij alle niet specifiek geoptimaliseerde (OpenGL-)software een sterk verbeterde performance te zien moeten zijn. Of men hierin ook daadwerkelijk in zal slagen, en of de performance van DirectX-software op dezelfde manier verbeterd kan worden is niet duidelijk. De keuze voor consumenten blijft dus een lastige:

Doom logo I am using an NV30 in my primary work system now, largely so I can test more of the rendering paths on one system, and because I feel Nvidia still has somewhat better driver quality (ATI continues to improve, though). For a typical consumer, I don't think the decision is at all clear cut at the moment.

For developers doing forward looking work, there is a different tradeoff -- the NV30 runs fragment programs much slower, but it has a huge maximum instruction count. I have bumped into program limits on the R300 already.

As always, better cards are coming soon.

Verderop in de .plan staat overigens nog een hoop uitleg over de ARB-functionaliteit, voor de geïnteresseerden .

Volgende 16:31 GeForce FX reviews niet goed volgens nVidia
Vorige 15:40 ASML wint eerste patentrechtszaak van Nikon
Advertentie

Reacties

«  1  2  »

betekent dit ook dat doom3 op elke kaart iets anders uit zal komen te zien (buiten het verschil van hardware features uiteraard)?

in principe wel, maar dat is nu ook al het geval met veel spellen/kaarten hoor

Maar dat was vroeger toch ook al?
Een voodoo 3 zag er ook anders uit dan een Tnt2.
Kan me nog herinneren dat de 24bits modus van voodoo mooier was dan de 32bits modus van de tnt2.
(over 2d spreek ik dan)

Ik geloof dan toch dat je niet helemaal het VOODOO design begrijpt.

de VOODOO kaarten deden helemaal maar dan ook helemaal niets met 2D.

de VOODOO kaart was namelijk een Add-In kaart die naast een normale video kaart draaide (alle andere geintegreerde video kaarten daarbuiten gelaten)

Ik zal je het nog sterker vertellen zelfs de huidige video kaarten gebruiken een aparte RAMDAC voor 2D functionaliteiten (naar mijn beste weten althans)

hij heef het echter over de VooDoo3 en deze had wel degelijk 2D modus. en deze was ook aanzienlijk 'mooier/beter' dan menig andere 2D kaart.

Trouwens, er is (in win) geen verschil tussen 24 en 32bpp. (op sommige matrox kaarten worden dingen wel traag om een of andere vage reden in 24bpp mode) maar die extra 8pixels die bij 32bpp worden gebruik zijn voor alpha blending. Dit is dus pas interesant vanaf win2k als je met van die fadein/fadeout gaat werken en dus gebruikt maakt van alpha blending.

Dat geldt niet voor bijvoorbeeld de VooDoo 3 kaarten. Dat zijn wel degelijk 2d/3d kaarten. VooDoo 1 en 2 waren inderdaad addons..

Ik geloof dan toch dat je niet helemaal het VOODOO design begrijpt
Misschien ben jij niet helemaal op de hoogte.
De voodoo1 en 2 series waren add on kaarten
De rest had ook een ramdac (3,4 en 5 serie)

Dat geld alleen voor de Voodoo 1 en 2 kaarten. Alle latere 3dfx voodoo kaarten ondersteunen ook 2D. (de voodoo rush even buiten beschouwing gelaten aangezien dat eigenlijk een 2 kaarten op 1 pcb constructie is.)

Overgens maakt het meestal geen bal uit voor 2d weergave als je 32bits of 24bits gebruikt. Dit omdat het meestal als 24bit kleur + 8bit transparency gebruikt wordt. En voor zover ik weet ondersteund microsoft dat pas vanaf windows xp.

elke kaart is in princiepe trager in 24bpp dan in 32bpp.. dit komt door het adressering van het geheugen..

heeft met granularity te maken..

b.v. een processor heeft 8/16 en 32-bits registers..
en videogeheugen ingedeeld in 32 bits of 24 bits.

wat is sneller..

1x 32-bits wegschrijven (1 schrijfactie) of
1x 16-bits en dan 8-bits wegschrijven (2 schrijfacties)

en framebuffers ingedeeld met 32 bits per pixel zijn
snellerder te benaderen omdat de adresbus van een processor is geoptimaliseerd voor offsets: 0, 4, 8, 12, 16, 20, etc, etc (per 4 byte dus). iets lezen vanuit offset 3 zit wat meer tijd in (omdat ie 2x de adreslijn moet wijzigen, want:

adres zetten naar offset: 0 (leest vier bytes in, offsets: 0, 1, 2 & 3.. waarvan offset 3 alleen interresant is en daarna gaat ie naar offset: 4 en leest weer 4 bytes in waarbij de eerste 2 belangrijk zijn (24-bpp) hierin zit gewoon meer tijd in).

32-bits gaat zo: omdat de pixels alleen op 0, 4, 8, 12 zitten hoeft de proc alleen maar één adreslijnwijziging te doen per pixel.

hopelijk is dit duidelijk. 't was moeilijk uit te leggen.


edit-

transparacy in de GUI werd al door MS ondersteunt vanaf Win2k (zie de fading menuutjes en schadow onder muis :P)

Uhm, correctie: die laatste 8-bits worden gebruikt voor grijstinten... (Alpha-blending werkt ook prima bij 16-bits kleurdiepte.)

Verder vraag ik mij oprecht af hoe de ene kaart 2D nu mooier kan weergeven dan de andere kaart?! Je hebt het over een 2 dimentionale array (matrix). Er hoeft vrijwel niets te worden berekend--en er hoeven al helemaal geen poligonen te worden gemiddeld of randen te worden ``onttrapt'' (anti-aliasing). Zo kom ik toch echt al snel uit op extra's in de diverse stuurprogramma's in combinatie met de gekozen kleurdiepte...

Dat geld alleen voor de Voodoo 1 en 2 kaarten. Alle latere 3dfx voodoo kaarten ondersteunen ook 2D. (de voodoo rush even buiten beschouwing gelaten aangezien dat eigenlijk een 2 kaarten op 1 pcb constructie is.)

Overgens maakt het meestal geen bal uit voor 2d weergave als je 32bits of 24bits gebruikt. Dit omdat het meestal als 24bit kleur + 8bit transparency gebruikt wordt. En voor zover ik weet ondersteund microsoft dat pas vanaf windows xp.
Ik snap echt niet hoe mensen er bij komen dat die laatste 8-bits worden gebruikt voor alpha-blending?! Sinds jaar en dag zijn die bits voor grijstinten + alpha-blending werkt ook bij 16-bits kleuren + alpha-blending is weinig meer dan het ``middelen'' van kleuren waarbij de ``bovenste'' kleur meer of minder wordt meegeteld. (Het is idd zo dat alpha-blending met 8-bits wordt ingesteld, alleen betwijfel ik erg sterk dat daar de grijstinten-bits voor worden gebruikt.)

1 en 2 hadden ook wel een ramdac hoor, deze werd echter alleen gebruikt voor het 3d, het 2d werd gewoon doorgelust. zonder ramdac kun je ook geen 3d op je beeld krijgen nl.

Misschien ben jij niet helemaal op de hoogte.
De voodoo1 en 2 series waren add on kaarten
De rest had ook een ramdac (3,4 en 5 serie)
Alle voodoo kaarten hadden een ram DAC hoor...

betere kwaliteit componenten, PCB, uitmuntende Ramdac en perfecte filters ? Matrox weet hier het nodige van en houd hun recept dan ook geheim.

Geheim? Dat is gewoon een kwestie van geld steken in die componenten. Elke fabrikant zou dat kunnen doen, maar iedereen concentreert zich op de 3d benchmarks en bezuinigt op de output. Alleen Matrox zit in de niche van kaarten met een hele goede uitgang (maar waardeloze 3d).

De kwaliteit van de RAMDAC speelt ook een grote rol bij het maken van een scherp beeld.

Persoonlijk vindt ik het een beetje stom van nvidia, ze wisten dat bepaalde functies niet ondersteund zouden worden door doomIII maar toch doen ze in de drivers enz alles instellen dat die nvidia arb functies voorrang hebben!!! ze kunnen mijnziens beter zorgen dat de mainstream dingen de beste performance leveren want het zijn de mainstream dingen waarop een kaart vergeleken wordt!! dus een beetje klungelig van nvidia dat Carmac dat tegen hun moet zeggen!!

Als je de text goed leest, dan zie je dat er voor de NV30 nog wel optimalisaties zijn in Doom3
Naast de generieke ARB- en ARB2-modus kent de software ook speciale getunede R200-, NV10-, NV20- en NV30-modi.
Pas als deze specifieke code werden varvangen door de algemene ARB en ARB2 codes, werd de GF-FX ineens flink langzamer. Dus zoals het er nu uit ziet is als enige de R300 serie zwaar in het nadeel, omdat daarvoor geen geoptimaliseerde code voor is opgenomen in Doom3.

volgens mij lees je het zelf ook verkeerd :)
ook voor ati zit er specifieke code in. ,maar
alle kaartspecifieke code word er uitgegooid en vervangen door een meer generieke code.

bij de ati levert dat blijkbaar geen problemen op, maar bij de nv30 wel.

Doom has dropped support for vendor-specific vertex programs
(NV_vertex_program and EXT_vertex_shader), in favor of using
ARB_vertex_program for all rendering paths


overigens is dit blijkbaar puur een driver kwestie. en aangezien nvidia goed bekend staat om zijn drivers zal dit probleem wel te overwinnen zijn :)

Ojee, dat is balen voor nVidea.....Hoe zouden ze dat willen realiseren door te schakelen tussen verschillende modi? Eerst testen hoe groot het aangeboden stukje software is? Dan pas selecteren of je het in 32, 64 danwel 128 bits gaat verwerken? Dat kost zeker performance...... :( Helemaal als alle softwarehuizen op deze techniek overstappen.

Pipo zei:
betekent dit ook dat doom3 op elke kaart iets anders uit zal komen te zien (buiten het verschil van hardware features uiteraard)?
Artikel zegt:
Tijdens het werk aan de nieuwe 3d-engine voor Doom III is Carmack opgehouden met het ondersteunen van alle API-uitbreidingen die door nVidia en ATi specifiek voor hun eigen kaarten zijn gedaan. In plaats van hier mee door te gaan is hij overgestapt op puur algemene ARB-functies, een beslissing die overigens ook door de hardwarebedrijven gesteund wordt.
reactie op PipoDeClown: lijkt er niet op dus!

reactie op topic:
Lees ik nu goed dat Doom3 op een NV30 zonder geoptimaliseerde code veeeel slechter draait dan een R300? Ligt een beetje in de lijn van de tegenvallende verwachtingen van de GF FX welke de laatste dagen de frontpage halen.

persoonlijk denk ik dat nVidia wel een appeltje voor de dorst heeft. Net zoals met de 4x.xx drivers denk ik dat ze nadat Ati de R350 heeft uitgebracht een nieuwe driver serie zullen uitbrengen waardoor de NV30 alsnog de snelheidskroon zal spannen (dat zou het iig nog wel een beetje spannend houden). Hetgeen eigelijk ook wel bevestigd wordt door nVidia door toe te geven dat de FP precision nog nader bekeken gaat worden e.d.

Wellicht dat het daarom wel slecht nieuws is voor nVidia dat het binnenkort? uit te komen Doom3 voornamelijk op de ARB-functies zal draaien.. want dan zullen de driver optimalisaties voor de NV30 specifieke instructies niet gebruikt worden.. tenzij ze echt 1337 zijn bij nVidia en de ARB-functies realtime kunnen vertalen of wrappen naar/in NV30 instructies.

dat was inderdaad een prachtige truc, de 9700 sloeg de ti4600 van het veld, maar met de toen bijna gelijk gerekeasde 4x.xx kwam nvidia toch wel wat dichterbij. En zeker voor een compleet nieuwe architectuur als die van de FX moet het mogelijk zijn om veel aan drivers te doen, zeker gezien nVidia's reputatie.

Denk je dat ATI stilzit op de driverafdeling?
Net zoals met de 4x.xx drivers denk ik dat ze nadat Ati de R350 heeft uitgebracht een nieuwe driver serie zullen uitbrengen waardoor de NV30 alsnog de snelheidskroon zal spannen
Lijkt mij hoogstonwaarschijnlijk, de R350 zal veel sneller zijn als de R300.

Mijn keuze voor een nieuwe videokaart gaat afhangen van de prestaties ervan in Doom III (en dan waarschijnlijk dus ook Quake 4) en ik denk dat ik in die keuze niet de enige ben. Het is altijd interessant wat J.C. over de prestaties van chipsets zegt.

Sterker nog, de GeForce FX is nog niet leverbaar en de ATi R350 is over een maand of 2/3 leverbaar.

Met geheugen dat op een effectieve snelheid van 1600Mhz loopt en een core op 500Mhz.
Ik denk dat Nvidea aan het kortste eind zal trekken

geheugen op 1600 MHz?
waarom denk je dat ze in godsnaam 800 MHz geheugenchips willen hebben, en een 500 MHz core? dan is er meer geheugenbandbreedte, dan de core zelfs maar aankan!

en als je het hebt over QDR, dat kost nog veeel te veel, om het rendabel te maken het op een kaart te plaatsen...

nee, volgens mij kloppen de gewone geruchten wel: 400/400 MHz is haalbaar, mensen die overklokken komen al hoger dan dit.. (niet met de ram, maar wel met de core)

Ik zal die 1600Mhz even uitleggen,
Het geheugen loopt op 400MHz, dit is 800MHz DDR (effectief)
Het geheugenpad is ipv 128Bits 256 bits breed.
Je kan de effectieve geheigenbanbreedte dus verdubbelen.
800MHz x2 is 1600MHz
--
edit SpankmasterC,
Dit is PRECIES de effectieve snelheid.
Als de GFX 1600MHz geheugen zou hebben (ipv 1GHz) dan zou hij net zoveel bandbreedte hebben als de R350.

da's toch echt flink wat anders dan de effectieve snelheid...

:p maar goed, voor deze ene keer zie ik 't door de vingers!

Dat het geheugenpad breeder is wil niet zeggen dat het aantal mhz hoger wordt! Dat is echt pure onzin..

Mhz gaat om kloksnelheid, vermenigvuldig dat met het aantal bits van de breedte van het geheugenpad en je hebt de bandwidth.

EFFECTIEVE SNELHEID

je had er volgens mij effe bij moeten zetten 'in vergelijking met de GF FX'....
effectieve snelheid blijft MHZ x multiplier

Jongens, daarom moet je ook niet in MHz praten, maar in 'megabytes per second'.

Klopt helemaal dude, ik laat me al jarenlang leiden door John Carmack voor veel van mijn hardware aankopen. Upgraden doe ik vaak tegelijkertijd met het verschijnen van een nieuwe id game. Mijn nieuwe videokaart wordt degene die het beste DOOM III zal weten te draaien.

|:( |:( |:( Wat stom zeg om je default op de traagste en mooiste stand te zetten. Waarschijnlijk is die kwaliteit nauwelijks te zien tijdens het lekker fraggen. Men wil snelheid; daarom kopen mensen die kaart. De laagste stand zal ook nog hele mooie plaatjes laten zien denk ik.

Ik weet niet wie die keuze heeft gemaakt daar :? .

waarschijnlijk iemand die heel slim is en een stuk meer verstand van GPU's maken heeft dan wij hier op tweakers, of een marketing afdeling die veel geleerd heeft ondertussen!

als ie in default alsnog redelijk kan meekomen.. moet je nagaan wat er gebeurd op het moment dat er geoptimaliseerd gaat worden.. (ALS er....)

Ik denk dat Nvidia groot is geworden door te kiezen voor beauty ipv hoogste framerate, dat is hun filisofie. 3Dfx gokte op snelheid boven mooiheid. De uitslag weten we. Alleen hebben ze nu te maken met een concurrent, ATi, die zowel beauty als snelheid naar het hoogste plan weet te tillen. Moeilijke keus nu voor Nvidia.

Volgens mij was het precies andersom: snelheid en nvidia gingen altijd hand in hand. De beelden van voodoo kaarten waren vaak mooier dan van tnt kaarten. De consument koos voor snelheid en 32 bit.

ik vond het beeldkwaliteit beter van de TNT2 beter dan van de VooDoo 2/3.. 22-bits dithered to 16-bits 3D is ook niet alles.. maar daar kon je nog meer leven.. waarmee ik niet mee kon leven was de 256x256 texture limit.. en die heeft er ook voor gezorgd dat veel games niet hoger gingen dan 256x256.. terwijl de TNT/TNT2 al 2048x2048 texmaps ondersteunde.

ik had toen een TNT2 en m'n broer een VooDoo 3.. en geloof me.. had toen het spel 'nascar heat'. zag er echt 10x zo mooier uit op de TNT2 dan op de VooDoo 3 (voodoo3 had blurry textures en op de TNT2 niet. het spelletje ondersteunde namelijk 512x512 textures en dat zag je).


edit:

herinnerde weer de naam van het spelletje :P

Geloof dat de TNT/TNT2 alleen in 3D leuke plaatjes gaf, daar is immers weinig tekst. In 2D was het diep treurig vergeleken met een Matrox G400 bijv.
En ik heb ze allemaal in huis gehad, dus weet waar ik over praat. Toen waren de drivers btw. ook al niet superieur. Had meer problemen met de TNT-drivers dan ik ooit had met mijn G400.

Nvidia ging vooral voor speed, punt.

De laagste stand zal ook nog hele mooie plaatjes laten zien denk ik.

Ik weet niet wie die keuze heeft gemaakt daar .
Misschien heeft nvidia did met opzet gedaan, zodat ze over een tijdje wederom met nieuwe "wonder" drivers uit kunnen komen die veel sneller zijn, maar (iets) lager in kwaliteit?

Wat ik veel interesanter vond was wat ons te wachten staat...echte, schiet er doorheen en kijk naar de mooie kringeltjes rook, en het feit dat je eindelijk een plaat met slechts twee polygonen kan bescrijven ipv meerdere vanwege de rednering algoritmes...dat betekent meer polygonen over voor waar het nodig is: in het detail werk, ipv de simpele dingen :)

Wat ik ook super vond was het feit dat rendering nu bijna helemaal geometrie independant wordt...goed nieuws voor levelbuilders en 3d artiesten!

Kan Nvidia dan in ieder geval niet een tooltje maken dat de gebruiker zelf in staat stelt de modus te kiezen? Dan kan de gebruiker die hoge framerates wil zien een lagere modus kiezen...

...een zeer laag niveau bezig geweest...
Dit kan je helaas dubbel opvatten. Hij is eigelijk op zeer hoogstaand niveau bezig geweest!

doet me denken aan de matrox g400.. en dergelijke.. veel coole features ingebakken maar komen nooit tot hun recht vanwege dat er geen ondersteuning is...

wat is dit nou weer voor onzin? mischien moet je je eens verdiepen in de gf fx en radeon 9700. features als pixel en vertex shaders en bump mapping gaan in doom iii JUIST gesupport en gebruikt worden. verder heeft de gf fx niet veel meer features dan een radeon 9700
«  1  2  »

Op dit item kan niet meer gereageerd worden.

Volgende 16:31 GeForce FX reviews niet goed volgens nVidia
Vorige 15:40 ASML wint eerste patentrechtszaak van Nikon
VNU Media logo Hosted by True

© 1998 - 2012 Tweakers.net B.V. - Alle rechten voorbehouden - Contact - Jouw privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2011