Kompania NVIDIA transferoi gjuhën e shader-ave Slang dhe kompilatorin e lidhur nën mbrojtjen e konsorciumit Khronos, që merret me zhvillimin e standardeve grafike. Pritet që zhvillimi i projektit Slang në një platformë të pavarur Khronos tërheqë pjesëmarrës të rinj në projekt. Gjuha u krijua si një projekt i përbashkët mes NVIDIA-s dhe universiteteve kryesore të SHBA-së (Universiteti Carnegie Mellon, Universiteti i Stanfordit, Instituti Teknologjik i Masachusett-it, Universiteti i Kalifornisë në San Diego dhe Universiteti i Washingtonit). Mbështetjes për projektin e ri të përbashkët i janë bashkuar kompanitë Autodesk, Adobe, id Software, Igalia dhe Valve. Kodi i kompilatorit është shkruar në gjuhën C++ dhe është i hapur nën licencën Apache 2.0. Kompilatori mbështet platformat Linux, Windows, macOS dhe WebAssembly.
Gjuha Slang ka një sintaksë shumë të ngjashme me gjuhën HLSL, që përdoret në Direct3D, dhe është e veçantë për mbështetje modulash, gjenerikësh dhe ndërfaqesh për të lehtësuar mirëmbajtjen dhe zhvillimin e bazave të mëdha të kodit, si dhe për orientimin drejt arritjes së performancës maksimale dhe përdorimit në aplikacione që kryejnë renderimin në kohë reale. Si mundësi shtesë theksohet mbështetja për zgjerime për përdorimin e shader-eve grafike për llogaritjet që lidhen me mësimin e makinerive dhe diferencimin automatik.
Kompilatori zhvillohet sipas paradigës - "shkruaj një shader një herë, ekzekuto kudo", dhe lejon transformimin e shader-ave të shkruar në gjuhët Slang, HLSL (High-Level Shader Language) dhe GLSL (OpenGL Shading Language) në një përfaqësim për API-të grafike Direct3D 11/12, Vulkan, Metal, OpenGL, WebGPU, OptiX dhe CUDA, si dhe në kodin makinerik që mund të ekzekutohet në një CPU të zakonshëm. Përveç kompilimit të shader-ave në përfaqësimin binar, Slang lejon gjenerimin në dalje të kodit të burimit tekstual në gjuhët C++, MSL (Metal Shading Language) dhe CUDA, duke ruajtur emrat origjinalë të identifikuesve dhe strukturën e thirrjeve.
Përveç gjuhës Slang, kompilator mund të përdoret për ndërtimin e shumicës së kodit ekzistues tashmë të shkruar në gjuhën HLSL pa bërë ndonjë ndryshim të madh ose duke u kufizuar në ndryshime të vogla (për shembull, kompania Valve arriti të kompilojë në Slang të gjitha shader-at HLSL të lojës Source 2, duke ndryshuar vetëm 10 rreshta kodi). Për kompilimin e GLSL ofrohet një modul i veçantë, që mbështet shumicën e funksioneve të brendshme dhe elementeve të sintaksës GLSL. Gjatë kompilimit, parametrat e kodit të gjeneruar mund të personalizohen, për shembull, mund të krijohet si kod maksimalisht i transferueshëm ashtu edhe kod që përdor mundësitë e reja nga specifikimet e freskëta të Direct3D dhe Vulkan.
Për më tepër, është paraqitur një version i ri Slang 2024.14.5, i cili ka sjellë mundësi si një tip të ri Atomic<T> për kryerjen e operacioneve atomike, shprehjen "where", ndërfaqen IFunc për shkruajtjen e funksioneve të përgjithshme, tipet Tuple për ruajtjen e koleksioneve të vlerave me tipe të ndryshme, tipet e përgjithshme me numër të ndryshueshëm parametrash, mbështetje për Unicode, dhe backend për gjuhët e shader-ave Metal dhe WGSL (që përdoret në WebGPU). Është paraqitur një implementim i shkruar në Slang i rasterizuesit, që mbështet teknikën e renderimit 3D Gaussian Splatting. Është përgatitur një ambient online për eksperimentime dhe kompilim nga shfletuesi.
Burimi: opennet.ru
