Publicēts grafikas standarts Vulkan 1.3

Pēc divu gadu darba grafikas standartu konsorcijs Khronos ir publicējis Vulkan 1.3 specifikāciju, kas definē API, lai piekļūtu GPU grafikas un skaitļošanas iespējām. Jaunajā specifikācijā ir iekļauti divu gadu laikā uzkrātie labojumi un paplašinājumi. Tiek atzīmēts, ka Vulkan 1.3 specifikācijas prasības ir paredzētas OpenGL ES 3.1 klases grafikas iekārtām, kas nodrošinās atbalstu jaunajam grafikas API visos GPU, kas atbalsta Vulkan 1.2. Vulkan SDK rīkus plānots publicēt februāra vidū. Papildus galvenajai specifikācijai plānots piedāvāt papildu paplašinājumus vidējās un augstākās klases mobilajām ierīcēm un galddatoriem, kas tiks atbalstīti kā daļa no Vulkan Milestone izdevuma.

Vienlaikus tiek prezentēts plāns, kā ieviest atbalstu jaunajai specifikācijai un papildu paplašinājumiem grafiskajās kartēs un ierīču draiveros. Intel, AMD, ARM un NVIDIA gatavojas izlaist produktus, kas atbalsta Vulkan 1.3. Piemēram, AMD paziņoja, ka drīzumā atbalstīs Vulkan 1.3 AMD Radeon RX Vega grafisko karšu sērijā, kā arī visās kartēs, kuru pamatā ir AMD RDNA arhitektūra. NVIDIA gatavojas publicēt draiverus ar atbalstu Vulkan 1.3 operētājsistēmai Linux un Windows. ARM pievienos atbalstu Vulkan 1.3 Mali GPU.

Galvenie jauninājumi:

  • Ir ieviests atbalsts vienkāršotām renderēšanas ejām (Racionalizācijas renderēšanas gājieniem, VK_KHR_dynamic_rendering), kas ļauj sākt renderēšanu, neveidojot renderēšanas gājienus un kadru bufera objektus.
  • Ir pievienoti jauni paplašinājumi, lai vienkāršotu grafikas konveijera kompilācijas pārvaldību (konvejers, darbību kopums, kas pārvērš vektorgrafikas primitīvus un faktūras pikseļu attēlojumos).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - pievienojiet papildu dinamiskos stāvokļus, lai samazinātu apkopoto un pievienoto stāvokļa objektu skaitu.
    • VK_EXT_pipeline_creation_cache_control — nodrošina uzlabotas vadīklas, kad un kā tiek kompilēti konveijeri.
    • VK_EXT_pipeline_creation_feedback — sniedz informāciju par apkopotajiem cauruļvadiem, lai atvieglotu profilēšanu un atkļūdošanu.
  • Vairākas funkcijas ir pārvietotas no izvēles uz obligātajām. Piemēram, tagad ir obligāti jāievieš bufera atsauces (VK_KHR_buffer_device_address) un Vulkan atmiņas modelis, kas nosaka, kā vienlaikus pavedieni var piekļūt koplietotiem datiem un sinhronizācijas darbībām.
  • Tiek nodrošināta sīkgraudaina apakšgrupu vadība (VK_EXT_subgroup_size_control), lai pārdevēji varētu nodrošināt atbalstu vairākiem apakšgrupu izmēriem un izstrādātāji varētu izvēlēties vajadzīgo izmēru.
  • Ir nodrošināts VK_KHR_shader_integer_dot_product paplašinājums, ko var izmantot, lai optimizētu mašīnmācīšanās ietvaru veiktspēju, pateicoties punktu produktu darbību aparatūras paātrinājumam.
  • Kopumā ir iekļauti 23 jauni paplašinājumi:
    • VK_KHR_copy_commands2
    • VK_KHR_dinamiskā_renderēšana
    • VK_KHR_format_feature_flags2
    • VK_KHR_apkope4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_sinhronizācija2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formāti
    • 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_privatie_dati
    • 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_instrumentu_informācija
    • VK_EXT_ycbcr_2plane_444_formats
  • Pievienots jauns objekta tips VkPrivateDataSlot. Tika ieviestas 37 jaunas komandas un vairāk nekā 60 struktūras.
  • SPIR-V 1.6 specifikācija ir atjaunināta, lai definētu starpposma ēnotāju attēlojumu, kas ir universāls visām platformām un ko var izmantot gan grafikai, gan paralēlai skaitļošanai. SPIR-V ietver atsevišķas ēnotāju kompilācijas fāzes atdalīšanu starpposma attēlojumā, kas ļauj izveidot priekšgalus dažādām augsta līmeņa valodām. Pamatojoties uz dažādām augsta līmeņa implementācijām, atsevišķi tiek ģenerēts viens starpkods, ko var izmantot OpenGL, Vulkan un OpenCL draiveri, neizmantojot iebūvēto ēnotāju kompilatoru.
  • Tiek piedāvāta saderības profilu koncepcija. Google ir pirmais, kas izlaida bāzes profilu Android platformai, kas atvieglos Vulkan uzlaboto iespēju atbalsta līmeņa noteikšanu ierīcē, kas pārsniedz Vulkan 1.0 specifikāciju. Lielākajai daļai ierīču profilu atbalstu var nodrošināt, neinstalējot OTA atjauninājumus.

Atgādināsim, ka Vulkan API ir ievērojama ar savu radikālo draiveru vienkāršošanu, GPU komandu ģenerēšanas pārnešanu uz lietojumprogrammas pusi, spēju savienot atkļūdošanas slāņus, API unifikāciju dažādām platformām un iepriekš kompilētas programmas izmantošanu. koda starpposma attēlojums izpildei GPU pusē. Lai nodrošinātu augstu veiktspēju un paredzamību, Vulkan nodrošina lietojumprogrammas ar tiešu GPU darbību kontroli un vietējo atbalstu GPU vairāku pavedienu veidošanai, kas samazina draivera izmaksas un padara draivera puses iespējas daudz vienkāršākas un paredzamākas. Piemēram, tādas darbības kā atmiņas pārvaldība un kļūdu apstrāde, kas ir ieviestas OpenGL draivera pusē, tiek pārvietotas uz lietojumprogrammas līmeni Vulkan.

Vulkan aptver visas pieejamās platformas un nodrošina vienu API galddatoriem, mobilajām ierīcēm un tīmeklim, ļaujot izmantot vienu kopīgu API vairākos GPU un lietojumprogrammās. Pateicoties Vulkan daudzslāņu arhitektūrai, kas nozīmē rīkus, kas darbojas ar jebkuru GPU, OEM var izmantot nozares standarta rīkus koda pārskatīšanai, atkļūdošanai un profilēšanai izstrādes laikā. Lai izveidotu ēnotājus, tiek piedāvāts jauns pārnēsājams starpposma attēlojums SPIR-V, kas balstīts uz LLVM un koplietojot galvenās tehnoloģijas ar OpenCL. Ierīču un ekrānu vadīšanai Vulkan piedāvā WSI (Window System Integration) saskarni, kas atrisina aptuveni tādas pašas problēmas kā EGL OpenGL ES. WSI atbalsts ir pieejams Wayland jau no kastes — visas lietojumprogrammas, kas izmanto Vulkan, var darboties nemodificētu Wayland serveru vidē. Iespēja strādāt, izmantojot WSI, tiek nodrošināta arī operētājsistēmām Android, X11 (ar DRI3), Windows, Tizen, macOS un iOS.

Avots: opennet.ru

Pievieno komentāru