Το έργο Wine δημοσίευσε το Vkd3d 1.7 με υλοποίηση Direct3D 12

Το έργο Wine δημοσίευσε την κυκλοφορία του πακέτου vkd3d 1.7 με μια υλοποίηση του 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):
    • Προστέθηκε η δυνατότητα κλήσης προσαρμοσμένων συναρτήσεων και χρήσης πινάκων ως παραμέτρων σε προσαρμοσμένες συναρτήσεις.
    • Προστέθηκε υποστήριξη για τις παραμέτρους SV_DispatchThreadID, SV_GroupID και SV_GroupThreadID.
    • Προστέθηκαν ενσωματωμένες συναρτήσεις all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt () , step(), transpose().
    • Προστέθηκε αρχική υποστήριξη για τύπους κινητής υποδιαστολής χαμηλής ακρίβειας όπως "min16float".
  • Σημαντικά βελτιωμένη υποστήριξη για προφίλ μοντέλων shader Direct3D 1/2/3.
  • Προστέθηκε δημόσιο API για ανάλυση (vkd3d_shader_parse_dxbc) και σειριοποίηση (vkd3d_shader_serialize_dxbc) δυαδικών δεδομένων DXBC.

Πηγή: opennet.ru

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