Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Abu85

    HÁZIGAZDA

    válasz TTomax #21342 üzenetére

    Az AGS régóta létezik. Ez egy lib, ami kiterjesztéseket ad hozzá a DirectX API-hoz. A 4.0 azért lett lényeges, mert ez adja hozzá a rendszerhez a shader intrinsics függvényeket, amiket a Vulkan API-hoz a SPIR-V-n keresztül adtak hozzá. Ez ugyanazokat az előnyöket biztosítja DX12 alatt, amiket a Doom alatt biztosítottak a SPIR-V kiterjesztések a Radeonokhoz. Az AGS 4.0 azonban nem része a legfrissebb meghajtóknak, mert kisebb problémák miatt követték belőlük, vagyis a Deus Exbe épített Doomhoz hasonló GCN-es optimalizálások ezekkel a meghajtókkal nem futnának le Radeonon. Persze ettől még ki lehetne adni a DX12 módot, de úgy néz ki, hogy a GCN egy specifikus, konzolokhoz hasonló, teljesítményre kigyúrt kódutat kap, míg a több hardver egy általánosat, aminél nem a teljesítmény, hanem csak a működés volt lényeges. Lásd a Doom Vulkan módja, ahol a GCN és a többi hardver más-más kódot futtat. A GCN a Deus Exnél is egy úgynevezett gyors kódot kap a szabványos helyett. Ehhez szükséges az AGS4.0 megléte a meghajtóban, mert nélküle nem fut a gyors kód.

    (#21351) namaste: Ha ez ilyen egyszerű lenne, akkor nem kellene bele DRM. A gond az, hogy GameWorks egy D3BC kódot tartalmaz, ami a rendszermemóriából elérhető. Ugyanakkor a meghajtó alapvetően nem tudja, hogy melyik az a shader, amit cserélni kell, mert a tárolt D3BC kód mindig változik, emiatt nem lehet shader cache-t alkalmazni GameWorksre. Ennek van egy változatlan és egy állandóan módosuló része, hogy egy szimpla check és csere ne működjön. A meghajtónak korlátozott ideje van lefordítani a shadert IR-re, mert a GameWorks DRM timebombot alkalmaz. Ez azt jelenti, hogy a shadert a meghajtó lefordítja, majd arról kell egy visszaigazolás a runtime számára. Ha a visszaigazolás időben jött, akkor rendben van, de ha nem, akkor a runtime újra elküldi ugyanazt a shadert, de már más néven és módosult kódrészlettel. Emiatt a meghajtónak sosem fog sikerülni úgy kicserélnie egy shadert, hogy időben küldjön visszaigazolást a runtime számára. Ezért kell magát a DRM-et megtörni, hogy a runtime-ból elküldött shader már eleve a kicserélt shader legyen.

    (#21403) cain69: Az EA-nél ez kizárt. Inkább kiadják félkészen, de a startot tartani fogják. Lásd BF4.

    (#21373) hpeter10: A BF1 által használt Frostbite-ban ezek a GCN-exkluzív függvények/funkciók lesznek benne: Ballot, mbcnt, Read lane, swizzle, ordered_count, barycentric-linearcentroid, HTile, min3/med3/max3. A GDC-n árulták el. A Frostbite későbbi verziójánál kutatják cross-lane operációkat, de ez még csak abszolút kutatás, mivel a konzolok nem támogatják, ugyanakkor a PC-s vezérplatform a DICE-nál a GCN3/4, ami viszont támogatja. Ez permutációt és DPP-t jelent. A DICE-nak ezzel nem titkolt célja az, hogy a Microsoft és a Khronos tagokat ösztökéljék arra, hogy ezek a funkciók a lehető leghamarabb legyenek ott a szabványban. Ennek az egyik legjobb módja, ha az egyik versenytársuknál kihasználják ezeket a képességeket.

Új hozzászólás Aktív témák