Společnost Microsoft zveřejnila zdrojový kód vrstvy D3D9On12, která se používá k překladu příkazů Direct3D 9 do Direct3D 12

Od společnosti Microsoft byla vydána dobrá zpráva a je to tak nedávno oznámil to prostřednictvím příspěvku na blogu otevření zdrojového kódu vrstvy D3D9On12 s implementací zařízení DDI (Device Driver Interface), které překládá příkazy Direct3D 9 (D3D9) do příkazů Direct3D 12 (D3D12).

Tento krok společnosti Microsoft nyní vývojářům usnadní přechod ze svých her na DirectX11 na DirectX12. Překladová vrstva DX12 je v podstatě pomocnou knihovnou pro překlad grafických konceptů a příkazů z domény ve stylu DX11 do domény ve stylu DX12.

Už je to nějaký čas, co jsme naposledy zmínili mapovací vrstvu D3D9On12. Jako rychlou aktualizaci mapuje příkazy D3D9 na D3D12 fungující jako rozhraní DDI (D3D9 Device Driver Interface). Tato mapovací vrstva umožňuje starším aplikacím D3D9 běžet na moderních systémech, které nemusí mít ovladač D3D9. Od posledního příspěvku na blogu jsme přidali podporu pro rozšíření Alpha do Coverage, opravili některé chyby a vyčistili základnu kódu pro open source.

To je nepochybně dobrá zpráva a je to tak nyní mohou těžit různé projekty, které s vrstvou pracují, protože jako takový umožňuje starším aplikacím pracovat v prostředích, která podporují pouze D3D12 například, to může být užitečné pro implementaci D3D9 na základě projektů vkd3d a VKD3D-Protonprotože tyto nabízejí implementaci Direct3D 12 pro Linux, která funguje tak, že překládá volání D3D12 do grafického API Vulkan.

D3D9On12 je vrstva, která mapuje grafické příkazy od D3D9 do D3D12. D3D9On12 není implementací rozhraní D3D9 API, ale spíše implementací uživatelského režimu D3D9 DDI (Device Driver Interface). To znamená, že to není binární soubor s názvem d3d9.dll, ale spíše se nazývá d3d9on12.dll.

Když aplikace vytvoří zařízení D3D9, může být vybráno jako zařízení D3D9On12, nikoli jako nativní zařízení D3D9. Když k tomu dojde, d3d9on12.dll se načte za běhu D3D9 a inicializuje. Když aplikace volá příkazy vykreslení, D3D9 tyto příkazy ověří a poté je převede na DDI D3D9 a odešle je na D3D9On12, stejně jako jakýkoli ovladač D3D9.

D3D9On12 převezme tyto příkazy a převede je na volání API D3D12, která jsou dále ověřována modulem runtime D3D12, volitelně včetně ladicí vrstvy D3D12, která jsou poté převedena na DDI D3D12 a odeslána do ovladače D3D12.

To je také uvedeno projekt je založen na kódu podobného subsystému obsaženého ve Windows 10. Je třeba poznamenat, že zveřejnění kódu D3D9On12 poskytne příležitost tak, aby zástupci komunity účastnit se oprav chyb a přidávat optimalizace, a může také sloužit jako příklad ke studiu implementace ovladačů D3D9 DDI a rámce pro vytváření takových vrstev pro překlady různých grafických API v D3D12.

Proč open source?
D3D9On12 je součástí Windows 10 již několik let a za tu dobu narostl do stability a použitelnosti. Vytvořte z něj open source:

Umožněte komunitě přispívat dalšími opravami chyb nebo vylepšeními výkonu.
slouží jako další příklad toho, jak používat D3D12TranslationLayer
poskytněte zájemcům pohled na to, jak vypadá implementace D3D9 DDI

Současně byl vydán balíček DXBC Signer, který umožňuje schopnost podepisovat soubory DXBC libovolně generované sadami nástrojů třetích stran. D3D9On12 používá tento balíček k podepisování DXBC generovaných převodem shaderů na nový model.

Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti o publikaci, kterou Microsoft vytvořil na svém blogu Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.