Tisztességes előrelépés lesz az új Vulkan API

Az 1.4-es specifikáció nagy újítása a Streaming Transfers lesz, amely egy régóta létező problémára kínál megoldást.

A Khronos Group még 2015-ben adta ki a Vulkan API-t, amelyet három évvel később követet az 1.1-es frissítés, ami elhozta a több GPU támogatását is. 2020-ban a konzorcium bejelentette az 1.2-es verziót, ami túlzottan nagy újításokat nem vezetett be, de a programozhatóságon egyszerűsített, az 1.3-as specifikáció viszont nagy újításokat hozott. Most befutott az 1.4-es kiadás, amely az 1.3-mal megkezdett utat viszi tovább, így hatalmas változások nincsennek, de az előrelépés így is kellemes.

Hirdetés

Az egyik legnagyobb újítás a Streaming Transfers lesz, amely az adatstreamelést szedi ráncba. Ez korábban nem volt túl elegánsan megoldva, ugyanis az API biztosított ugyan lehetőségeket arra, hogy az alkalmazások nagy mennyiségű adatot tudjanak streamelni az adott hardveren, de igazán egységes formában nem lehetett megoldani, vagyis sokszor gyártói szinten kellett a problémát kezelni. Az 1.4-es specifikáció viszont bevezet egy átfogó megoldást, amivel egységesen lehet majd kezelni a problémát az egyes eszközök között. Konkrétan minden Vulkan 1.4 implementációnak kötelezően támogatnia kell a hostImageCopy funkciót, vagy egy parancslistát, amely biztosítja a VK_QUEUE_TRANSFER_BIT-et. Mindemellett minden olyan parancslista, amely kezeli a VK_QUEUE_GRAPHICS_BIT-et vagy a VK_QUEUE_COMPUTE_BIT-et, kötelezően kezelnie kell a VK_QUEUE_TRANSFER_BIT-et is. Emellett a VK_EXT_host_image_copy kiterjesztés az úgynevezett core specifikáció része lett, de még most is csak opcionális a támogatása. Felmerülhet, hogy az utóbbinak így mi értelme, de nagyon is van: még ha a VK_EXT_host_image_copy opcionális is maradt, a core specifikáció részeként az ezt támogató Vulkan implementációk legalább egységesek lesznek.

A fentieken túl számos korábbi limit bővítésre került, illetve több korábban opcionális kiterjesztés vált kötelezővé, konkrétan az alábbiak:

  • VK_KHR_load_store_op_none
  • VK_KHR_shader_subgroup_rotate
  • VK_KHR_shader_float_controls2
  • VK_KHR_shader_expect_assume
  • VK_KHR_line_rasterization
  • VK_KHR_vertex_attribute_divisor
  • VK_KHR_index_type_uint8
  • VK_KHR_map_memory2
  • VK_KHR_maintenance5
  • VK_KHR_maintenance6
  • VK_KHR_push_descriptor
  • VK_KHR_global_priority

A Vulkan 1.4 a legtöbb modern hardver számára megugorható léc, így a gyártók egy meghajtófrissítés keretében hamarosan kiadják a kompatibilis implementációkat.

Előzmények

Hirdetés