Standardul grafic Vulkan 1.2 a fost publicat

Consorțiul Khronos, care se ocupă cu dezvoltarea standardelor grafice,
a publicat specificația Vulkan 1.2, care definește API-ul pentru accesul la capabilitățile grafice și de calcul ale GPU-ului. Noua specificație a inclus corecțiile acumulate în decursul a doi ani și extensii. Conducătorii care suportă noua versiune Vulkan sunt deja au lansat companiile Intel, AMD, ARM, Imagination Technologies și NVIDIA. În Mesa, suportul pentru Vulkan 1.2 este oferit pentru driverii RADV (plăci AMD) și ANV (Intel). Suportul pentru Vulkan 1.2 este de asemenea implementat în debuggerele RenderDoc 1.6, LunarG Vulkan SDK și setul de exemple Vulkan-Samples.

Principalele noutăți:

  • Implementarea limbajului de programare a shaderelor HLSL , dezvoltat de Microsoft pentru DirectX, a fost adusăla stadiul de pregătire pentru utilizare generală. Suportul HLSL în Vulkan oferă posibilitatea utilizării aceleași shader HLSL în aplicații bazate pe Vulkan și DirectX, precum și simplifică traducerea din HLSL în SPIR-V. Se recomandă utilizarea compilatorului standard
    DXC, care a fost deschis de Microsoft în 2017 și se bazează pe tehnologia LLVM. Suportul Vulkan este implementat printr-un backend separat, permițând traducerea HLSL în reprezentarea intermediară a shaderelor SPIR-V. Implementarea include nu doar toate capabilitățile integrate
    HLSL, inclusiv tipurile matematice, fluxurile de control, funcțiile, mulțimile, tipurile de resurse, spațiile de nume, Shader Model 6.2, structuri și metode, ci și permite utilizarea extensiilor specifice pentru Vulkan, cum ar fi VKRay de la NVIDIA. În modul HLSL pe Vulkan, au fost reușite jocuri precum Destiny 2, Red Dead Redemption II, Assassin’s Creed Odyssey și Tomb Raider.

    Standardul grafic Vulkan 1.2 a fost publicat
  • Specificația SPIR-V 1.5, care definește o reprezentare intermediară universală pentru toate platformele a shaderelor, care poate fi aplicată atât pentru grafică, cât și pentru calcul paralel.
    SPIR-V presupune alocarea unei faze separate de compilare a shaderelor în reprezentarea intermediară, ceea ce permite crearea de frontend-uri pentru diverse limbaje de programare de nivel înalt. Pe baza diferitelor implementări de nivel înalt, este generat un cod intermediar unificat care poate fi utilizat de driverele OpenGL, Vulkan și OpenCL fără a utiliza un compilator încorporat pentru shadere.

    Standardul grafic Vulkan 1.2 a fost publicat
  • În API-ul principal Vulkan sunt incluse 23 de extensii, care au permis creșterea performanței, îmbunătățirea calității vizualizării și simplificarea dezvoltării. Printre extensiile adăugate se numără:
    • Semaforele cronologice (Timeline semaphore), unificatoare de sincronizări cu gazda și cozile de dispozitive (permite utilizarea unui singur primitiv pentru sincronizarea bidirecțională între dispozitiv și gazdă, fără a folosi primitive separate VkFence și VkSemaphore). Noile semafoare sunt reprezentate printr-o valoare monotonică în creștere de 64 de biți, care poate fi urmărită și actualizată în mai multe thread-uri.
      Standardul grafic Vulkan 1.2 a fost publicat
    • Posibilitatea utilizării în shadere a tipurilor numerice cu precizie redusă;
    • O variantă compatibilă cu HLSL pentru aranjamentul memoriei;
    • Resursele nesociate (bindless), care elimină limitarea numărului de resurse disponibile pentru shadere prin utilizarea unui spațiu virtual comun de memorie a sistemului și de memorie GPU;
    • Modelul formal de memorie, care definește cum pot accesa thread-urile executate în paralel datele comune și operațiunile de sincronizare;
    • Indexarea descriptorilor pentru reutilizarea descriptorilor de aranjamente în mai multe shadere;
    • Referințe la buffer.

    Lista completă a extensiilor adăugate:

  • A fost adăugat peste 50 de noi structuri și 13 funcții;
  • Au fost pregătite variante scurtate ale specificației pentru platformele țintă standard, simplificând utilizarea pe platforme care nu suportă încă toate extensiile, permițând utilizarea fără activarea selectivă a capacităților de bază ale API-ului Vulkan.
  • S-a continuat lucrul la proiectul de asigurare a portabilității cu alte API grafice. De exemplu, în Vulkan au fost propuse extensii care permit translația OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) și DirectX (DXVK, vkd3d) prin API-ul Vulkan, precum și, invers, pentru a asigura funcționarea Vulkan pe platforme care nu au suport nativ (gfx-rs și Ashes pentru a funcționa deasupra OpenGL și DirectX, MoltenVK și gfx-rs pentru a funcționa deasupra Metal).
    Pentru a îmbunătăți compatibilitatea cu DirectX și HLSL, au fost adăugate extensii
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts, precum și funcționalități specifice HLSL implementate în SPIR-V.

Planurile de viitor includ dezvoltarea extensiilor pentru învățarea automată, trasarea razelor, codificarea și decodificarea video, suportul pentru VRS (shading variabil) și shader-e Mesh.

Reamintim că API-ul Vulkan este remarcabilă simplifică radical driverele, mută generarea comenzilor GPU în partea aplicației, permite conectarea unor straturi de depanare, unifică API-ul pentru diferite platforme și utilizează o reprezentare intermediară precompilată a codului pentru execuția pe GPU. Pentru a asigura performanță ridicată și previzibilitate, Vulkan oferă aplicațiilor instrumente pentru gestionarea directă a operațiunilor GPU și suport încorporat pentru procesarea multi-threaded a comenzilor GPU, minimizând cheltuielile suplimentare cauzate de driver, iar capacitățile implementate în driver devin semnificativ mai simple și mai previzibile. De exemplu, operațiuni precum gestionarea memoriei și tratamentul erorilor, implementate în OpenGL în driver, sunt mutate în nivelul aplicației în Vulkan.

Vulkan acoperă toate platformele disponibile și oferă un API comun pentru sisteme desktop, mobile și Web, permițând utilizarea unui API unificat pentru diferite procesoare grafice și domenii de aplicare. Datorită arhitecturii multi-strat a Vulkan, care presupune crearea de instrumente compatibile cu orice GPU, producătorii de hardware pot utiliza instrumente standard pentru verificarea codului, depanare și profilare în timpul dezvoltării. Pentru crearea shader-elor, este oferită o nouă reprezentare intermediară portabilă SPIR-V, bazată pe LLVM și folosind tehnologii de bază comune cu OpenCL. Pentru gestionarea dispozitivelor și a ecranelor, Vulkan oferă o interfață WSI (Integritatea Sistemului de Feronă), care rezolvă aproximativ aceleași probleme ca EGL în OpenGL ES. Suportul pentru WSI este disponibil din start în Wayland - toate aplicațiile care utilizează Vulkan pot fi lansate în mediul serverelor Wayland nemodificate. Capacitatea de a funcționa prin WSI este asigurată și pentru Android, X11 (cu DRI3), Windows, Tizen, macOS și iOS.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster