Das Wine-Projekt hat Vkd3d 1.11 veröffentlicht, das die Implementierung von Direct3D 12 umfasst.

Das Wine-Projekt hat die Version vkd3d 1.11 veröffentlicht, die Direct3D 12 über eine Übersetzung der Aufrufe in die Vulkan-Grafik-API implementiert. Das Paket enthält die Bibliotheken libvkd3d zur Implementierung von Direct3D 12, libvkd3d-shader mit einem Übersetzer für Shader der Modelle 4 und 5 sowie libvkd3d-utils mit Funktionen zur Vereinfachung des Portierens von Direct3D 12-Anwendungen, sowie eine Reihe von Demobeispielen, einschließlich der Portierung von glxgears auf Direct3D 12. Der Code des Projekts wird unter der LGPLv2.1-Lizenz veröffentlicht.

Die libvkd3d-Bibliothek unterstützt einen Großteil der Funktionen von Direct3D 12, einschließlich Grafik- und Rechenmittel, Warteschlangen und Befehlslisten, Beschreibungen und Heap-Deskriptoren, Root-Signaturen, ungeordneter Zugriff, Sampler, Befehls-Signaturen, Root-Konstanten, indirektes Rendering, Clear*()- und Copy*()-Methoden. In libvkd3d-shader wird die Übersetzung von Shader-Modellen 4 und 5 Bytecode in das Zwischenformat SPIR-V realisiert. Es werden Vertex-, Pixel-, Tessellations-, Compute- und einfache geometrische Shader unterstützt, sowie die Serialisierung und Deserialisierung von Root-Signaturen. Aus den Shader-Anweisungen sind arithmetische, atomare und bitweise Operationen, Vergleichsoperatoren und Datenflusssteuerungsanweisungen, Sample-, Gather- und Load-Anweisungen sowie Operationen für ungeordneten Zugriff (UAV, Unordered Access View) implementiert.

In der neuen Version:

  • Es wurde eine erste Unterstützung für die Kompilierung von altem Direct3D-Bytecode in das Zwischenformat SPIR-V hinzugefügt.
  • Der HLSL-Compiler hat eine erste Unterstützung für die Kompilierung von Direct3D-Effektprofilen hinzugefügt („fx_2_0“, „fx_4_0“, „fx_4_1“ und „fx_5_0“).
  • Experimentelle Unterstützung für die Kompilierung von DXIL (DirectX Intermediate Language) in das SPIR-V-Format und assemblerartige Shader-Anweisungen von Direct3D wurde hinzugefügt.
  • In HLSL wurde Unterstützung für die Profile „fx_2_0“, „fx_4_0“, „fx_4_1“ und „fx_5_0“ hinzugefügt, dabei wurden die eingebauten Funktionen acos(), asin(), atan() und atan2() implementiert sowie Unterstützung für Ressourcentypen „Buffer“ bereitgestellt.
  • Eine Optimierung wurde hinzugefügt, die die Aktualisierung der Deskriptoren im asynchronen Modus durchführt und die Leistung von Anwendungen, die viele Deskriptoren pro Frame aktualisieren, steigern kann.
  • Die Nutzung von Vulkan-Erweiterungen VK_EXT_mutable_descriptor_type und VK_EXT_shader_viewport_index_layer wurde implementiert, um die Effizienz des Umgangs mit dem Deskriptorpool zu verbessern und das Rendering von Vertex- und Tessellations-Shader-Arrays zu beschleunigen.
  • Die Unterstützung für die Schnittstellen ID3D12Device7 und ID3D12Resource2 wurde hinzugefügt. In die ID3D12Device4-Schnittstelle wurde die Methode GetResourceAllocationInfo1() integriert.
  • Unterstützung für die Schnittstellen D3DReflect() und D3DDisassemble() wurde hinzugefügt.
  • Prüfanfragen für 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 und D3D12_FEATURE_D3D12_OPTIONS13 wurden implementiert.
  • Neue Kompilierungsoptionen wurden hinzugefügt: VKD3D_SHADER_COMPILE_OPTION_FEATURE, VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64, VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64, VKD3D_SHADER_API_VERSION_1_10 und VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYER.
  • In den Funktionen D3D12CreateDeviceVKD3D() und D3D12CreateDevice() werden Vulkan-Erweiterungen wie VK_KHR_android_surface, VK_KHR_wayland_surface, VK_KHR_win32_surface, VK_KHR_xlib_surface, VK_EXT_metal_surface und VK_MVK_ios_surface verwendet.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster