Π Π΅Π»ΠΈΠ· Mesa 19.3.0, свободной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ OpenGL ΠΈ Vulkan

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ· свободной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API OpenGL ΠΈ Vulkan — Mesa 19.3.0. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ выпуск Π²Π΅Ρ‚ΠΊΠΈ Mesa 19.3.0 ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ статус — послС провСдСния ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стабилизации ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия 19.3.1. Π’ Mesa 19.3 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL 4.6 для GPU Intel (Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ i965, iris), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL 4.5 для GPU AMD (r600, radeonsi) ΠΈ NVIDIA (nvc0), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Vulkan 1.1 для ΠΊΠ°Ρ€Ρ‚ Intel ΠΈ AMD. Π’Ρ‡Π΅Ρ€Π° измСнСния для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ OpenGL 4.6 Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ radeonsi, Π½ΠΎ Π² Π²Π΅Ρ‚ΠΊΡƒ Mesa 19.3 ΠΎΠ½ΠΈ Π½Π΅ вошли.

Π‘Ρ€Π΅Π΄ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

  • Для RADV (Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для Ρ‡ΠΈΠΏΠΎΠ² AMD) ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ бэкСнд для компиляции ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² «ACO«, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ развиваСтся ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Valve Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ компилятору ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² LLVM. БэкСнд Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° обСспСчСниС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ для ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° достиТСниС ΠΎΡ‡Π΅Π½ΡŒ высокой скорости компиляции. ACO написан Π½Π° языкС Π‘++, разрабатываСтся с оглядкой Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния для JIT-компиляции ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ быстрыС для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° структуры Π΄Π°Π½Π½Ρ‹Ρ…, избСгая структур Π½Π° основС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ основываСтся Π½Π° SSA (Static Single Assignment) ΠΈ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ распрСдСлСниС рСгистров, Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вычисляя рСгистр Π² зависимости ΠΎΡ‚ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π°. ACO ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ для GPU Vega 8, Vega 9, Vega 10 ΠΈ Navi 10 Ρ‡Π΅Ρ€Π΅Π· выставлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния «RADV_PERFTEST=aco»;
  • Π’ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Gallium3D-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Zink, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ API OpenGL ΠΏΠΎΠ²Π΅Ρ€Ρ… Vulkan. Zink позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ ускорСнный OpenGL ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π² систСмС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ API Vulkan;
  • Π’ Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ ANV ΠΈ OpenGL-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ iris Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 12 поколСния Ρ‡ΠΈΠΏΠΎΠ² Intel (Tiger Lake, gen12). Π’ ядро Linux, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Tiger Lake, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ начиная с выпуска 5.4;
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… i965 ΠΈ iris обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ прСдставлСния ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² SPIR-V, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π² Π΄Π°Π½Π½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ OpenGL 4.6;
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ RadeonSI Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° GPU AMD Navi 14 ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ срСдства ускорСния дСкодирования Π²ΠΈΠ΄Π΅ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° дСкодирования Π²ΠΈΠ΄Π΅ΠΎ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ 8K Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… H.265 ΠΈ VP9;
  • Π’ Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ RADV Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½ΠΎΠΉ компиляции, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ запускаСмыС для компиляции ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° seccomp. Π Π΅ΠΆΠΈΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния RADV_SECURE_COMPILE_THREADS;
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… для Ρ‡ΠΈΠΏΠΎΠ² AMD задСйствован появившийся Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ядра AMDGPU ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс для сброса GPU;
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° систСмах с APU AMD Radeon. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Gallium3D-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Iris для GPU Intel;
  • Π’ Gallium3D-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ LLVMpipe, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ отрисовку, появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ²;
  • БистСма ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² Π½Π° дискС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° для систСм, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… большС 4 ядСр CPU;
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ систСмы сборки Meson для компиляции Π² Windows с использованиСм MSVC ΠΈ MinGW. ИспользованиС для сборки scons объявлСно ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ для систСм, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Windows;
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ EGL-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ EGL_EXT_image_flush_external;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ OpenGL:
  • Π’ Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ RADV (для ΠΊΠ°Ρ€Ρ‚ AMD) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:
  • Π’ Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ANV (для ΠΊΠ°Ρ€Ρ‚ Intel) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ AMD Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ APU «Vega» 7nm Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ GCN (Graphics Core Next).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru