Grafiken Standard Vulkan 1.3 publizéiert

No zwee Joer Aarbecht huet d'Grafikstandards Konsortium Khronos d'Vulkan 1.3 Spezifizéierung publizéiert, déi eng API definéiert fir Zougang zu de Grafiken an d'Computerfäegkeete vu GPUs ze definéieren. Déi nei Spezifizéierung enthält Korrekturen an Extensiounen, déi iwwer zwee Joer accumuléiert sinn. Et gëtt bemierkt datt d'Ufuerderunge vun der Vulkan 1.3 Spezifizéierung fir OpenGL ES 3.1 Klass Grafikausrüstung entworf sinn, déi d'Ënnerstëtzung fir déi nei Grafik API an all GPUs garantéieren déi Vulkan 1.2 ënnerstëtzen. D'Vulkan SDK Tools sinn geplangt fir Mëtt Februar publizéiert ze ginn. Zousätzlech zu der Haaptspezifikatioun ass et geplangt fir zousätzlech Extensiounen fir Mid-Range an High-End mobilen an Desktop-Geräter ze bidden, déi als Deel vun der "Vulkan Milestone" Editioun ënnerstëtzt ginn.

Zur selwechter Zäit gëtt e Plang presentéiert fir d'Ënnerstëtzung fir déi nei Spezifizéierung an zousätzlech Extensiounen an Grafikkaarten an Apparat Chauffeuren ëmzesetzen. Intel, AMD, ARM an NVIDIA preparéieren d'Produkter déi Vulkan 1.3 ënnerstëtzen. Zum Beispill huet AMD ugekënnegt datt et geschwënn Vulkan 1.3 an der AMD Radeon RX Vega Serie vu Grafikkaarten ënnerstëtzen, wéi och an all Kaarten baséiert op der AMD RDNA Architektur. NVIDIA preparéiert sech fir Treiber mat Ënnerstëtzung fir Vulkan 1.3 fir Linux a Windows ze publizéieren. ARM wäert Ënnerstëtzung fir Vulkan 1.3 op Mali GPUs addéieren.

Haaptinnovatiounen:

  • Ënnerstëtzung fir vereinfacht Rendering Passë (Streamlining Render Passes, VK_KHR_dynamic_rendering) gouf implementéiert, wat Iech erlaabt Rendering unzefänken ouni Rendering Passen a Framebuffer Objeten ze kreéieren.
  • Nei Extensiounen goufen bäigefüügt fir d'Gestioun vun der Grafik Pipeline Compilatioun ze vereinfachen (Pipeline, eng Rei vun Operatiounen déi Vektorgrafik Primitiv an Texturen an Pixel Representatioune verwandelt).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - addéiere zousätzlech dynamesch Staaten fir d'Zuel vun de kompiléierten an ugeschlossene Staatsobjekter ze reduzéieren.
    • VK_EXT_pipeline_creation_cache_control - Bitt fortgeschratt Kontrollen iwwer wéini a wéi Pipelines kompiléiert ginn.
    • VK_EXT_pipeline_creation_feedback - Gitt Informatioun iwwer kompiléiert Pipelines fir Profiléierung an Debugging méi einfach ze maachen.
  • Eng Zuel vu Funktiounen goufe vun fakultativ op obligatoresch transferéiert. Zum Beispill, d'Ëmsetzung vu Puffer Referenzen (VK_KHR_buffer_device_address) an de Vulkan Gedächtnismodell, deen definéiert wéi concurrent Threads Zougang zu gemeinsame Daten a Synchroniséierungsoperatioune kréien, sinn elo obligatoresch.
  • Fine-grained Ënnergrupp Kontroll (VK_EXT_subgroup_size_control) gëtt sou datt Ubidder Ënnerstëtzung fir MÉI Ënnergrupp Gréissten bidden kann an Entwéckler kënnen d'Gréisst wielt se brauchen.
  • D'VK_KHR_shader_integer_dot_product Extensioun gouf zur Verfügung gestallt, déi benotzt ka ginn fir d'Performance vu Maschinnléiere Kaderen ze optimiséieren dank der Hardware Beschleunigung vu Punktproduktoperatiounen.
  • Am Ganzen sinn 23 nei Expansioune mat abegraff:
    • 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
  • Dobäigesat en neien Objet Typ VkPrivateDataSlot. 37 nei Kommandoen a méi wéi 60 Strukture goufen ëmgesat.
  • D'SPIR-V 1.6 Spezifizéierung gouf aktualiséiert fir eng Zwëschen Shader Representatioun ze definéieren déi universell fir all Plattformen ass a ka fir béid Grafiken a Parallel Computing benotzt ginn. SPIR-V involvéiert d'Trennung vun enger separater Shader-Kompilatiounsphase an eng Zwëschenvertriedung, déi Iech erlaabt Frontends fir verschidde High-Level Sproochen ze kreéieren. Baséierend op verschidden High-Level Implementatiounen gëtt en eenzegen Zwëschencode getrennt generéiert, dee vun OpenGL, Vulkan an OpenCL Treiber benotzt ka ginn ouni den agebaute Shader Compiler ze benotzen.
  • D'Konzept vun Onbedenklechkeet Profiler gëtt proposéiert. Google ass deen éischten deen e Baseline Profil fir d'Android Plattform verëffentlecht, wat et méi einfach mécht den Niveau vun der Ënnerstëtzung fir fortgeschratt Vulkan Fäegkeeten op engem Apparat iwwer d'Vulkan 1.0 Spezifizéierung ze bestëmmen. Fir déi meescht Geräter kann Profilsupport geliwwert ginn ouni OTA Updates z'installéieren.

Loosst eis drun erënneren datt d'Vulkan API bemierkenswäert ass fir seng radikal Vereinfachung vun de Chauffeuren, den Transfer vun der Generatioun vu GPU Kommandoen op d'Applikatioun Säit, d'Fäegkeet fir Debugging Schichten ze verbannen, d'Vereenegung vun der API fir verschidde Plattformen an d'Benotzung vun engem virkompiléierten Tëschenzäit Representatioun vu Code fir Ausféierung op der GPU Säit. Fir héich Leeschtung an Prévisibilitéit ze garantéieren, bitt Vulkan Uwendungen mat direktem Kontroll iwwer GPU Operatiounen an natierlesch Ënnerstëtzung fir GPU Multi-Threading, wat de Chauffer Overhead miniméiert an d'Fähigkeiten op der Chauffersäit vill méi einfach a méi prévisibel mécht. Zum Beispill, Operatiounen wéi Erënnerung Gestioun a Feeler Ëmgank, an OpenGL op der Chauffer Säit ëmgesat, ginn op d'Applikatioun Niveau am Vulkan geplënnert.

Vulkan spant all verfügbare Plattformen a bitt eng eenzeg API fir Desktop, Handy a Web, wat et erlaabt eng gemeinsam API iwwer verschidde GPUs an Uwendungen ze benotzen. Dank Vulkan's Multi-Layer Architektur, dat heescht Tools déi mat all GPU funktionnéieren, OEMs kënnen Industrie-Standard Tools fir Code Iwwerpréiwung, Debugging a Profiléierung während der Entwécklung benotzen. Fir Shaders ze kreéieren, gëtt eng nei portabel Zwëschenvertriedung, SPIR-V, proposéiert, baséiert op LLVM a deelt Kärtechnologien mat OpenCL. Fir Geräter a Bildschirmer ze kontrolléieren, bitt Vulkan d'WSI (Window System Integration) Interface, déi ongeféier déiselwecht Probleemer wéi EGL an OpenGL ES léist. WSI Support ass verfügbar aus der Këscht am Wayland - all Uwendungen déi Vulkan benotzen kënnen an engem Ëmfeld vun onmodifizéierten Wayland Server lafen. D'Fäegkeet iwwer WSI ze schaffen ass och fir Android, X11 (mat DRI3), Windows, Tizen, macOS an iOS geliwwert.

Source: opennet.ru

Setzt e Commentaire