График стандартыг боловсруулдаг Хронос консорциум
Үндсэн
-
Танд авчирсан өргөн хэрэглээнд бэлэн болтол шэйдер програмчлалын хэлийг хэрэгжүүлэхHLSL , Microsoft-оос DirectX-д зориулан боловсруулсан. Вулкан дахь HLSL-ийн дэмжлэг нь Vulkan болон DirectX дээр суурилсан програмуудад ижил HLSL шэйдерүүдийг ашиглах боломжийг олгодог бөгөөд HLSL-ээс SPIR-V руу орчуулгыг хялбаршуулдаг. Шэйдерүүдийг эмхэтгэхийн тулд стандарт хөрвүүлэгч ашиглахыг зөвлөж байна
DXC 2017 онд Майкрософт нээсэн бөгөөд LLVM технологи дээр суурилсан. Vulkan-ийн дэмжлэг нь тусдаа backend-ээр хэрэгждэг бөгөөд энэ нь HLSL-ийг SPIR-V шэйдерүүдийн завсрын төлөөлөл болгон хөрвүүлэх боломжийг олгодог. Хэрэгжилт нь зөвхөн суулгасан бүх чадавхийг хамардаггүй
HLSL нь математикийн төрөл, хяналтын урсгал, функц, багц, нөөцийн төрөл, нэрийн орон зай, Shader Model 6.2, бүтэц, аргуудыг багтаасан боловч NVIDIA-аас VKRay гэх мэт Vulkan-д зориулсан тусгай өргөтгөлүүдийг ашиглах боломжийг олгодог. Вулкан дээрх HLSL горимд Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey, Tomb Raider зэрэг тоглоомуудын ажлыг зохион байгуулах боломжтой болсон. - Үзүүлэлтүүдийг шинэчилсэн
SPIR-V 1.5 , энэ нь бүх платформд түгээмэл бөгөөд график болон зэрэгцээ тооцоолоход ашиглах боломжтой шэйдерүүдийн завсрын дүрслэлийг тодорхойлдог.
SPIR-V нь тусдаа шэйдер эмхэтгэлийн үе шатыг завсрын дүрслэл болгон хуваах явдал бөгөөд энэ нь янз бүрийн өндөр түвшний хэлнүүдийн нүүрэн талыг үүсгэх боломжийг олгодог. Төрөл бүрийн өндөр түвшний хэрэгжилт дээр үндэслэн нэг завсрын кодыг тусад нь үүсгэдэг бөгөөд үүнийг OpenGL, Vulkan, OpenCL драйверууд суулгасан шэйдер хөрвүүлэгч ашиглахгүйгээр ашиглаж болно. - Үндсэн Vulkan API нь гүйцэтгэлийг нэмэгдүүлж, дүрслэх чанарыг сайжруулж, хөгжүүлэлтийг хялбаршуулдаг 23 өргөтгөлийг агуулдаг. Нэмэлт өргөтгөлүүдийн дунд:
-
Хронологийн семафорууд (Timeline semaphore), хост болон төхөөрөмжийн дараалалтай синхрончлолыг нэгтгэх (төхөөрөмж ба хостын хооронд бүх чиглэлтэй синхрончлолд зориулж тусдаа VkFence болон VkSemaphore командуудыг ашиглахгүйгээр нэг командыг ашиглах боломжийг танд олгоно). Шинэ семафорууд нь нэг хэвийн өсөлттэй 64 битийн утгаар илэрхийлэгддэг бөгөөд үүнийг олон урсгалаар хянаж, шинэчлэх боломжтой.
- Тоон төрлүүдийг шэйдэрт бага нарийвчлалтайгаар ашиглах чадвар;
- HLSL нийцтэй санах ойн байршлын сонголт;
- Системийн санах ой болон GPU санах ойн хуваалцсан виртуал орон зайг ашиглан шэйдэрт ашиглах боломжтой нөөцийн тооны хязгаарлалтыг арилгадаг, хязгаарлагдмал нөөцүүд (холбоогүй);
-
Албан ёсны санах ойн загвар , энэ нь зэрэгцээ хэлхээнүүд хуваалцсан өгөгдөл болон синхрончлолд хэрхэн хандаж болохыг тодорхойлдог; -
Тодорхойлогчийн индексжүүлэлт олон шэйдэр дээр байршлын тодорхойлогчдыг дахин ашиглах; - Буфер холбоосууд.
Нэмэгдсэн өргөтгөлүүдийн бүрэн жагсаалт:
-
VK_KHR_8bit_хадгалах -
VK_KHR_буферийн_төхөөрөмжийн хаяг -
VK_KHR_renderpass2 -
VK_KHR_гүний_stencil_шийдвэрлэх -
VK_KHR_сугалах_шууд бус_тоо -
VK_KHR_driver_properties -
VK_KHR_зургийн_форматын_жагсаалт -
VK_KHR_ дүрсгүй_фреймбаффер -
VK_KHR_sampler_толь_хавчаар_ирмэг хүртэл -
VK_KHR_тусдаа_гүн_шавар_зохицуулалт -
VK_KHR_shader_atomic_int64 -
VK_KHR_shader_float16_int8 -
VK_KHR_shader_float_controls -
VK_KHR_shader_subgroup_extended_type -
VK_KHR_spirv_1_4 -
VK_KHR_цаг хугацааны_семафор -
VK_KHR_өнгөн_буфер_стандартын_байршил -
VK_KHR_vulkan_санах ойн_загвар -
VK_EXT_descriptor_indexing -
VK_EXT_host_query_reset -
VK_EXT_түүвэрлэгч_шүүлтүүр_minmax -
VK_EXT_скаляр_блокын_зохицуулалт -
VK_EXT_тусдаа_stencil_хэрэглээ -
VK_EXT_shader_viewport_index_layer
-
-
Нэмэгдсэн 50 гаруй шинэ бүтэц, 13 чиг үүрэг; - Тодорхойлолтын богиносгосон хувилбаруудыг ердийн зорилтот платформуудад зориулж бэлтгэсэн бөгөөд бүх өргөтгөл нь дэмжигдээгүй байгаа платформ дээрх ажлыг хялбарчилж, Vulkan API-ийн үндсэн чадавхийг сонгон идэвхжүүлэхгүйгээр хийх боломжийг олгодог.
- Бусад график API-уудтай зөөврийн байдлыг хангах төслийн ажил үргэлжилж байна. Жишээлбэл, Вулкан нь OpenGL орчуулгыг зөвшөөрдөг өргөтгөлүүдийг санал болгодог (
Зинк ), OpenCL (clspv ,clvk ), OpenGL ES (Бээлий, өнцөг) болон DirectX (DXVK ,vkd3d ) Vulkan API-ээр дамжуулан, мөн эсрэгээр нь Vulkan-ыг өөрийн дэмжлэггүйгээр платформ дээр ажиллах боломжийг олгох (gfx-rs иҮнс OpenGL болон DirectX дээр ажиллахад,MoltenVK болон Металл дээр ажиллахад зориулсан gfx-rs).
DirectX болон HLSL-тэй нийцтэй байдлыг сайжруулах нэмэлт өргөтгөлүүд
VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts, and SPIR-ийн онцлогууд.
Ирээдүйн төлөвлөгөөнд машин сургалтын өргөтгөлүүдийг хөгжүүлэх, туяа хянах, видео кодчилол, код тайлах, VRS (хувьсах хурдтай сүүдэрлэх) болон Mesh шэйдерүүдийг дэмжих зэрэг багтана.
Vulkan API гэдгийг санаарай
Vulkan нь боломжтой бүх платформуудыг хамардаг бөгөөд ширээний компьютер, гар утас болон вэбэд зориулсан нэг API-г хангадаг бөгөөд нэг нийтлэг API-г олон GPU болон програмуудад ашиглах боломжийг олгодог. Vulkan-ийн олон давхаргат архитектурын ачаар ямар ч GPU-тэй ажиллах хэрэгслүүдийн ачаар OEM-ууд хөгжүүлэлтийн явцад кодыг хянах, дибаг хийх, профайл хийх зэрэг салбарын стандарт хэрэгслийг ашиглах боломжтой. Шэйдер үүсгэхийн тулд LLVM дээр суурилсан, OpenCL-тэй үндсэн технологиудыг хуваалцах шинэ зөөврийн завсрын төлөөлөл болох SPIR-V-ийг санал болгож байна. Төхөөрөмж болон дэлгэцийг удирдахын тулд Вулкан нь OpenGL ES дээрх EGL-тэй ижил төстэй асуудлуудыг шийддэг WSI (Цонхны Системийн Интеграци) интерфейсийг санал болгодог. WSI-ийн дэмжлэгийг Wayland-д ашиглах боломжтой - Vulkan-г ашигладаг бүх програмууд Wayland серверүүдийн өөрчлөгдөөгүй орчинд ажиллах боломжтой. WSI-ээр дамжуулан ажиллах чадварыг Android, X11 (DRI3-тай), Windows, Tizen, macOS болон iOS үйлдлийн системд мөн олгодог.
Эх сурвалж: opennet.ru