ΠΠΎΠ½ΡΠΎΡΡΠΈΡΠΌ Khronos, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π° Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈ,
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠ° API Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° GPU. ΠΠΎΠ²Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° Π½Π°ΡΡΡΠΏΠ°Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΈ . ΠΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Vulkan, Π²Π΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Intel, , ARM, Imagination Technologies ΠΈ . Π Mesa ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Vulkan 1.2 Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π·Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ (ΠΊΠ°ΡΡΠΈ AMD) ΠΈ (Intel). ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Vulkan 1.2 ΡΡΡΠΎ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° , ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΠΈ .
ΠΡΠ½ΠΎΠ²Π½ΠΈ :
- Π΄ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ Π·Π° ΡΠΈΡΠΎΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠΈ , ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Microsoft Π·Π° DirectX. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° HLSL Π² Vulkan ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° HLSL-ΡΠ΅ΠΉΠ΄Π΅ΡΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Vulkan ΠΈ DirectX, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΡΡΠ°Π½ΡΠ»Π°ΡΠΈΡΡΠ° ΠΎΡ HLSL Π² SPIR-V. ΠΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ
, ΠΊΠΎΠΉΡΠΎ Π±Π΅ΡΠ΅ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΎΡ Microsoft ΠΏΡΠ΅Π· 2017 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° LLVM. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Vulkan Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΡΠ΅Π· ΠΎΡΠ΄Π΅Π»Π΅Π½ Π±Π΅ΠΊΠ΅Π½Π΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΡΡΠ°Π½ΡΠ»Π°ΡΠΈΡ Π½Π° HLSL Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠΈ SPIR-V. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΎΠ±Ρ Π²Π°ΡΠ° Π½Π΅ ΡΠ°ΠΌΠΎ Π²ΡΠΈΡΠΊΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
HLSL, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ²Π΅, ΠΏΠΎΡΠΎΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ», ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, ΡΠΈΠΏΠΎΠ²Π΅ ΡΠ΅ΡΡΡΡΠΈ, ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π½Π° ΠΈΠΌΠ΅Π½Π°, Shader Model 6.2, ΡΡΡΡΠΊΡΡΡΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, Π½ΠΎ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Vulkan ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ VKRay ΠΎΡ NVIDIA. Π ΡΠ΅ΠΆΠΈΠΌΠ° HLSL Π²ΡΡΡ Ρ Vulkan ΡΡΠΏΡΡ Π° Π΄Π° ΡΠ°Π±ΠΎΡΡΡ ΠΈΠ³ΡΠΈ ΠΊΠ°ΡΠΎ Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey ΠΈ Tomb Raider. - ΠΠ±Π½ΠΎΠ²Π΅Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠ° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΎ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡΠΎ Π·Π° Π³ΡΠ°ΡΠΈΠΊΠ°, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ.
SPIR-V ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π° ΠΎΡΠ΄Π΅Π»Π½Π° ΡΠ°Π·Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠΈΡΠ΅ Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΠΎΠ²Π΅ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΈ Π΅Π·ΠΈΡΠΈ. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π΅Π΄ΠΈΠ½Π΅Π½ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ OpenGL, Vulkan ΠΈ OpenCL Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Π·Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠΈ.
- Π ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ API Π½Π° Vulkan ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ 23 ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ
Π° Π΄Π° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΈ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°. Π‘ΡΠ΅Π΄ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ:
- (ΠΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡ), ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°ΡΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Ρ Ρ
ΠΎΡΡΠ° ΠΈ ΠΎΠΏΠ°ΡΠΊΠΈΡΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠΈΡΠΈΠ² Π·Π° Π²ΡΠ΅ΠΌΠ°ΡΠΎΠ²ΠΎ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΠΈ Ρ
ΠΎΡΡΠ°, Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ VkFence ΠΈ VkSemaphore). ΠΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ Ρ ΠΌΠΎΠ½ΠΎΡΠΎΠ½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΡΠ° ΡΠ΅ 64-Π±ΠΈΡΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π° ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π° Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠ°.

- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΡΠ΅ΠΉΠ΄ΡΡΠΈΡΠ΅ Π½Π° ΡΠΈΡΠ»ΠΎΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Ρ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π° ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΎΡΡ;
- Π‘ΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ HLSL Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ΠΏΠΎΠ΄ΡΠ΅Π΄Π±Π° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°;
- ΠΠ΅ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ (bindless), ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° Π±ΡΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈΡΠ΅ ΡΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° GPU;
- , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠΈ ΡΠ΅ ΠΏΠΎΡΠΎΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ;
- Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ΄ΡΠ΅Π΄Π±ΠΈΡΠ΅ Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΉΠ΄ΡΡΠ°;
- ΠΡΡΠ΅ΡΠ½ΠΈ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ.
ΠΡΠ»Π΅Π½ ΡΠΏΠΈΡΡΠΊ Π½Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ:
- (ΠΡΠ΅ΠΌΠ΅Π²ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡ), ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°ΡΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Ρ Ρ
ΠΎΡΡΠ° ΠΈ ΠΎΠΏΠ°ΡΠΊΠΈΡΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠΈΡΠΈΠ² Π·Π° Π²ΡΠ΅ΠΌΠ°ΡΠΎΠ²ΠΎ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΠΈ Ρ
ΠΎΡΡΠ°, Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ VkFence ΠΈ VkSemaphore). ΠΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ Ρ ΠΌΠΎΠ½ΠΎΡΠΎΠ½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΡΠ° ΡΠ΅ 64-Π±ΠΈΡΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π° ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π° Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
- ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 50 Π½ΠΎΠ²ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΈ 13 ΡΡΠ½ΠΊΡΠΈΠΈ;
- ΠΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΡΠ° ΡΡΠΊΡΠ°ΡΠ΅Π½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΡΠΈΠΏΠΈΡΠ½ΠΈ ΡΠ΅Π»Π΅Π²ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΎΠΏΡΠΎΡΡΡΠ²Π°ΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° API Vulkan.
- ΠΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½Π° Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡ Ρ Π΄ΡΡΠ³ΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ API. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Vulkan ΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ ΡΡΠ°Π½ΡΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° OpenGL (), OpenCL (, ), OpenGL ES (GLOVE, Angle) ΠΈ DirectX (, ) ΡΡΠ΅Π· API Vulkan, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΡΠΎ, Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Vulkan Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π±Π΅Π· ΡΠΎΠ΄Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ( ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ OpenGL ΠΈ DirectX, ΠΈ gfx-rs Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ Metal).
ΠΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ DirectX ΠΈ HLSL ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ
VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layou, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° HLSL, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² SPIR-V.
Π ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ Π·Π° Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° Π»ΡΡΠΈ, ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° VRS (ΠΏΠ»ΡΡΠ½ΠΎΡΡ Π½Π° ΡΠ΅Π½ΠΊΠΈΡΠ΅ Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΡΠΊΠΎΡΠΎΡΡ) ΠΈ Mesh ΡΠ΅ΠΉΠ΄Π΅ΡΠΈ.
ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅, ΡΠ΅ API Vulkan Ρ ΡΠ°Π΄ΠΈΠΊΠ°Π»Π½ΠΎΡΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅, ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° GPU ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠ΅Π²Π΅, ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° API Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΎ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ°Π½Π° Π½Π° GPU. ΠΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡ, Vulkan ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° GPU ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ GPU, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅, Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Ρ ΠΈ ΡΡΠ°Π²Π°Ρ ΠΏΠΎ-ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² OpenGL Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, Π² Vulkan ΡΠ° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ΠΈ Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
Vulkan ΠΎΠ±Ρ Π²Π°ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΅Π΄ΠΈΠ½Π΅Π½ API Π·Π° Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Web, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΠ±Ρ API Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠΉΠ½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Vulkan, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Ρ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ GPU, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΠΊΠΎΠ΄Π°, ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅. ΠΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠΈ Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π½ΠΎΠ²ΠΎ ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ 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


