Das Wine-Projekt hat Vkd3d 1.12 mit der Implementierung von Direct3D 12 veröffentlicht.

Das Wine-Projekt hat das Paket vkd3d 1.12 veröffentlicht, das die Implementierung von Direct3D 12 umfasst und über die Aufruftransformation in die Vulkan-Grafik-API funktioniert. Das Paket enthält die Bibliotheken libvkd3d mit der Implementierung von Direct3D 12, libvkd3d-shader mit einem Übersetzer für Shader der Modelle 4 und 5 sowie libvkd3d-utils, die Funktionen zur Erleichterung der Portierung von Direct3D 12-Anwendungen anbieten, sowie eine Sammlung von Demobeispielen, einschließlich der Portierung von glxgears auf Direct3D 12. Der Code des Projekts wird unter der LGPLv2.1-Lizenz vertrieben.

Die libvkd3d-Bibliothek unterstützt die meisten Funktionen von Direct3D 12, einschließlich Grafik- und Rechenressourcen, Warteschlangen und Befehlssätze, Deskriptoren und Heap-Deskriptoren, Root-Signaturen, ungeordneten Zugriff, Sampler, Befehlssignaturen, Root-Konstanten, indirekte Renderaufrufe, sowie die Clear*() und Copy*()-Methoden. In libvkd3d-shader wird die Übersetzung des Bytecodes von Shader-Modellen in das Intermediate Representation SPIR-V implementiert. Es werden Vertex-, Pixel-, Tessellation-, Compute- und einfache Geometrieshader unterstützt, einschließlich der Serialisierung und Deserialisierung von Root-Signaturen. Von den Shader-Instruktionen sind arithmetische, atomare und bitweise Operationen, Vergleichsoperatoren und Datenflusssteuerungsanweisungen, sowie Instruktionen wie sample, gather und load implementiert, sowie operaciones für ungeordneten Zugriff (UAV, Unordered Access View).

In der neuen Version:

  • Im HLSL-Compiler wurde die Unterstützung für die direkte Kompilierung in Assembly-Code von Direct3D-Shadern und SPIR-V-Zieltypen hinzugefügt.
  • Im HLSL-Compiler wurde die Unterstützung für die Profile 1, 2 und 3 der Shader-Modelle verbessert.
  • Für HLSL wurden die eingebauten Funktionen cosh(), determinant(), refract(), sinh() und tanh() implementiert.
  • In libvkd3d wurde die Unterstützung für die Formate DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM und DXGI_FORMAT_B4G4R4A4_UNORM hinzugefügt, sofern sie von der vorhandenen Vulkan-API-Implementierung unterstützt werden.
  • Es wurden die Schnittstellen ID3D12ShaderCacheSession und ID3D12Device9 hinzugefügt. In die Schnittstelle ID3D12Device8 wurden die Methoden CreateCommittedResource2(), CreatePlacedResource1(), GetCopyableFootprints1() und GetResourceAllocationInfo2() eingefügt.
  • Die Überprüfungsanfragen D3D12_FEATURE_D3D12_OPTIONS14, D3D12_FEATURE_D3D12_OPTIONS15, D3D12_FEATURE_D3D12_OPTIONS16, D3D12_FEATURE_D3D12_OPTIONS17 und D3D12_FEATURE_D3D12_OPTIONS18 wurden implementiert.
  • In libvkd3d-shader wurde experimentelle Unterstützung für die meisten Methoden und Anweisungen der Shader-Modell 6 des DXIL (DirectX Intermediate Language) hinzugefügt.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster