Den grafiske standard Vulkan 1.3 er offentliggjort

Efter to års arbejde har Khronos-konsortiet, der udvikler grafiske standarder, offentliggjort specifikationen Vulkan 1.3, som definerer en API til adgang til grafiske og beregningsmæssige egenskaber ved GPU'er. Den nye specifikation har taget højde for de rettelser og udvidelser, der er blevet indsamlet over de sidste to år. Det bemærkes, at kravene til specifikationen Vulkan 1.3 er designet til grafisk hardware i klasse med OpenGL ES 3.1, hvilket muliggør understøttelse af den nye grafiske API på alle GPU'er, der understøtter Vulkan 1.2. Vulkan SDK er planlagt til offentliggørelse i midten af februar. Udover hovedspecifikationen planlægges det at tilbyde yderligere udvidelser til mobile og stationære enheder i mellem- og højklasse, som vil blive understøttet i udgaven "Vulkan Milestone".

Samtidig er der præsenteret en plan for implementering af støtte til den nye specifikation og yderligere udvidelser i grafikkort og enhedsdrivere. Produkter med støtte for Vulkan 1.3 forberedes til lancering af virksomheder som Intel, AMD, ARM og NVIDIA. For eksempel har AMD meddelt, at de snart vil tilbyde støtte for Vulkan 1.3 i serien af grafikkort AMD Radeon RX Vega samt i alle kort baseret på AMD RDNA-arkitekturen. NVIDIA forbereder sig på at offentliggøre drivere med støtte for Vulkan 1.3 til Linux og Windows. ARM vil tilføje støtte for Vulkan 1.3 i deres Mali GPU'er.

Hovednyhederne:

  • Understøttelse af strømlinede render-pas (Streamlining Render Passes, VK_KHR_dynamic_rendering) er implementeret, hvilket muliggør start af rendering uden at skulle oprette render-pass og framebuffer-objekter.
  • Nye udvidelser er blevet tilføjet for at forenkle håndteringen af kompilering af grafikpipeline (pipeline, et sæt operationer, der omdanner vektorbaserede grafiske primitiva og teksturer til pixelrepræsentation).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 — tilføjer yderligere dynamiske tilstande for at reducere antallet af compilable og vedhæftede tilstandsobjekter.
    • VK_EXT_pipeline_creation_cache_control — giver avancerede værktøjer til at styre hvornår og hvordan man kompilerer pipelines.
    • VK_EXT_pipeline_creation_feedback — giver information om de kompilerede pipelines for at forenkle profiling og fejlfinding.
  • En række funktioner er blevet flyttet fra valgfri til obligatoriske. For eksempel er implementeringen af bufferadresser (VK_KHR_buffer_device_address) og Vulkan hukommelsestilstand blevet obligatorisk, hvilket definerer, hvordan parallelle tråde kan få adgang til delt data og synkroniseringsoperationer.
  • Der er givet værktøjer til præcis kontrol af undergrupper (VK_EXT_subgroup_size_control), hvilket gør det muligt for producenter at tilbyde støtte til forskellige størrelser af undergrupper, og udviklere kan vælge den ønskede størrelse.
  • Der er givet en udvidelse VK_KHR_shader_integer_dot_product, som kan bruges til at optimere ydeevnen af machine learning-frameworks ved hjælp af hardwareacceleration af skalarproduktionsoperationer.
  • Alt i alt er der inkluderet 23 nye udvidelser:
    • VK_KHR_copy_commands2
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_maintenance4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_synchronization2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formats
    • VK_EXT_extended_dynamic_state
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_image_robustness
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_private_data
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_subgroup_size_control
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formats
  • En ny type objekter, VkPrivateDataSlot, er blevet tilføjet. Der er implementeret 37 nye kommandoer og mere end 60 strukturer.
  • Specifikationen for SPIR-V 1.6 er blevet opdateret, hvilket definerer et universelt mellemliggende repræsentation af shaders, der kan anvendes både til grafik og til parallel computing. SPIR-V indebærer tildeling af en separat fase til kompilering af shaders til det mellemliggende repræsentation, hvilket muliggør oprettelsen af frontend'er til forskellige høj-niveau sprog. Baseret på forskellige høj-niveau implementeringer genereres en samlet mellemliggende kode, som kan bruges af drivere til OpenGL, Vulkan og OpenCL uden brug af indbygget shaderkompilator.
  • Konceptet for kompatibilitetsprofiler er blevet foreslået. Google har som det første forberedt en grundlæggende profil (baseline profile) for Android-platformen, som vil forenkle definitionen af støtte på enheden til de udvidede muligheder i Vulkan, der går ud over specifikationen af Vulkan 1.0. For de fleste enheder vil støtten til profilen kunne sikres uden installation af OTA-opdateringer.

Vi mindes, at Vulkan API er bemærkelsesværdig for sin radikale forenkling af drivere, hvor generationen af GPU-kommandoer flyttes til applikationssiden, muligheden for at tilføje fejlsøgningslag, ensartet API til forskellige platforme og anvendelsen af forkompileret mellemliggende kode til udførelse på GPU-siden. For at sikre høj ydeevne og forudsigelighed giver Vulkan applikationer værktøjer til direkte at styre GPU-operationer og indbygget understøttelse af multitrådet håndtering af GPU-kommandoer, hvilket minimerer de omkostninger, der pålægges af driveren, mens de funktioner, der realiseres på driverens side, bliver betydeligt forenklede og mere forudsigelige. For eksempel bliver operationer som hukommelsesstyring og fejlhåndtering, der udføres i OpenGL på driverens side, i Vulkan flyttet til applikationsniveauet.

Vulkan dækker alle tilgængelige platforme og tilbyder et enkelt API til desktop-, mobil- og websystemer, hvilket gør det muligt at bruge en fælles API til forskellige grafikprocessorer og anvendelsesområder. Takket være den lagdelte arkitektur i Vulkan, der indebærer oprettelsen af værktøjer, der arbejder med alle GPU'er, kan hardwareproducenter anvende standardværktøjer til kodeverifikation, fejlsøgning og profilering under udviklingen. For oprettelsen af shaders tilbydes en ny bærbar mellemrepræsentation SPIR-V, baseret på LLVM og bruger grundlæggende teknologier, der deles med OpenCL. Til styring af enheder og skærme i Vulkan tilbydes et WSI (Window System Integration)-interface, der løser omtrent de samme opgaver som EGL i OpenGL ES. Understøttelse af WSI er tilgængelig som standard i Wayland - alle applikationer, der bruger Vulkan, kan køre i et uændret miljø. servere Wayland. Muligheden for at arbejde via WSI er også understøttet for Android, X11 (med DRI3), Windows, Tizen, macOS og iOS.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster