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

Το έργο Wine δημοσίευσε την κυκλοφορία του πακέτου vkd3d 1.4 με μια υλοποίηση του 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 και απλή γεωμετρία shaders, root signature serialization και deserialization. Οι οδηγίες Shader περιλαμβάνουν αριθμητικές, ατομικές και bit λειτουργίες, σύγκριση και τελεστές ελέγχου ροής δεδομένων, δειγματοληψία, συλλογή και φόρτωση εντολών, λειτουργίες μη διατεταγμένης πρόσβασης (UAV, Unordered Access View).

Στη νέα έκδοση:

  • Έχουν γίνει πολυάριθμες βελτιώσεις στον μεταγλωττιστή shader HLSL (High-Level Shader Language) που παρέχεται από το DirectX 9.0.
  • Έχει προταθεί μια νέα υλοποίηση του Descriptor Heap, χρησιμοποιώντας την επέκταση Vulkan VK_EXT_descriptor_indexing.
  • Προστέθηκε μια νέα υλοποίηση φράχτη που βασίζεται στην επέκταση Vulkan K_KHR_timeline_semaphore.

Πηγή: opennet.ru

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