αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€ Vulkan 1.2 αž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™

αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Khronos αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€αŸ”
αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž— αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ Vulkan 1.2αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹ API αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αžΌαž›αž”αŸ’αžšαžΎαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€ αž“αž·αž„αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžšαž”αžŸαŸ‹ GPUαŸ” αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαŸ’αž˜αžΈαž“αŸαŸ‡αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αž”αžΆαž“αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž–αžΈαžšαž†αŸ’αž“αžΆαŸ† αž“αž·αž„ αž€αžΆαžšαž–αž„αŸ’αžšαžΈαž€. αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαžšαž”αžŸαŸ‹ Vulkan αž˜αžΆαž“αžšαž½αž…αž αžΎαž™ αž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Intel, AMD αž”αžΆαž“, ARM, Imagination Technologies αž“αž·αž„ NVIDIA. Mesa αž•αŸ’αžαž›αŸ‹αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš Vulkan 1.2 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αžΎαž€αž”αžš αžšαŸ‰αžΆαžŒαžΈαžœαžΈ (αž€αžΆαž AMD) αž“αž·αž„ ANV (αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Intel) αŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš Vulkan 1.2 αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž•αž„αžŠαŸ‚αžšαŸ” RenderDoc 1.6, LunarG Vulkan SDK αž“αž·αž„αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž§αž‘αžΆαž αžšαžŽαŸαž˜αž½αž™αŸ” Vulkan-αž‚αŸ†αžšαžΌ.

αžŸαŸ†αžαžΆαž“αŸ‹ αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αž:

  • αž“αžΆαŸ†αž˜αž€αž‡αžΌαž“αž’αŸ’αž“αž€αŸ” αž€αžΆαžšβ€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αž—αžΆαžŸαžΆβ€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Shader αžšαž αžΌαžβ€‹αžŠαž›αŸ‹β€‹αžšαž½αž…αžšαžΆαž›αŸ‹β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αž”αŸ’αžšαžΎβ€‹αž”αŸ’αžšαžΆαžŸαŸ‹β€‹αž™αŸ‰αžΆαž„β€‹αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™ HLSLαž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™ Microsoft αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ DirectX αŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš HLSL αž“αŸ…αž€αŸ’αž“αž»αž„ Vulkan αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžΎ HLSL shaders αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎ Vulkan αž“αž·αž„ DirectX αž αžΎαž™αž€αŸαž‡αž½αž™αžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αž–αžΈ HLSL αž‘αŸ… SPIR-V αž•αž„αžŠαŸ‚αžšαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž…αž„αž€αŸ’αžšαž„ shaders αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž±αŸ’αž™αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš
    DXCαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžŠαŸ„αž™αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Microsoft αž€αŸ’αž“αž»αž„αž†αŸ’αž“αžΆαŸ† 2017 αž“αž·αž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ LLVM αŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš Vulkan αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αžšαž™αŸˆαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚ HLSL αž‘αŸ…αž‡αžΆαžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αž“αŸƒ SPIR-V shaders αŸ” αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αžŸαž˜αžαŸ’αžαž—αžΆαž–αžŸαžΆαž„αžŸαž„αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ
    HLSL αžšαž½αž˜αž‘αžΆαŸ†αž„αž”αŸ’αžšαž—αŸαž‘αž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆ αž›αŸ†αž αžΌαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž˜αž»αžαž„αžΆαžš αžŸαŸ†αžŽαž»αŸ† αž”αŸ’αžšαž—αŸαž‘αž’αž“αž’αžΆαž“ αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ αž‚αŸ†αžšαžΌαžŸαŸ’αžšαž˜αŸ„αž› 6.2 αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž”αŸ’αžšαžΎαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžšαž”αžŸαŸ‹ Vulkan αžŠαžΌαž…αž‡αžΆ VKRay αž–αžΈ NVIDIA αž•αž„αžŠαŸ‚αžšαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” HLSL αž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž› Vulkan αžœαžΆαž’αžΆαž…αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž αŸ’αž‚αŸαž˜αžŠαžΌαž…αž‡αžΆ Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey αž“αž·αž„ Tomb Raider αŸ”

    αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€ Vulkan 1.2 αž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™

  • αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–β€‹αž›αž€αŸ’αžαžŽαŸˆβ€‹αž–αž·αžŸαŸαžŸ SPIR-V 1.5αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αž“αŸƒ shaders αžŠαŸ‚αž›αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαž‡αžΆαžŸαž€αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž αžΎαž™αž’αžΆαž…αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€ αž“αž·αž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αŸ‰αžΆαžšαŸ‰αžΆαž‘αŸ‚αž›αŸ”
    SPIR-V αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αŸƒαž€αžΆαžšαž…αž„αž€αŸ’αžšαž„αžŸαŸ’αžšαž˜αŸ„αž›αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αž‘αŸ…αž‡αžΆαžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž•αŸ’αžŸαŸαž„αŸ—αŸ” αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž•αŸ’αžŸαŸαž„αŸ— αž€αžΌαžŠαž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αžαŸ‚αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αž‘αŸ‚αž€αž–αžΈαž‚αŸ’αž“αžΆ αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαŸ„αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆ OpenGL, Vulkan αž“αž·αž„ OpenCL αžŠαŸ„αž™αž˜αž·αž“αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αž„αž€αŸ’αžšαž„ shader αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αŸ”

    αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€ Vulkan 1.2 αž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™

  • αžŸαŸ’αž“αžΌαž› Vulkan API αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ†αž“αž½αž“ 23 αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαž“αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αž’αŸ’αžœαžΎαž’αŸ„αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž‚αž»αžŽαž—αžΆαž–αž”αž„αŸ’αž αžΆαž‰ αž“αž·αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ” αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αžαŸ‚αž˜αŸ–
    • αžŸαž˜αžΈαž€αžΆαžšαž€αžΆαž›αž”αŸ’αž”αžœαžαŸ’αžαž· (Timeline semaphore) αž€αžΆαžšαž”αž„αŸ’αžšαž½αž”αž”αž„αŸ’αžšαž½αž˜αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ αž“αž·αž„αž‡αž½αžšαž§αž”αž€αžšαžŽαŸ (αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αž»αž–αŸ’αžœαž€αžΆαž›αž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜ omnidirectional αžšαžœαžΆαž„αž§αž”αž€αžšαžŽαŸ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ αžŠαŸ„αž™αž˜αž·αž“αž”αŸ’αžšαžΎ VkFence αž“αž·αž„ VkSemaphore primitives αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€)αŸ” Semaphores αžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ†αžŽαžΆαž„αžŠαŸ„αž™αžαž˜αŸ’αž›αŸƒ 64 αž”αŸŠαžΈαžαžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαž“αžŠαŸ„αž™αž―αž€αžαŸ„αž—αžΆαž‚αžΈ αžŠαŸ‚αž›αž’αžΆαž…αžαžΆαž˜αžŠαžΆαž“ αž“αž·αž„αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžαžΆαž˜αžšαž™αŸˆαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”
      αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€ Vulkan 1.2 αž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™

    • αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαž—αŸαž‘αž›αŸαžαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž“αŸ…αž€αŸ’αž“αž»αž„ shaders;
    • αž‡αž˜αŸ’αžšαžΎαžŸαž”αŸ’αž›αž„αŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆ HLSL;
    • αž’αž“αž’αžΆαž“αž‚αŸ’αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹ (αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž…αž„) αžŠαŸ‚αž›αžŠαž€αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž›αžΎαž…αŸ†αž“αž½αž“αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαŸ’αžšαž˜αŸ„αž› αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‘αŸ†αž αŸ†αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž“αž·αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† GPU αŸ”
    • αž‚αŸ†αžšαžΌαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž•αŸ’αž›αžΌαžœαž€αžΆαžšαžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž›αžΆαž™αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€ αž“αž·αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αŸ”
    • αž€αžΆαžšαž’αŸ’αžœαžΎαž›αž·αž”αž·αž€αŸ’αžšαž˜αž–αž·αž–αžŽαŸŒαž“αžΆ αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž”αŸ’αžšαžΎβ€‹αž‘αžΎαž„αžœαž·αž‰β€‹αž“αžΌαžœβ€‹αž€αžΆαžšβ€‹αž–αž·αž–αžŽαŸŒαž“αžΆβ€‹αž”αŸ’αž›αž„αŸ‹β€‹αž“αŸ…β€‹αž‘αžΌαž‘αžΆαŸ†αž„β€‹αžŸαŸ’αžšαž˜αŸ„αž›β€‹αž…αŸ’αžšαžΎαž“;
    • αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαž»αŸ†αŸ”

    αž”αž‰αŸ’αž‡αžΈαž–αŸαž‰αž›αŸαž‰αž“αŸƒαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αžαŸ‚αž˜αŸ–

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαŸ’αž˜αžΈαž‡αžΆαž„ 50 αž“αž·αž„αž˜αž»αžαž„αžΆαžš 13;
  • αž€αŸ†αžŽαŸ‚αžαŸ’αž›αžΈαŸ—αž“αŸƒαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆαž‚αŸ„αž›αžŠαŸ…αž’αž˜αŸ’αž˜αžαžΆ αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž„αžΆαžšαžŸαžΆαž˜αž‰αŸ’αž‰αž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαžŠαŸ‚αž›αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αž·αž“αž‘αžΆαž“αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžš αž“αž·αž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžœαžΆαž’αŸ’αžœαžΎαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžŸαž€αž˜αŸ’αž˜αž“αŸƒαžŸαž˜αžαŸ’αžαž—αžΆαž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒ Vulkan API αŸ”
  • αž€αžΆαžšαž„αžΆαžšαž”αž“αŸ’αžαž›αžΎαž‚αž˜αŸ’αžšαŸ„αž„αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαž€αžΆαžšαž…αž›αŸαžαž‡αžΆαž˜αž½αž™ APIs αž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž§αž‘αžΆαž αžšαžŽαŸ Vulkan αž•αŸ’αžαž›αŸ‹αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž”αž€αž”αŸ’αžšαŸ‚ OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) αž“αž·αž„ DirectX (DXVK, vkd3d) αžαžΆαž˜αžšαž™αŸˆ Vulkan API αž αžΎαž™αž˜αŸ’αž™αŸ‰αžΆαž„αžœαž·αž‰αž‘αŸ€αž αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™ Vulkan αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαžœαŸαž‘αž·αž€αžΆαžšαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΈαž€αŸ†αžŽαžΎαžαžšαž”αžŸαŸ‹αžœαžΆ (gfx-rs ΠΈ αž•αŸαŸ‡ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž“αŸ…αž›αžΎαž€αŸ†αž–αžΌαž›αž“αŸƒ OpenGL αž“αž·αž„ DirectX, αž˜αŸ‰αžΌαž›αžΈαž“αžαž› αž“αž·αž„ 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, αž“αž·αž„αžŸαž˜αžαŸ’αžαž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ SPIR-V

αž•αŸ‚αž“αž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαž›αž’αž“αžΆαž‚αžαžšαž½αž˜αž˜αžΆαž“αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαŸ€αž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αž€αžΆαŸ†αžšαžŸαŸ’αž˜αžΈ αž€αžΆαžšαž’αŸŠαž·αž“αž€αžΌαžŠαžœαžΈαžŠαŸαž’αžΌ αž“αž·αž„αž€αžΆαžšαžŒαž·αž€αžΌαžŠ αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ VRS (αž€αžΆαžšαžŠαžΆαž€αŸ‹αžŸαŸ’αžšαž˜αŸ„αž›αžαžΆαž˜αž’αžαŸ’αžšαžΆαž’αžαŸαžš) αž“αž·αž„ Mesh shaders αŸ”

αžŸαžΌαž˜αž…αžΆαŸ†αžαžΆ Vulkan API αž‚αž½αžšαž±αŸ’αž™αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ αž€αžΆαžšαž’αŸ’αžœαžΎαž±αŸ’αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆαž˜αžΆαž“αž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰ αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‡αŸ†αž“αžΆαž“αŸ‹αž“αŸƒαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ GPU αž‘αŸ…αž•αŸ’αž“αŸ‚αž€αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ αž€αžΆαžšαž”αž„αŸ’αžšαž½αž”αž”αž„αŸ’αžšαž½αž˜ API αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆαž•αŸ’αžŸαŸαž„αŸ— αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αžŠαŸ‚αž›αž”αžΆαž“αž…αž„αž€αŸ’αžšαž„αž‡αžΆαž˜αž»αž“αž“αŸƒαž€αžΌαžŠαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„ GPU αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαž”αžΆαž“αž“αžΌαžœαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαŸ’αž–αžŸαŸ‹ αž“αž·αž„αž—αžΆαž–αž’αžΆαž…αž–αŸ’αž™αžΆαž€αžšαžŽαŸαž”αžΆαž“ Vulkan αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž•αŸ’αž‘αžΆαž›αŸ‹αž›αžΎαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš GPU αž“αž·αž„αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ GPU multi-threading αžŠαŸ‚αž›αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αž›αžΎαž’αŸ’αž“αž€αž”αžΎαž€αž”αžš αž“αž·αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαž˜αžαŸ’αžαž—αžΆαž–αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž’αŸ’αž“αž€αž”αžΎαž€αž”αžšαž€αžΆαž“αŸ‹αžαŸ‚αžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž’αžΆαž…αž‘αžŸαŸ’αžŸαž“αŸαž‘αžΆαž™αž”αžΆαž“αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž“αž·αž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αŸ†αž αž»αžŸ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„ OpenGL αž“αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ…αž€αž˜αŸ’αžšαž·αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ Vulkan αŸ”

Vulkan αž›αžΆαžαžŸαž“αŸ’αž’αžΉαž„αž›αžΎαžœαŸαž‘αž·αž€αžΆαžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœ API αžαŸ‚αž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž›αžΎαžαž» αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ αž“αž·αž„αž‚αŸαž αž‘αŸ†αž–αŸαžš αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™ API αž‘αžΌαž‘αŸ…αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αŸ…αž‘αžΌαž‘αžΆαŸ†αž„ GPU αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž–αž αž»αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αžšαž”αžŸαŸ‹ Vulkan αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™ GPU αžŽαžΆαž˜αž½αž™ OEMs αž’αžΆαž…αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž§αžŸαŸ’αžŸαžΆαž αž€αž˜αŸ’αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž€αžΌαžŠ αž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸ αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž‘αž˜αŸ’αžšαž„αŸ‹αž’αŸ†αž‘αž»αž„αž–αŸαž›αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž shaders αžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜αž…αž›αŸαžαžαŸ’αž˜αžΈαž˜αž½αž™αž‚αžΊ SPIR-V αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ LLVM αž“αž·αž„αž€αžΆαžšαž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžŸαŸ’αž“αžΌαž›αž‡αžΆαž˜αž½αž™ OpenCL αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž§αž”αž€αžšαžŽαŸ αž“αž·αž„αž’αŸαž€αŸ’αžšαž„αŸ‹ Vulkan αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹ WSI (Window System Integration) αžŠαŸ‚αž›αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž”αŸ’αžšαž αžΆαž€αŸ‹αž”αŸ’αžšαž αŸ‚αž›αž“αžΉαž„ EGL αž“αŸ…αž€αŸ’αž“αž»αž„ OpenGL ES αŸ” αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš WSI αž’αžΆαž…αžšαž€αž”αžΆαž“αž€αŸ’αžšαŸ…αž”αŸ’αžšαž’αž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ Wayland - αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αŸ’αžšαžΎ Vulkan αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž“αŸƒαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Wayland αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚αŸ” αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαžαžΆαž˜αžšαž™αŸˆ WSI αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Android, X11 (αž‡αžΆαž˜αž½αž™ DRI3), Windows, Tizen, macOS αž“αž·αž„ iOS αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹