Στο GTK προστέθηκαν νέες μηχανές απόδοσης για OpenGL και Vulkan

Οι προγραμματιστές της βιβλιοθήκης GTK ανακοίνωσαν τη διαθεσιμότητα δύο νέων μηχανών απόδοσης - "ngl" και "vulkan", χρησιμοποιώντας τα API γραφικών OpenGL (GL 3.3+ και GLES 3.0+) και Vulkan. Νέοι κινητήρες περιλαμβάνονται στην πειραματική έκδοση του GTK 4.13.6. Στον πειραματικό κλάδο GTK, ο κινητήρας ngl χρησιμοποιείται πλέον από προεπιλογή, αλλά εάν εντοπιστούν σημαντικά προβλήματα στον επόμενο σταθερό κλάδο 4.14, ο παλιός κινητήρας απόδοσης "gl" θα επιστραφεί.

Οι νέοι κινητήρες τοποθετούνται ως ενοποιημένοι και συναρμολογούνται από μια ενιαία βάση κωδικών. Η ουσία της ενοποίησης είναι ότι το Vulkan API χρησιμοποιείται ως βάση, πάνω από το οποίο έχει δημιουργηθεί ένα ξεχωριστό επίπεδο αφαίρεσης για το OpenGL, λαμβάνοντας υπόψη τις διαφορές μεταξύ OpenGL και Vulkan. Αυτή η προσέγγιση κατέστησε δυνατή τη χρήση μιας κοινής υποδομής και στις δύο μηχανές για την επεξεργασία του γραφήματος σκηνής, των μετασχηματισμών, της προσωρινής αποθήκευσης υφών και των γλυφών. Η ενοποίηση απλοποίησε επίσης σημαντικά τη διατήρηση της βάσης κωδικών και των δύο κινητήρων και τη διατήρησή τους ενημερωμένοι και συγχρονισμένοι.

Σε αντίθεση με την παλιά μηχανή gl, η οποία χρησιμοποιούσε ένα ξεχωριστό απλό shader για κάθε τύπο κόμβου απόδοσης και περιοδικά ταξινόμησε τα δεδομένα κατά την απόδοση εκτός οθόνης, οι νέοι μηχανές αντί για απόδοση εκτός οθόνης χρησιμοποιούν έναν σύνθετο shader (ubershader) που ερμηνεύει τα δεδομένα από το buffer. . Στη σημερινή της μορφή, η νέα εφαρμογή εξακολουθεί να υστερεί σε σχέση με την παλιά ως προς το επίπεδο βελτιστοποιήσεων, καθώς στο τρέχον στάδιο η κύρια εστίαση είναι η σωστή λειτουργία και η ευκολία συντήρησης.

Νέα χαρακτηριστικά που λείπουν στον παλιό κινητήρα gl:

  • Εξομάλυνση περιγράμματος - σας επιτρέπει να διατηρήσετε λεπτές λεπτομέρειες και να επιτύχετε πιο ομαλά περιγράμματα.
    Στο GTK προστέθηκαν νέες μηχανές απόδοσης για OpenGL και Vulkan
  • Σχηματισμός αυθαίρετων διαβαθμίσεων, οι οποίες μπορούν να χρησιμοποιήσουν οποιοδήποτε αριθμό χρωμάτων και αντι-αλλοίωση (στον κινητήρα gl, υποστηρίχθηκαν μόνο γραμμικές, ακτινικές και κωνικές διαβαθμίσεις με 6 χρώματα στοπ).
    Στο GTK προστέθηκαν νέες μηχανές απόδοσης για OpenGL και Vulkan
  • Κλασματική κλίμακα, η οποία σας επιτρέπει να ορίσετε μη ακέραιες τιμές κλίμακας, για παράδειγμα, όταν χρησιμοποιείτε μια κλίμακα 125% για παράθυρο 1200x800, θα εκχωρηθεί buffer 1500x1000 και όχι 2400x1600 όπως στον παλιό κινητήρα.
  • Υποστήριξη για τεχνολογία DMA-BUF για χρήση πολλαπλών GPU και εκφόρτωση μεμονωμένων λειτουργιών σε άλλη GPU.
  • Πολλοί κόμβοι απόδοσης που είχαν προβλήματα στην παλιά υλοποίηση επεξεργάζονται σωστά.

Οι περιορισμοί των νέων κινητήρων περιλαμβάνουν την έλλειψη υποστήριξης για τοποθέτηση από μη ακέραιες τιμές (κλασματική θέση) και κόμβους glshader, οι οποίοι ήταν πολύ συνδεδεμένοι με τα χαρακτηριστικά του παλιού κινητήρα και δεν ήταν πλέον απαραίτητοι μετά την προσθήκη υποστήριξης για κόμβοι με μάσκες (μάσκα) και υφές με διαφάνεια. Αναφέρεται επίσης ότι υπάρχει πιθανότητα να προκύψουν πιθανά προβλήματα με προγράμματα οδήγησης γραφικών λόγω αλλαγών στη μέθοδο εργασίας με προγράμματα οδήγησης.

Στο μέλλον, με βάση το νέο ενοποιημένο μοντέλο, δεν αποκλείεται η δημιουργία μηχανών απόδοσης που χρησιμοποιούν Metal στο macOS και DirectX στα Windows, αλλά η δημιουργία τέτοιων κινητήρων περιπλέκεται από τη χρήση άλλων γλωσσών για shaders (το "ngl Οι μηχανές "και "vulkan" χρησιμοποιούν τη γλώσσα GLSL, επομένως για το Metal και το Direct θα πρέπει είτε να αντιγράψουν shaders είτε να χρησιμοποιήσουν ένα στρώμα που βασίζεται στο κιτ εργαλείων SPIRV-Cross).

Τα μελλοντικά σχέδια περιλαμβάνουν την παροχή υποστήριξης HDR και εργαλείων για σωστή διαχείριση χρωμάτων, υποστήριξη για απόδοση διαδρομής στην πλευρά της GPU, δυνατότητα απόδοσης γλυφών, απόδοση εκτός ροής και βελτιστοποιήσεις απόδοσης για παλαιότερες συσκευές και συσκευές χαμηλής κατανάλωσης. Στη σημερινή του μορφή, η απόδοση του κινητήρα «vulkan» είναι κοντά στην απόδοση του παλιού κινητήρα «gl». Ο κινητήρας "ngl" είναι κατώτερος σε απόδοση από τον παλιό κινητήρα "gl", αλλά η διαθέσιμη απόδοση είναι επαρκής για απόδοση στα 60 ή 144 FPS. Αναμένεται ότι η κατάσταση θα αλλάξει μετά τη βελτιστοποίηση.

Πηγή: opennet.ru

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