Dat is vooral een nuanceverschil. Ik heb je blogs ook gelezen. Wat jij vooral lijkt te doen is wat er gezegd wordt in het extreme trekken
Nee, dat heeft Richard Huddy (marketing van AMD) vooral gedaan. Die kwam met een statement van "make the API go away". En dat nuanceerde ik uiteraard, want zoals ik zeg, enige hardware-abstractie is een noodzakelijk kwaad op de PC.
Achteraf bleek Mantle toch ook eigenlijk wel een API te zijn, en iets van een abstractielaag, dus bleken Huddy's claims onzin, zoals ik al eerder aanstipte.
Fact of the matter is dat ik de verhalen al hoorde voordat ik bij Nixxes werkte, en toen ik hier begon in 2004 het pijnlijk duidelijk was dat de PC een probleem had.
Tsja, dat het probleem er was, is al heel lang bekend. Wie kent niet de nVidia-presentatie "Batch, Batch, Batch"?
http://www.nvidia.com/docs/IO/8228/BatchBatchBatch.pdf
Dat is nog wel van voor 2004 overigens. Maargoed, jij draait nog niet zo lang mee als ik, natuurlijk.
Het punt is dus dat MS in die jaren niet heeft stilgezeten, en dat de problemen toch op vele manieren wel zijn aangepakt door de jaren, terwijl veel developers nog steeds praten alsof het 2002 is.
Dit is het perfecte voorbeeld van wat ik hierboven zeg. Niemand beweert dat de PC geen HAL moet hebben, of dat je geen prijs zou moeten betalen voor die HAL.
Richard Huddy beweerde dat dus *wel*.
Ik kan me een alinea in je blog herinneren waar je in gaat op verhaal van een lead developer van een studio die zogenaamd vroeg of we de API niet gewoon weg konden doen.
Nee, dat was Johan Andersson, en Huddy was degene die dat op die manier parafraseerde. Ik heb Andersson gevraagd om een reactie hierop, en hij wilde nooit bevestigen dat hij dat inderdaad gezegd heeft. Het lijkt er dus op dat Huddy in de naam van AMD marketing het verhaal van Andersson enigszins uit het verband heeft getrokken.
En daar reageerde ik dus op.
Ja, dat wist die developer ook wel.
Ik heb dan ook nooit gezegd dat Andersson dat niet zou weten. Maar Huddy is een ander verhaal. Sterker nog, Huddy heeft later nog gereageerd op mijn blog, maar nooit de vragen beantwoord die ik neerlegde bij het opgeven van een API. Ook Andrew Copland reageerde hierop, en was het met mij eens dat Huddy wel wat had uit te leggen als je de API geheel zou verwijderen.
Het krijgt pas betekenis als je ze allemaal bij elkaar ziet, en die informatie is pas definitief als je de uiteindelijke draw doet. Pas dán kan de driver shaders gaan optimizen en patchen aan de hand van vertex declarations en static constants.
Wat jij bij dit verhaal altijd vergeet, is dat de manier waarop de driver de informatie moet verwerken en de GPU moet aansturen, afhankelijk is van hoe deze GPU in elkaar zit. Er zitten hier al behoorlijke verschillen tussen nVidia, AMD en Intel (bij de een zet je een bepaalde waarde gewoon in een registertje, bij de ander moet het een instructie zijn in de command stream etc) bij dezelfde generatie, en dan hebben we het nog niet over verschillende generaties.
In vroeger tijden ging jouw verhaal helemaal niet op. De GPUs waren gewoon grotendeels state machines, waarbij de meeste states ook inderdaad direct gezet konden worden in de hardware. Vandaar dat OpenGL en D3D dus op die manier waren opgezet.
Pas bij DX10-hardware, toen we oa overgingen op unified shaders en GPGPU-ondersteuning, zijn GPUs compleet anders van opzet geworden. Probleem hierbij was dat Microsoft met DX10/11 toch ook de oudere GPUs wilde ondersteunen, want je kunt de DX9-hardware niet zomaar in de kou laten staan.
Maargoed, jij draait nog niet zo lang mee, dus dat kun jij allemaal niet weten. Het zou je echter sieren als je op z'n minst onderkende dat er bij jou daar een kennisgat is, ipv dat je zo alwetend doet, en je verhaal als de absolute, altijd geldende waarheid presenteert.
Let wel, dit heeft compleet niets te maken met hardware features en architectuur - dit is gewoonweg API design, en dat had bij wijze van spreken in Direct3D8 al zo kunnen werken.
Dit is dus ten eerste niet waar. Jij denkt blijkbaar dat alle shader-hardware hetzelfde is. Nee, D3D8 hardware kun je sowieso nauwelijks echt shaders noemen, de pixelshaders zijn meer een geavanceerde vorm van register combiners.
Daarnaast moest D3D8 ook nog op DX6/DX7-hardware draaien, net als dat DX11 ook nog op DX9-hardware moest draaien.
Natuurlijk, je bent al jaren Nixxes medewerkers aan het uitfoeteren om hun zogenaamde "AMD bril".
Helemaal niet. Met Tim heb ik altijd interessante gesprekken. De rest spreek ik niet vaak. Jij bent de enige die altijd zo'n geldingsdrang heeft, en altijd met die blaatverhalen komt.
Dit is ook weer een beetje jammer. Ten eerste klopt je hele verhaal over mijn blog niet (ik heb sowieso nooit over een designer gesproken, dat is compleet je eigen fantasie... vast ook de reden dat je niet met daadwerkelijke quotes en links komt waar dat op mijn blog zou staan, want dat staat er niet). Ten tweede schiet ook je technische verhaal enorm tekort. Jammer.
Je doet me een beetje denken aan de gemiddelde linux-gebruiker. Omdat ze een beetje een idee hebben van hoe linux werkt, denken ze meteen dat ze een expert zijn op alle OSen, nieuw en oud.
Jij hebt ook een beetje info van hoe moderne AMD-GPUs werken, en daarmee generaliseer je alle GPUs uit de hele geschiedenis, van alle vendors. Zo werkt het natuurlijk niet.
Maar iedereen met een beetje gezond verstand begrijpt dat natuurlijk ook wel. Jouw bewering komt in feite neer op dat GPUs al sinds D3D8 op dezelfde manier zouden werken (we spreken 1999), en dat nu (in 2015) ineens de graphics-industrie wakker wordt (mensen bij MS, Khronos, AMD, Intel en nVidia die er veel meer verstand van hebben dan jij), en APIs op een andere manier gaat ontwerpen, want "Oh ja, duh, we hebben het al die jaren compleet verkeerd zitten doen!".
Wat denk je zelf?
[Reactie gewijzigd door Verwijderd op 22 juli 2024 14:38]