Është publikuar standardi grafik Vulkan 1.3.

Pas dy vjet punë, konsorciumi Khronos, i angazhuar në zhvillimin e standardeve grafike, publikoi specifikimin Vulkan 1.3, që përcakton API për qasje në mundësitë grafike dhe llogaritëse të GPU-së. Specifikimi i ri përmbledh ndryshimet dhe zgjerimet e grumbulluara në dy vitet e fundit. Kërkesat e specifikimit Vulkan 1.3 janë të dizajnuara për pajisje grafike të klasës OpenGL ES 3.1, që do të sigurojë mbështetje për API-në e re grafike në të gjitha GPU-të që mbështesin Vulkan 1.2. Vegla e zhvillimit Vulkan SDK pritet të publikohet në mes të shkurtit. Përveç specifikimit kryesor, janë planifikuar gjithashtu zgjerime shtesë për pajisje mobile dhe desktop të nivelit të mesëm dhe të lartë, mbështetja e të cilave do të realizohet brenda redaksisë 'Vulkan Milestone'.

Në të njëjtën kohë, është paraqitur një plan për implementimin e mbështetjes së specifikimit të ri dhe zgjerimeve shtesë në kartat grafike dhe driverët e pajisjeve. Produkte me mbështetje për Vulkan 1.3 po përgatiten për publikim nga kompanitë Intel, AMD, ARM dhe NVIDIA. Për shembull, kompania AMD njoftoi se do të ofrojë mbështetje për Vulkan 1.3 në serinë e kartave grafike AMD Radeon RX Vega, si dhe në të gjitha kartat e bazuara në arkitekturën AMD RDNA. Kompania NVIDIA po përgatitet të publikojë driverë me mbështetje për Vulkan 1.3 për Linux dhe Windows. Kompania ARM do të shtojë mbështetje për Vulkan 1.3 në GPU-të Mali.

Novitetet kryesore:

  • Është realizuar mbështetje për kalimet e thjeshuara të renderimit (Streamlining Render Passes, VK_KHR_dynamic_rendering), duke lejuar fillimin e renderimit pa krijimin e kalimeve të renderimit dhe objekteve të framebuffer-it.
  • Janë shtuar zgjerime të reja për thjeshtimin e menaxhimit të kompilueseve të konvejerëve grafikë (pipeline, një grup operacionesh që shndërrojnë primitive grafike vektoriale dhe tekstura në një përfaqësim pikseli).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 – shtojnë shtete dinamike shtesë për të reduktuar numrin e objekteve të gjendjes që duhet të krijohen dhe të lidhen.
    • VK_EXT_pipeline_creation_cache_control – ofron mjete të avancuara për menaxhimin e asaj çfarë dhe si të kompilohet konvejeri.
    • VK_EXT_pipeline_creation_feedback – ofron informacion mbi konvejerët e kompiluara për thjeshtimin e profilizimit dhe debug-imit.
  • Disa të gjitha mundësitë janë kaluar nga opsionale në obligatore. Për shembull, implementimi i lidhjeve të bufereve (VK_KHR_buffer_device_address) dhe modeli i memories Vulkan, i cili përcakton se si rrjedhat e ekzekutimit paralel mund të kenë akses në të dhëna të ndara dhe operacione sinkronizimi tani janë të detyrueshme.
  • Janë ofruar mjete për kontrollin e saktë të nëngrupeve (VK_EXT_subgroup_size_control), të cilat prodhuesit mund t'i ofrojnë për të mbështetur disa madhësi nëngrupesh, ndërsa zhvilluesit mund të zgjedhin madhësinë e nevojshme.
  • Ka një zgjerim VK_KHR_shader_integer_dot_product, i cili mund të përdoret për optimizimin e funksionimit të kuadrove të mësimit të makinerive, falë përshpejtimit harduerik të operacioneve të produkteve skalar.
  • Në total, janë përfshirë 23 zgjerime të reja:
    • 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
  • Një tip i ri objekti VkPrivateDataSlot është shtuar. Janë implementuar 37 komanda të reja dhe më shumë se 60 struktura.
  • Specifikimi SPIR-V 1.6 është azhurnuar, i cili përcakton një përfaqësim të përgjithshëm për të gjitha platformat të shaderëve, i cili mund të përdoret për grafikën ashtu si dhe për llogaritjet paralel. SPIR-V parashikon ndarjen e një faze të veçantë të kompilimit të shaderëve në një përfaqësim të ndërmjetëm, gjë që lejon krijimin e front-end-eve për gjuhë të ndryshme me nivel të lartë. Në bazë të implementimeve të ndryshme të nivelit të lartë, krijohet një kod i vetëm ndërmjetës që mund të përdoret nga drejtuesit e OpenGL, Vulkan dhe OpenCL pa përdorur një kompilues të integruar të shaderëve.
  • Koncepti i profileve të përshtatshmërisë është propozuar. Profilin bazik (baseline profile) për platformën Android e ka përgatitur së pari kompania Google, i cili do të lehtësojë përcaktimin në pajisje të nivelit të mbështetjes për funksionalitete të zgjeruara të Vulkan, që dalin përtej specifikimit Vulkan 1.0. Për shumicën e pajisjeve, mbështetja e profilit do të mund të sigurohet pa instaluar përditësime OTA.

Kujtojmë se API Vulkan është i njohur për thjeshtësimin radikal të drejtorëve, zhvendosjen e gjenerimit të komandave GPU në anën e aplikacionit, mundësinë e lidhjes së shtresave të debuggimit, unifikimin e API për platforma të ndryshme dhe përdorimin e paraqitjeve të përzierës së kodit të parakompozuar për ekzekutimin në anën e GPU. Për të siguruar performancë të lartë dhe parashikueshmëri, Vulkan i ofron aplikacioneve mjete për menaxhimin e drejtpërdrejtë të operacioneve GPU dhe mbështetje të integruar për përpunimin shumëfishe të komandave GPU, gjë që minimizon kostot e sidomos të shkaktuara nga drejtori, ndërsa mundësitë e realizuara në anën e drejtuesit bëhen dukshëm më të thjeshta dhe më të parashikueshme. Për shembull, operacione të tilla si menaxhimi i memories dhe trajtimi i gabimeve, të realizuara në OpenGL në anën e drejtuesit, janë transferuar në nivelin e aplikacionit në Vulkan.

Vulkan mbulon të gjitha platformat e disponueshme dhe ofron një API të vetëm për sisteme desktop, mobile dhe Web, duke lejuar përdorimin e një API të përbashkët për GPU të ndryshme dhe fusha aplikimi. Falë arkitekturës shumëfishe të Vulkan, e cila nënkupton krijimin e mjeteve që funksionojnë me çdo GPU, prodhuesit e pajisjeve mund të përdorin mjete standarde për verifikimin e kodit, debuggimin dhe profilizimin gjatë zhvillimit. Për krijimin e shaderëve, ofrohet një paraqitje portative e re SPIR-V, e bazuar në LLVM dhe që përdor teknologji të përbashkët me OpenCL. Për menaxhimin e pajisjeve dhe ekraneve në Vulkan ofrohet ndërfaqja WSI (Window System Integration), e cila zgjidh rreth të njëjtave Probleme si EGL në OpenGL ES. Mbështetja WSI është e disponueshme nga kutia në Wayland - të gjitha aplikacionet që përdorin Vulkan mund të ekzekutohen në një mjedis të paprekur. serverësh Wayland. Mundësia e punës përmes WSI është gjithashtu e siguruar për Android, X11 (me DRI3), Windows, Tizen, macOS dhe iOS.

Burimi: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster