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

Projekt Wine zveřejnil vydání balíčku vkd3d 1.11 s implementací Direct3D 12, která funguje prostřednictvím překladu volání do grafického API Vulkan. Součástí balíčku jsou knihovny libvkd3d s implementací Direct3D 12, libvkd3d-shader s překladačem shaderů modelu 4 a 5 a libvkd3d-utils s funkcemi pro usnadnění portování aplikací Direct3D 12, stejně jako sada demonstračních příkladů včetně portu glxgears na Direct3D 12. Kód projektu je distribuován pod licencí LGPLv2.1.

Knihovna libvkd3d podporuje většinu funkcí Direct3D 12, včetně prostředků pro grafiku a výpočty, front, seznamů příkazů, descriptorů a deskriptorů haldy, 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áno překlad bytecode modelů 4 a 5 shaderů do mezivrstvy SPIR-V. Podporovány jsou vertexové, pixelové, tesselace, výpočetní a jednoduché geometrické shadery, serializace a deserializace kořenového podpisu. Z shaderových instrukcí jsou realizovány aritmetické, atomické 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:

  • Byla přidána počáteční podpora kompilace starého bytecode Direct3D do mezivrstvy shaderů SPIR-V.
  • Do překladače HLSL byla přidána počáteční podpora kompilace efektových profilů Direct3D („fx_2_0“, „fx_4_0“, „fx_4_1“ a „fx_5_0“).
  • Byla přidána experimentální podpora kompilace mezilehlého jazyka DXIL (DirectX Intermediate Language) do představy SPIR-V a assemblerových instrukcí shaderů Direct3D.
  • Do HLSL byla přidána podpora profilů „fx_2_0“, „fx_4_0“, „fx_4_1“ a „fx_5_0“, byly implementovány vestavěné funkce acos(), asin(), atan() a atan2(), a byla zajištěna podpora zdrojů „Buffer“.
  • Byla přidána optimalizace, která provádí aktualizaci popisovačů v asynchronním režimu, což může vést k urychlení aplikací, které aktualizují velké množství popisovačů v každém snímku.
  • Byla zajištěna podpora Vulkan rozšíření VK_EXT_mutable_descriptor_type a VK_EXT_shader_viewport_index_layer pro zvýšení efektivity práce s bazénem popisovačů a zrychlení renderování polí vertexových a tesselation shaderů.
  • Byla přidána podpora pro rozhraní ID3D12Device7 a ID3D12Resource2. Do rozhraní ID3D12Device4 byla přidána metoda GetResourceAllocationInfo1().
  • Byla přidána podpora pro rozhraní D3DReflect() a D3DDisassemble().
  • Byly implementovány kontrolní dotazy D3D12_FEATURE_D3D12_OPTIONS6, D3D12_FEATURE_D3D12_OPTIONS7, D3D12_FEATURE_D3D12_OPTIONS8, D3D12_FEATURE_D3D12_OPTIONS9, D3D12_FEATURE_D3D12_OPTIONS10, D3D12_FEATURE_D3D12_OPTIONS11, D3D12_FEATURE_D3D12_OPTIONS12, D3D12_FEATURE_D3D12_OPTIONS13.
  • Byly přidány nové možnosti sestavení: VKD3D_SHADER_COMPILE_OPTION_FEATURE, VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64, VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64, VKD3D_SHADER_API_VERSION_1_10 a VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYER.
  • Ve funkcích D3D12CreateDeviceVKD3D() a D3D12CreateDevice() byla zapojena Vulkan rozšíření VK_KHR_android_surface, VK_KHR_wayland_surface, VK_KHR_win32_surface, VK_KHR_xlib_surface, VK_EXT_metal_surface a VK_MVK_ios_surface.

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