Η κοινοπραξία Khronos έχει αναλάβει την ανάπτυξη του μεταγλωττιστή shader ανοιχτού κώδικα Slang

Компания NVIDIA передала язык шейдеров Slang и связанный с ним компилятор под покровительство консорциума Khronos, занимающегося разработкой графических стандартов. Предполагается, что разработка проекта Slang на независимой площадке Khronos позволит привлечь в проект новых участников. Язык создан как совместный проект NVIDIA и ведущих университетов США (Университет Карнеги-Меллона, Стэнфордфордский университет, Массачусетский технологический институт, Калифорнийский университет в Сан-Диего и Вашингтонский университет). О поддержке нового совместного проекта заявили компании Autodesk, Adobe, id Software, Igalia и Valve. Код компилятора написан на языке C++ и открыт под лицензией Apache 2.0. Компилятором поддерживаются платформы Linux, Windows, macOS и WebAssembly.

Η σύνταξη του Slang μοιάζει πολύ με το HLSL του Direct3D και είναι αξιοσημείωτη για την υποστήριξή του για modules, γενικά και διεπαφές για την απλοποίηση της συντήρησης και ανάπτυξης μεγάλων βάσεων κώδικα, καθώς και για την εστίασή του στην επίτευξη μέγιστης απόδοσης και χρήσης σε εφαρμογές απόδοσης σε πραγματικό χρόνο. Οι πρόσθετες λειτουργίες περιλαμβάνουν υποστήριξη για επεκτάσεις για τη χρήση σκίαστρων γραφικών για υπολογισμούς που σχετίζονται με τη μηχανική εκμάθηση και την αυτόματη διαφοροποίηση.

Ο μεταγλωττιστής έχει αναπτυχθεί σύμφωνα με το παράδειγμα - "γράψτε ένα shader μία φορά, εκτελέστε οπουδήποτε" και σας επιτρέπει να μετατρέψετε shader γραμμένους σε Slang, HLSL (High-Level Shader Language) και GLSL (OpenGL Shading Language) σε μια αναπαράσταση για το Direct3D 11 γραφικά API /12, Vulkan, Metal, OpenGL, WebGPU, OptiX και CUDA, καθώς και με δυνατότητα εγγενούς κώδικα τρέχει σε κανονική CPU. Εκτός από τη μεταγλώττιση των shaders σε μια δυαδική αναπαράσταση, το Slang σάς επιτρέπει να δημιουργείτε τον πηγαίο κώδικα κειμένου εξόδου σε C++, MSL (Metal Shading Language) και CUDA, το οποίο διατηρεί τα αρχικά ονόματα αναγνωριστικών και τη δομή κλήσεων.

Εκτός από τη γλώσσα Slang, ο μεταγλωττιστής μπορεί να χρησιμοποιηθεί για τη μεταγλώττιση του μεγαλύτερου μέρους του υπάρχοντος κώδικα HLSL χωρίς να κάνει αλλαγές σε αυτόν ή να τον περιορίσει σε μικρές αλλαγές (για παράδειγμα, η Valve μπόρεσε να μεταγλωττίσει όλους τους shaders HLSL του παιχνιδιού Source 2 σε Slang, αλλάζοντας μόνο 10 γραμμές κώδικα). Μια ξεχωριστή ενότητα παρέχεται για τη μεταγλώττιση του GLSL, που υποστηρίζει τις περισσότερες από τις εσωτερικές λειτουργίες και τα συντακτικά στοιχεία του GLSL. Κατά τη μεταγλώττιση, μπορείτε να διαμορφώσετε τις παραμέτρους του παραγόμενου κώδικα, για παράδειγμα, μπορείτε να δημιουργήσετε τόσο τον πιο φορητό κώδικα όσο και κώδικα που χρησιμοποιεί νέες δυνατότητες από τις πιο πρόσφατες προδιαγραφές Direct3D και Vulkan.

Επιπλέον, παρουσιάστηκε μια νέα έκδοση του Slang 2024.14.5, η οποία εισήγαγε χαρακτηριστικά όπως ο νέος τύπος Atomic για την εκτέλεση ατομικών λειτουργιών, την έκφραση "where", τη διεπαφή IFunc για τη σύνταξη γενικών συναρτήσεων, τους τύπους πλειάδας για την αποθήκευση συλλογών τιμών με διαφορετικούς τύπους, τους γενικούς τύπους με μεταβλητό αριθμό παραμέτρων, την υποστήριξη Unicode, τα backends για Metal και τον σκιαδιστή WGSL γλώσσες (χρησιμοποιούνται στο WebGPU). Παρουσιάζεται μια υλοποίηση ενός ραστεροποιητή γραμμένου σε αργκό που υποστηρίζει την τεχνική Gaussian Splatting 3D rendering. Ένα διαδικτυακό περιβάλλον έχει προετοιμαστεί για πειράματα και μεταγλώττιση από το πρόγραμμα περιήγησης.

Πηγή: opennet.ru

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster