Het feit alleen al dat een deel van de dx10 pipeline deels op de gpu als shaders is geimplementeert zegt al genoeg, denk ik zo.
Dit betekent dat de GPU specifieke code moet draaien om DX10 mogelijk te maken. Die GPU had ook andere code kunnen draaien die andere zaken mogelijk maakt dan DX10 en in die zin is DX10 een beperking op wat je kan doen met de GPU.
Hoezo? Dit slaat echt nergens op.
DX10 is een graphics-API, en dus zit er een specifieke graphics-pipeline in (dat is hetzelfde als zeggen dat SQL alleen geschikt is voor databases... nogal logisch, daar is het voor). Dat zal bij Mantle niet anders zijn.
Grote delen van DX10 zijn al programmeerbaar via shaders.
Met DX11 heb je ook nog de compute shaders, waarbij je dus helemaal de pipeline kunt bypassen. Wat jij nu loopt te roepen, is er dus al een paar jaar.
Maar ook de graphics-pipeline hoeft niet per se in hardware geimplementeerd te zijn, ook daar kan de GPU-fabrikant ervoor kiezen om bepaalde delen met shaders te implementeren. Intel is daar een goed voorbeeld van, die doen dingen als clipping en polygon setup met shaders ipv fixed hardware.
Dus waar is die beperking die jij noemt?
Als je bijvoorbeeld dat stuk pipeline anders zou willen implementeren dan heb je met dx10 pech.
DX10 is dan ook alweer uit 2006, en in DX11 is die beperking al lang opgelost.
Mantle lost dit op en geeft developers een platform waarmee ze een complet eigen pipeline naar en op de gpu kunnen bouwen.
Is dat zo? AMD heeft nog niet zo heel veel info over Mantle losgelaten, maar de eerste indruk is dat het vooral een GRAPHICS-API is (nota bene zijn de shaders compatible met Direct3D's HLSL!), en dat je daarnaast GPGPU nog steeds OpenCL of iets dergelijks moet doen.
Maar dat is niet waar dx voor uitgevonden was.
Het probleem met windows was dat microsoft alles binnen de scheduler wou houden. Graphics, daarintegen, zijn zo dataintensief dat ze eigenlijk directe toegang tot de hardware nodig hadden.
Afgezien van het feit dat je verhaal over die scheduler nogal rammelt, gaan die twee natuurlijk samen. DirectX heet DirectX omdat het directe toegang tot de hardware mogelijk maakt, tot op zekere hoogte. In DOS had men directe toegang tot alle hardware, omdat het OS maar een flinterdun laagje was zonder enige multitasking of geheugenbeveiliging of wat dan ook. Probleem was dus dat iedere applicatie zelf z'n eigen abstractielaag en hardware-drivers aan boord moest hebben, om alles een beetje te ondersteunen. In een modern OS als Windows moet de hardware geabstraheerd worden, zodat het systeem robuust is, en de hardware vrij uitwisselbaar, zolang je maar de juiste drivers hebt.
De oorspronkelijke graphics-APIs van Windows waren op zich wel robuust en hardware-onafhankelijk, maar waren niet geschikt voor dingen als gaming. Daarom is DirectX in het leven geroepen: een low-level abstractielaag voor de hardware, die qua features en performance in de buurt kwam van wat DOS-games deden, zodat men de overstap van DOS naar Windows kon maken. The rest is history.
Alle grafische chips deden toch al bijna hetzelfde omdat ze de standaard polygoon/rasterizing pipelines implementeerden.
Onzin. DirectX stamt uit 1995. Toen waren net de eerste 3d-kaarten op de markt. De meeste videokaarten hadden uberhaupt nog geen 3d-acceleratie. En er zaten enorme verschillen tussen de eerste accelerators. Zo had 3dfx een z-buffer, maar PowerVR deed het met tile-based deferred rendering, en dan had je nog nVidia's NV1, die met quadratic rendering werkte.
Maar ondertussen zijn api's zoals dx of opengl nog niet van deze gedachtengang afgestapt
DX11 dus wel, zoals al gezegd.
De api van de toekomst zal een soort CUDA moeten zijn, maar dan ook voor graphics.
Zoals DirectCompute, dat al een aantal jaar in Direct3D zit?
In het geval van OpenGL heb je dan OpenCL, dat dan wel niet in dezelfde API zit, maar de twee APIs kunnen wel vrij nauw samenwerken, door een aantal OpenGL-extensies.
En ik denk dat Mantle precies dat gaat worden.
Daar lijkt het voorlopig niet op.
Intel heeft alvast aangegeven dat ze erg geinteresseerd zijn.
Dat is niet correct. Een medewerker van Intel heeft op zijn prive-twitter een berichtje geschreven dat hij op zich wel geinteresseerd was, maar dat AMD hem geen informatie wilde verstrekken.
Dat is daarna compleet uit z'n verband gerukt. Vooralsnog heeft Intel officieel geen interesse uitgesproken om deze API te gaan ondersteunen, en ik zie persoonlijk ook niet zo goed in waarom ze dat zouden willen. Als nVidia en Intel samen een blok vormen, dan blijft Mantle een AMD-only oplossing, en is het dus minder interessant voor ontwikkelaars om Mantle te gebruiken, en dus kan AMD er dan minder voordeel uit halen (laten we wel wezen, het grootste voordeel van Mantle zou zijn dat het de CPU-load verlaagt, waarom zou Intel dat willen? Die hebben er juist baat bij als iets CPU-intensief is, want zij hebben veel snellere CPUs in het assortiment dan AMD).
Ongeveer hetzelfde verhaal als met Cuda: nVidia staat er wel voor open dat anderen het gaan gebruiken, maar dat gaat ook niet gebeuren, omdat ze daarmee nVidia in de kaart zouden spelen.
Aangezien de consoles leidend zijn in aaa games en die allemaal AMD zijn in de komende generatie zullen de games waarschijnlijk voor Mantle worden ontwikkeld.
Dat vraag ik me af. Gebruiken die consoles eigenlijk wel Mantle? Lijkt me dat Microsoft sowieso z'n eigen API heeft, gebaseerd op DirectX zoals altijd. En ik heb Sony ook nog niet over Mantle gehoord. De APIs van MS en Sony hebben ook die voordelen van Mantle al, omdat ze itt PC-APIs geen hardware-abstractielaag zijn, en alleen een heel dun laagje om direct commando's naar specifieke hardware te sturen. Dus Mantle is daar helemaal niet nodig.
Zouden ze uberhaupt wel toestaan dat er een andere API gebruikt wordt dan die van hunzelf?
Ik vind het allemaal maar een vaag verhaal.
Het zal allemaal vast niet zo'n vaart lopen. Mantle is vast lang niet zo goed als dat AMD beweert... En nVidia en Intel gaan het vast niet ondersteuenen. Ook linux-gaming zal vast niet echt gaan aanslaan, dus over een paar jaar zijn we dit allemaal weer vergeten, en is alles nog steeds gewoon Windows en Direct3D.
[Reactie gewijzigd door Verwijderd op 25 juli 2024 21:27]