ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Valve Π² ΡΠΏΠΈΡΡΠΊΠ° Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Mesa Π΅ Π½ΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ Π·Π° Vulkan Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° RADV, ΠΊΠ°ΡΠΎ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ ΠΎΡ AMDGPU, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² OpenGL ΠΈ Vulkan Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ RadeonSI ΠΈ RADV Π·Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ AMD.
Π‘Π»Π΅Π΄ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ Π΄ΠΎΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ°, ACO ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π·Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° Mesa.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΎΡ Valve Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ Π·Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΡΠΎΠΊΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΡ Π² Mesa ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΎΡ LLVM, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΠΆΠ΅Π»Π°Π½Π°ΡΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ Π½Π΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π°Π΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΠ΅ΡΠΎ Π² ΠΌΠΈΠ½Π°Π»ΠΎΡΠΎ Π΅ Π²ΠΎΠ΄Π΅Π»ΠΎ Π΄ΠΎ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ΡΠΎ ΠΎΡ LLVM Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠΎ-Π°Π³ΡΠ΅ΡΠΈΠ²Π΅Π½ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π½Π΅ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡΡΠ° ΠΈ Π·Π° ΠΏΠΎ-ΡΠΈΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ACO Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C++, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΡΠ΅ Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π·Π° JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΡΡΠ·ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΎΠ±Ρ ΠΎΠ΄, ΠΈΠ·Π±ΡΠ³Π²Π°ΠΉΠΊΠΈ ΡΡΡΡΠΊΡΡΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΊΠ°ΡΠΎ ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΠΏΠΈΡΡΡΠΈ ΠΈ Π²Π΅ΡΠΈΠ³ΠΈ def-use. ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° (Static Single Assignment) ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅, ΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΉΠΊΠΈ ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠ΅ΠΉΠ΄ΡΡΠ°.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°ΠΌΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π½ΠΈ (ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΠΈ) ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΠΉΠ΄ΡΡΠΈ Π½Π° Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΈ GPU AMD (dGPU VI+). ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ACO Π²Π΅ΡΠ΅ ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° ΡΠ΅ΠΉΠ΄ΡΡΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΡΠ²Π°Π½ΠΈ ΠΈΠ³ΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΠ΅ΠΉΠ΄ΡΡΠΈ ΠΎΡ ΠΈΠ³ΡΠΈ ΠΊΠ°ΡΠΎ Shadow of the Tomb Raider ΠΈ Wolfenstein II. ΠΡΠΎΡΠΎΡΠΈΠΏΡΡ Π½Π° ACO, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅, ΠΏΠΎΡΡΠΈ Π΄Π²Π° ΠΏΡΡΠΈ Π½Π°Π΄ΠΌΠΈΠ½Π°Π²Π° ΠΊΠΎΠΌΠΏΠ°ΠΉΠ»Π΅ΡΠ° Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ Π½Π° AMDGPU ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° FPS Π² Π½ΡΠΊΠΎΠΈ ΠΈΠ³ΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ³ΡΠ°ΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ RADV.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
