Projekt Wine zveřejnil Vkd3d 1.16 s implementací Direct3D 12

Projekt Wine zveřejnil vydání balíčku vkd3d 1.16 s implementací Direct3D 12, fungující prostřednictvím překladu volání do grafického API Vulkan. Balíček obsahuje knihovny libvkd3d s implementací Direct3D 12, libvkd3d-shader s překladačem modelů shaderů 4 a 5 a libvkd3d-utils s funkcemi usnadňujícími portování aplikací Direct3D 12, stejně jako sadu demonstračních příkladů, včetně portu glxgears na Direct3D 12. Kód projektu je šířen pod licencí LGPLv2.1.

Knihovna libvkd3d podporuje většinu funkcí Direct3D 12, včetně prostředků pro grafiku a výpočty, front a seznamů příkazů, popisovačů a haldových popisovačů, kořenových podpisů, neuspořádaného přístupu, samplerů, podpisů příkazů, kořenových konstant, nepřímého vykreslování, metod Clear*() a Copy*(). V libvkd3d-shader je implementován překlad bajtkódu modelů shaderů do mezilehlé reprezentace SPIR-V. Podporovány jsou vrcholové, pixelové, tesselační, výpočetní a prosté geometrické shadery, serializace a deserializace kořenového podpisu. Z instrukcí shaderů jsou implementovány aritmetické, atomové a bitové operace, operátory porovnání a řízení toku dat, instrukce sample, gather a load, operace neuspořádaného přístupu (UAV, Unordered Access View).

V nové verzi:

  • Stabilizována a zapnuta jako výchozí podpora shaderů DXIL (DirectX Intermediate Language).
  • Do překladače jazyka shaderů HLSL byla přidána počáteční podpora geometrických shaderů. Pro modely shaderů 1, 2, 3 byla implementována podpora nepřímé adresace, modulů a omezení hodnot.
  • V knihovně libvkd3d byla potvrzena podpora modelu shaderů 6.0. V programovém rozhraní ID3D12Device1 byla implementována metoda SetEventOnMultipleFenceCompletion(). Přidána podpora rozšíření Vulkan VK_KHR_zero_initialize_workgroup_memory pro inicializaci paměti nulami pro shadery. Mezi povinné bylo zahrnuto rozšíření Vulkan VK_KHR_maintenance2, navržené ve specifikaci Vulkan 1.1.
  • Byla přidána podpora disassembling shaderů SPIR-V a binárních efektů „fx_2_0“.
  • Byla přidána experimentální podpora nepřímé adresace stálých bufferů v GLSL (OpenGL Shading Language).
  • Do implementace jazyka shaderů MSL (Metal Shading Language), používaného společností Apple v grafickém API Metal, byla přidána možnost načítání textur.
  • Byla přidána podpora vestavěných funkcí HLSL: AllMemoryBarrier(), AllMemoryBarrierWithGroupSync(), DeviceMemoryBarrier(), DeviceMemoryBarrierWithGroupSync(), GroupMemoryBarrier() a GroupMemoryBarrierWithGroupSync().
  • Byly implementovány příznaky VKD3D_SHADER_COMPILE_OPTION_FEATURE_ZERO_INITIALIZE_WORKGROUP_MEMORY, VKD3D_SHADER_COMPONENT_INT64, VKD3D_SHADER_COMPONENT_FLOAT16, VKD3D_SHADER_COMPONENT_UINT16, VKD3D_SHADER_COMPONENT_INT16, VKD3D_SHADER_RESOURCE_DATA_NONE a VKD3D_SHADER_RESOURCE_DATA_UINT.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster