Grafiese standaard Vulkan 1.3 gepubliseer

Na twee jaar se werk het die grafiese standaarde-konsortium Khronos die Vulkan 1.3-spesifikasie gepubliseer, wat 'n API definieer vir toegang tot die grafika en rekenaarvermoëns van GPU's. Die nuwe spesifikasie sluit regstellings en uitbreidings in wat oor twee jaar opgehoop is. Daar word kennis geneem dat die vereistes van die Vulkan 1.3-spesifikasie ontwerp is vir OpenGL ES 3.1-klas grafiese toerusting, wat ondersteuning sal verseker vir die nuwe grafiese API in alle GPU's wat Vulkan 1.2 ondersteun. Die Vulkan SDK-nutsgoed word beplan om in die middel van Februarie gepubliseer te word. Benewens die hoofspesifikasie, word daar beplan om bykomende uitbreidings vir middel- en hoë-end mobiele en rekenaartoestelle aan te bied, wat as deel van die "Vulkan Milestone"-uitgawe ondersteun sal word.

Terselfdertyd word 'n plan aangebied om ondersteuning vir die nuwe spesifikasie en bykomende uitbreidings in grafiese kaarte en toestelbestuurders te implementeer. Intel, AMD, ARM en NVIDIA berei voor om produkte vry te stel wat Vulkan 1.3 ondersteun. AMD het byvoorbeeld aangekondig dat dit binnekort Vulkan 1.3 in die AMD Radeon RX Vega-reeks grafiese kaarte sal ondersteun, sowel as in alle kaarte gebaseer op die AMD RDNA-argitektuur. NVIDIA berei voor om bestuurders te publiseer met ondersteuning vir Vulkan 1.3 vir Linux en Windows. ARM sal ondersteuning vir Vulkan 1.3 by Mali GPU's voeg.

Belangrikste innovasies:

  • Ondersteuning vir vereenvoudigde lewerings (Streamlining Render Passes, VK_KHR_dynamic_rendering) is geïmplementeer, sodat jy kan begin lewering sonder om leweringspasse en raambuffervoorwerpe te skep.
  • Nuwe uitbreidings is bygevoeg om die bestuur van grafiese pyplynsamestelling te vereenvoudig (pyplyn, 'n stel bewerkings wat vektorgrafika-primitiewe en -teksture in pixelvoorstellings verander).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - voeg bykomende dinamiese toestande by om die aantal saamgestelde en aangehegte toestandvoorwerpe te verminder.
    • VK_EXT_pipeline_creation_cache_control - Verskaf gevorderde kontroles oor wanneer en hoe pyplyne saamgestel word.
    • VK_EXT_pipeline_creation_feedback - Verskaf inligting oor saamgestelde pyplyne om profilering en ontfouting makliker te maak.
  • 'n Aantal kenmerke is van opsioneel na verpligtend oorgedra. Byvoorbeeld, die implementering van bufferverwysings (VK_KHR_buffer_device_address) en die Vulkan-geheuemodel, wat definieer hoe gelyktydige drade toegang tot gedeelde data en sinchronisasie-operasies kan verkry, is nou verpligtend.
  • Fyn subgroepbeheer (VK_EXT_subgroup_size_control) word verskaf sodat verskaffers ondersteuning vir verskeie subgroepgroottes kan verskaf en ontwikkelaars die grootte kan kies wat hulle benodig.
  • Die VK_KHR_shader_integer_dot_product-uitbreiding is voorsien, wat gebruik kan word om die werkverrigting van masjienleerraamwerke te optimaliseer danksy hardewareversnelling van puntprodukbedrywighede.
  • Altesaam 23 nuwe uitbreidings is ingesluit:
    • VK_KHR_copy_commands2
    • VK_KHR_dinamiese_weergawe
    • VK_KHR_format_kenmerk_vlae2
    • VK_KHR_onderhoud4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_nie_semantiese_inligting
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_sinchronisasie2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formate
    • VK_EXT_extended_dynamic_state
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_beeld_robustness
    • VK_EXT_inline_uniform_block
    • VK_EXT_pyplyn_creation_cache_control
    • VK_EXT_pyplyn_skepping_terugvoer
    • VK_EXT_privaat_data
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_subgroep_grootte_beheer
    • VK_EXT_texel_buffer_belyning
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formate
  • Bygevoeg 'n nuwe voorwerp tipe VkPrivateDataSlot. 37 nuwe opdragte en meer as 60 strukture is geïmplementeer.
  • Die SPIR-V 1.6-spesifikasie is opgedateer om 'n intermediêre skakeringvoorstelling te definieer wat universeel is vir alle platforms en vir beide grafika en parallelle rekenaargebruik kan word. SPIR-V behels die skeiding van 'n aparte skakeringsamestellingsfase in 'n intermediêre voorstelling, wat jou toelaat om frontends vir verskeie hoëvlaktale te skep. Gebaseer op verskeie hoëvlak-implementerings, word 'n enkele intermediêre kode afsonderlik gegenereer, wat deur OpenGL-, Vulkan- en OpenCL-bestuurders gebruik kan word sonder om die ingeboude shader-samesteller te gebruik.
  • Die konsep van verenigbaarheidsprofiele word voorgestel. Google is die eerste om 'n basislynprofiel vir die Android-platform vry te stel, wat dit makliker sal maak om die vlak van ondersteuning vir gevorderde Vulkan-vermoëns op 'n toestel buite die Vulkan 1.0-spesifikasie te bepaal. Vir die meeste toestelle kan profielondersteuning verskaf word sonder om OTA-opdaterings te installeer.

Laat ons onthou dat die Vulkan API opvallend is vir sy radikale vereenvoudiging van drywers, die oordrag van die generering van GPU-opdragte na die toepassingskant, die vermoë om ontfoutingslae te verbind, die vereniging van die API vir verskeie platforms en die gebruik van 'n vooraf saamgestelde intermediêre voorstelling van kode vir uitvoering aan die GPU-kant. Om hoë werkverrigting en voorspelbaarheid te verseker, bied Vulkan toepassings met direkte beheer oor GPU-bedrywighede en inheemse ondersteuning vir GPU-multi-threading, wat bestuurder se bokoste verminder en bestuurder-kant-vermoëns baie eenvoudiger en meer voorspelbaar maak. Bedrywighede soos geheuebestuur en fouthantering, geïmplementeer in OpenGL aan die bestuurderkant, word byvoorbeeld na die toepassingsvlak in Vulkan geskuif.

Vulkan strek oor alle beskikbare platforms en bied 'n enkele API vir rekenaar, selfoon en web, wat toelaat dat een algemene API oor verskeie GPU's en toepassings gebruik kan word. Danksy Vulkan se multi-laag argitektuur, wat nutsmiddels beteken wat met enige GPU werk, kan OEM's industriestandaard nutsgoed gebruik vir kode hersiening, ontfouting en profilering tydens ontwikkeling. Vir die skep van shaders word 'n nuwe draagbare intermediêre voorstelling, SPIR-V, voorgestel, gebaseer op LLVM en die deel van kerntegnologieë met OpenCL. Om toestelle en skerms te beheer, bied Vulkan die WSI (Window System Integration) koppelvlak, wat ongeveer dieselfde probleme oplos as EGL in OpenGL ES. WSI-ondersteuning is uit die boks beskikbaar in Wayland - alle toepassings wat Vulkan gebruik, kan in 'n omgewing van ongewysigde Wayland-bedieners loop. Die vermoë om via WSI te werk word ook voorsien vir Android, X11 (met DRI3), Windows, Tizen, macOS en iOS.

Bron: opennet.ru

Voeg 'n opmerking