Το έργο Wine κυκλοφόρησε το Vkd3d 1.3 με υλοποίηση Direct3D 12

Μετά από ενάμιση χρόνο ανάπτυξης, το έργο Wine δημοσίευσε την κυκλοφορία του πακέτου vkd3d 1.3 με υλοποίηση Direct3D 12 που λειτουργεί μέσω μετάδοσης κλήσεων στο Vulkan graphics API. Το πακέτο περιλαμβάνει βιβλιοθήκες libvkd3d με υλοποιήσεις Direct3D 12, libvkd3d-shader με μεταφραστή μοντέλων shader 4 και 5 και libvkd3d-utils με λειτουργίες για την απλοποίηση της μεταφοράς εφαρμογών Direct3D 12, καθώς και ένα σύνολο παραδειγμάτων επίδειξης, συμπεριλαμβανομένης μιας θύρας του glxgears στο Direct3D 12. Ο κώδικας του έργου διανέμεται με άδεια χρήσης σύμφωνα με το LGPLv2.1.

Η βιβλιοθήκη libvkd3d υποστηρίζει τις περισσότερες δυνατότητες του Direct3D 12, συμπεριλαμβανομένων γραφικών και υπολογιστικών εγκαταστάσεων, ουρές και λίστες εντολών, λαβές και λαβές σωρού, υπογραφές ρίζας, πρόσβαση εκτός σειράς, δειγματοληψίες, υπογραφές εντολών, σταθερές ρίζας, έμμεση απόδοση, εκκαθάριση μεθόδων *( ) και Αντιγραφή*().

Στο libvkd3d-shader, υλοποιείται η μετάφραση του bytecode των μοντέλων shader 4 και 5 σε μια ενδιάμεση αναπαράσταση SPIR-V. Υποστηρίζονται σκίαστρες Vertex, pixel, tessellation, compute και απλής γεωμετρίας, σειριοποίηση υπογραφής ρίζας και deserialization. Οι οδηγίες Shader περιλαμβάνουν αριθμητικές, ατομικές και bit λειτουργίες, σύγκριση και τελεστές ελέγχου ροής δεδομένων, δειγματοληψία, συλλογή και φόρτωση εντολών, λειτουργίες πρόσβασης χωρίς σειρά (UAV, Unordered Access View).

Μεταξύ των πιο σημαντικών καινοτομιών στο Vkd3d 1.3 είναι:

  • Προστέθηκε αρχική υποστήριξη για μεταγλώττιση και προεπεξεργασία shader σε HLSL (High-Level Shader Language), που παρέχεται ξεκινώντας από το DirectX 9.0.
  • Προστέθηκε υποστήριξη για πίνακες περιγραφικών που ορίζονται στο μοντέλο shader 5.1.
  • Παρέχει υποστήριξη για λειτουργίες κινητής υποδιαστολής διπλής ακρίβειας σε shaders, έμμεση διευθυνσιοδότηση για shaders tessellation, εξαγωγή στένσιλ από shaders, έναν "ακριβή" τροποποιητή shader και καθολικά εμπόδια στους πόρους μνήμης.
  • Έχει υλοποιηθεί η δυνατότητα αποσυναρμολόγησης των Shader Direct3D από bytecode σε αναπαράσταση συναρμολόγησης.
  • Προστέθηκε υποστήριξη για την ανάλυση της παλιάς μορφής bytecode Direct3D που χρησιμοποιείται στα μοντέλα σκίασης Direct3D 1, 2 και 3.
  • Το libvkd3d προσθέτει χαρακτηριστικά του Direct3D 12, όπως υπογραφές root, μετρητές προβολής εκτός σειράς, λογικούς τελεστές συγχώνευσης για έξοδο και λειτουργία διεύθυνσης υφής mirror_once. Προστέθηκε δομή vkd3d_host_time_domain_info.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο