Hirdetés

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

  • Abu85

    HÁZIGAZDA

    válasz Yutani #29727 üzenetére

    Beáldozni beáldozhatja, csak most pont nem lenne logika benne, amikor ezekre épül a shader model 6.0 és 6.1. Nyilván nem mindegy, hogy az új wave intrinsics függvényeket emulálják, vagy hardveresen van rá utasítás, illetve támogatás.
    Az SM6.0 aktuális állapota alapján a WaveBallot, a WavePrefixSum, a GlobalOrderedCountIncrement eléggé GCN-re van szabva. Ezeket mindenképpen emulálni kell a többi architektúrán. A WaveBallot esetében az a baj, hogy 64 bites unsigned integer bitmaskkal tér vissza, és 64 bites skalárregisztere csak a GCN-nek van, tehát a többi architektúrán ezt le kell emulálni, hogy a hardver által kezelt regiszterhez igazodjon a működése. A WavePrefixSum-ra van egy konkrét utasítás a GCN3-tól, míg a többi architektúrán ezt is emulálni kell. A GlobalOrderedCountIncrement függvényre pedig konkrét hardverdizájn van kialakítva a GCN-ben a multiprocesszorok közötti szinkronizálásra, míg a többi architektúránál a VRAM-ot vagy jobb esetben az utolsó szintű gyorsítótárat kell használni ehhez.
    Az SM6.1-nél a barycentric bevezetése abból a szempontból problémás lesz, hogy a GCN eleve úgy van tervezve, hogy az LDS a barycentric koordinátákat tárolja. A többi hardveren ez megoldható, de nem így tervezték őket, az NV-nél eleve nagyon kicsi az LDS a multiprocesszorokhoz mérve, míg az Intel erre a célra a nagyon lassú L3-at használja.
    Most ezt nincs értelme leváltani, mert pont az a lényege a Microsoft új shader nyelvének, hogy amit megírnak konzolra azt csak copy-paste formában hozzák PC-re.

    A SPIR-V egyébként sokkal jobban kialakított IR, mint a DXIL. Nem igazán kedvez egyik architektúrának sem, de persze a Microsoft is érthető. Nekik bőven jó, ha a konzol specifikációk élnek PC-n is. Majd az IHV igazodik hozzá.

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