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

Projekt Wine veröffentlichte Release des Pakets vkd3d 1.2 mit der Implementierung von Direct3D 12, das durch die Übersetzung von Aufrufen in die Grafik-API Vulkan funktioniert. Das Paket umfasst die Bibliotheken libvkd3d mit der Implementierung von Direct3D 12, libvkd3d-shader mit dem Übersetzer für Shader der Modelle 4 und 5 sowie libvkd3d-utils mit Funktionen zur Vereinfachung der Portierung von Direct3D 12-Anwendungen, sowie ein Set von Demobeispielen, einschließlich des Ports von glxgears auf Direct3D 12. Der Code des Projekts wird verbreitet unter LGPLv2.1 lizenziert.

Die Bibliothek libvkd3d unterstützt deckt die meisten Möglichkeiten von Direct3D 12 ab, einschließlich Grafik- und Berechnungswerkzeuge, Warteschlangen und Befehlslisten, Deskriptoren und Heap-Deskriptoren, Root-Signaturen, ungeordneter Zugriff, Sampler, Befehls-Signaturen, Root-Konstanten, indirekte Rendering-Methoden, Clear*()- und Copy*()-Methoden.

In libvkd3d-shader wurde die Übersetzung von Bytecode der Shader-Modelle 4 und 5 in ein Zwischenergebnis vom Typ SPIR-V implementiert. Unterstützt werden Vertex-, Pixel-, Tessellation-, Compute- und einfache geometrische Shader, sowie die Serialisierung und Deserialisierung von Root-Signaturen. Aus den Shader-Anweisungen wurden arithmetische, atomare und bitweise Operationen, Vergleichsoperatoren und Steueranweisungen implementiert, Anweisungen wie sample, gather und load, sowie Operationen des ungeordneten Zugriffs (UAV, Unordered Access View).

Zu den bedeutendsten Neuheiten Merkmalen von Vkd3d 1.2 gehören:

  • Die Bereitschaft der Bibliothek libvkd3d-shader zur Verwendung in Drittanbieterprojekten.
  • Unterstützung für Tessellations-Shader.
  • Unterstützung für die Umwandlung, Serialisierung und Deserialisierung von Root-Signaturen (vkd3d_serialize_versioned_root_signature() und vkd3d_create_versioned_root_signature_deserializer()).
  • Unterstützung für Streaming-Ausgaben.
  • Implementierung vieler zuvor nicht verfügbarer Funktionen von Direct3D 12, einschließlich Unterstützung für Multisampling, Ressourcenreservierung,
    indirektes indiziertes Rendering, Tiefenscanning ohne Pixel-Shader, gleichzeitigen Zugriff auf Ressourcen aus verschiedenen Befehlswarteschlangen und Nullansichten (Null-views).
  • Umgebungsvariablen hinzugefügt: VKD3D_CONFIG zur Festlegung von Optionen zur Änderung des Verhaltens von libvkd3d und VKD3D_VULKAN_DEVICE zur Überschreibung des Geräts für die Vulkan-API.
  • Unterstützung von Shader-Anweisungen bufinfo,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    sample_b,
    sample_d,
    sample_info,
    samplepos.

Quelle: opennet.ru

60GB SSD 8Gb DDR4