I-Khronos consortium, ethuthukisa amazinga wehluzo,
main
-
Ilethwe kuwe ukuqaliswa kolimi lohlelo lwe-shader kuze kube yilapho isilungele ukusetshenziswa kabanziI-HLSL , ithuthukiswe iMicrosoft yeDirectX. Ukusekelwa kwe-HLSL ku-Vulkan kwenza kube nokwenzeka ukusebenzisa izithunzi ze-HLSL ezifanayo ezinhlelweni ezisuselwe ku-Vulkan ne-DirectX, futhi kwenza ukuhumusha kube lula ukusuka ku-HLSL kuye ku-SPIR-V. Ukuze uhlanganise ama-shaders, kuphakanyiswa ukusebenzisa i-compiler ejwayelekile
I-DXC , ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΎΡΠΊΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Microsoft Π² 2017 Π³ΠΎΠ΄Ρ ΠΈ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ LLVM. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠ΅ΡΠ΅Π· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π±ΡΠΊΠ΅Π½Π΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ HLSL Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² SPIR-V. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
I-HLSL, okuhlanganisa izinhlobo zezibalo, ukugeleza kokulawula, imisebenzi, amasethi, izinhlobo zezinsiza, izindawo zamagama, i-Shader Model 6.2, izakhiwo nezindlela, kodwa futhi ivumela ukusetshenziswa kwezandiso eziqondene ne-Vulkan ezifana ne-VKRay evela ku-NVIDIA. Kumodi ye-HLSL phezu kwe-Vulkan, bekungenzeka ukuhlela umsebenzi wemidlalo efana ne-Destiny 2, i-Red Dead Redemption II, i-Assassin's Creed Odyssey ne-Tomb Raider. - Ukucaciswa kubuyekeziwe
I-SPIR-V 1.5 , echaza ukumelwa okuphakathi kwama-shader okukhona emhlabeni wonke kuzo zonke izinkundla futhi okungase kusetshenziselwe kokubili ihluzo nekhompuyutha efanayo.
I-SPIR-V ihlanganisa ukuhlukanisa isigaba esihlukile sokuhlanganiswa kwe-shader sibe isethulo esimaphakathi, esikuvumela ukuthi udale izindawo ezingaphambili zezilimi ezihlukahlukene ezisezingeni eliphezulu. Ngokusekelwe ekusetshenzisweni okuhlukahlukene kwezinga eliphezulu, ikhodi eyodwa emaphakathi ikhiqizwa ngokuhlukana, engasetshenziswa abashayeli be-OpenGL, i-Vulkan ne-OpenCL ngaphandle kokusebenzisa i-shader compiler eyakhelwe ngaphakathi. - I-Vulkan API eyinhloko ihlanganisa izandiso ezingu-23 ezikhuphula ukusebenza, ezithuthukisa ikhwalithi yokunikezela, nokwenza lula ukuthuthukiswa. Phakathi kwezandiso ezingeziwe:
-
I-chronological semaphores (I-semaphore yomugqa wesikhathi), ukuhlanganisa ukuvumelanisa nolayini womsingathi nolayini wedivayisi (okukuvumela ukuthi usebenzise okwakudala okukodwa kokuvumelanisa kwe-omnidirectional phakathi kwedivayisi nomsingathi, ngaphandle kokusebenzisa okwakudala kwe-VkFence kanye ne-VkSemaphore). Ama-semaphores amasha amelwe inani elikhulayo le-64-bit elingalandelelwa futhi libuyekezwe kuyo yonke imicu eminingi.
- Ikhono lokusebenzisa izinhlobo zezinombolo ngokunemba okuncishisiwe kuma-shader;
- Inketho yesakhiwo sememori ehambisanayo ye-HLSL;
- Izinsiza ezingaboshiwe (ezingenakubopha), ezisusa umkhawulo enanini lezinsiza ezitholakala kuma-shader ngokusebenzisa indawo ebonakalayo eyabelwe yememori yesistimu kanye nememori ye-GPU;
-
Imodeli ehlelekile yenkumbulo , echaza ukuthi imicu efanayo ingafinyelela kanjani idatha eyabiwe kanye nemisebenzi yokuvumelanisa; -
Inkomba yesichazi ukusebenzisa kabusha izichazi zesakhiwo kuwo wonke ama-shader amaningi; - Izixhumanisi zebhafa.
Uhlu olugcwele lwezandiso ezingeziwe:
-
VK_KHR_8bit_storage -
VK_KHR_buffer_device_address -
VK_KHR_create_renderpass2 -
I-VK_KHR_depth_stencil_resolve -
I-VK_KHR_draw_indirect_count -
VK_KHR_driver_properties -
VK_KHR_image_format_list -
VK_KHR_i -lessless_framebuffer -
VK_KHR_sampler_mirror_clamp_to_edge -
VK_KHR_separate_depth_stencil_layouts -
I-VK_KHR_shader_atomic_int64 -
VK_KHR_shader_float16_int8 -
VK_KHR_shader_float_controls -
Izinhlobo ze-VK_KHR_shader_subgroup_extended_ -
VK_KHR_spirv_1_4 -
Isikhathi se-VK_KHR_semaphore -
I-VK_KHR_uniform_buffer_standard_layout -
VK_KHR_vulkan_memory_model -
VK_EXT_descriptor_indexing -
VK_EXT_host_query_reset -
VK_EXT_sampler_filter_minmax -
VK_EXT_scalar_block_layout -
VK_EXT_separate_stencil_usage -
VK_EXT_shader_viewport_index_layer
-
-
Kungeziwe izakhiwo ezintsha ezingaphezu kwama-50 nemisebenzi eyi-13; - Izinguqulo ezifushanisiwe zokucaciswa zilungiselwe izinkundla eziqondiwe ezijwayelekile, ukwenza lula umsebenzi ezinkundleni lapho zonke izandiso zingakasekelwa, futhi kuvumela umuntu ukuthi enze ngaphandle kokwenza kusebenze okukhethekile kwamakhono ayisisekelo we-Vulkan API.
- Umsebenzi uyaqhubeka kuphrojekthi ukuze uqinisekise ukuphatheka namanye ama-API wezithombe. Isibonelo, i-Vulkan inikeza izandiso ezivumela ukuhumusha kwe-OpenGL (
Zink ), OpenCL (clspv ,clvk ), i-OpenGL ES (iGLOVE, i-Engle) ne-DirectX (I-DXVK ,vkd3d ) ngeVulkan API, futhi, ngokuphambene, ukunika amandla i-Vulkan ukuthi isebenze ezinkundleni ngaphandle kokusekelwa kwayo ngokomdabu (gfx-rs ΠΈAshes ukusebenza ngaphezulu kwe-OpenGL neDirectX,I-MoltenVK kanye ne-gfx-rs yokusebenza phezu kwe-Metal).
Izandiso ezingeziwe zokuthuthukisa ukuhambisana ne-DirectX ne-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, kanye ne-SPIR-V isebenzisa amakhono athile e-HLSL.
Izinhlelo zesikhathi esizayo zihlanganisa ukuthuthukiswa kwezandiso zokufunda komshini, ukulandelela imisebe, ukubhala ngekhodi kwevidiyo nokuqopha, ukusekelwa kwe-VRS (izinga eliguquguqukayo lokufiphaza) kanye nama-Mesh shader.
Khumbula ukuthi i-Vulkan API
I-Vulkan ihlanganisa zonke izinkundla ezitholakalayo futhi inikeza i-API eyodwa yedeskithophu, iselula, newebhu, evumela i-API eyodwa evamile ukuthi isetshenziswe kuwo wonke ama-GPU amaningi nezinhlelo zokusebenza. Ngenxa yesakhiwo se-Vulkan esinezingqimba eziningi, okusho ukuthi amathuluzi asebenza nanoma iyiphi i-GPU, ama-OEM angasebenzisa amathuluzi asezingeni lomkhakha ukuze abuyekeze ikhodi, alungise iphutha, futhi enze iphrofayela ngesikhathi sokuthuthukiswa. Ukuze kudalwe imithunzi, kuhlongozwa ukumelwa okusha okuphathekayo okumaphakathi, i-SPIR-V, okusekelwe ku-LLVM nokwabelana ngobuchwepheshe obuyisisekelo ne-OpenCL. Ukuze ulawule amadivayisi nezikrini, i-Vulkan inikeza isixhumi esibonakalayo se-WSI (Window System Integration), esixazulula cishe izinkinga ezifanayo ne-EGL ku-OpenGL ES. Ukusekelwa kwe-WSI kuyatholakala ngaphandle kwebhokisi e-Wayland - zonke izinhlelo zokusebenza ezisebenzisa i-Vulkan zingasebenza endaweni yamaseva we-Wayland angalungiswanga. Amandla okusebenza nge-WSI anikezwe ne-Android, X11 (nge-DRI3), iWindows, iTizen, i-macOS ne-iOS.
Source: opennet.ru