Projekt Wine vydal Vkd3d 1.2 s implementáciou Direct3D 12

Projekt vína publikovaný vydanie balíka vkd3d 1.2 s implementáciou Direct3D 12, ktorá funguje prostredníctvom vysielania volaní do grafického API Vulkan. Balík obsahuje knižnice libvkd3d s implementáciami Direct3D 12, libvkd3d-shader s prekladačom shader modelov 4 a 5 a libvkd3d-utils s funkciami na zjednodušenie portovania aplikácií Direct3D 12, ako aj sadu ukážkových príkladov vrátane portu glxgears na Direct3D 12. Kód projektu distribuovaný pod licenciou LGPLv2.1.

knižnica libvkd3d podporuje Väčšina funkcií Direct3D 12, vrátane grafiky a výpočtových zariadení, frontov a zoznamov príkazov, rukovätí a rukovätí haldy, koreňových podpisov, prístupu mimo poradia, vzorkovníkov, podpisov príkazov, koreňových konštánt, nepriameho vykresľovania, metód Clear*() a Kopírovať*().

V libvkd3d-shader je implementovaný preklad bajtového kódu shader modelov 4 a 5 do strednej reprezentácie SPIR-V. Podporované sú vertexové, pixelové, teselačné, výpočtové a jednoduché geometrické shadery, serializácia koreňového podpisu a deserializácia. Shader inštrukcie zahŕňajú aritmetické, atómové a bitové operácie, operátory porovnávania a riadenia dátového toku, vzorkovanie, zhromažďovanie a načítanie pokynov, operácie s neusporiadaným prístupom (UAV, Unordered Access View).

Medzi najvýznamnejšie inovácie vo Vkd3d 1.2 sú zvýraznené nasledovné:

  • Knižnica libvkd3d-shader je pripravená na použitie v projektoch tretích strán.
  • Podpora tessellation shader.
  • Podpora konverzie, serializácie a deserializácie koreňových podpisov (vkd3d_serialize_versioned_root_signature() a vkd3d_create_versioned_root_signature_deserializer()).
  • Podpora streamingového výstupu.
  • Implementácia mnohých predtým nedostupných funkcií Direct3D 12, vrátane podpory multisamplingu, rezervácie zdrojov,
    nepriame indexované vykresľovanie, vykresľovanie hĺbky bez pixel shaderov, súčasný prístup k zdrojom z rôznych príkazových frontov, nulové zobrazenia.

  • Pridané premenné prostredia: VKD3D_CONFIG na nastavenie možností na zmenu správania libvkd3d a VKD3D_VULKAN_DEVICE na prepísanie zariadenia pre Vulkan API.
  • Pridaná podpora pre pokyny pre buffinfo shader,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    sample_b,
    sample_d,
    sample_info,
    ukážky.

Zdroj: opennet.ru

Pridať komentár