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

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

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

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° прослойка для Π²Ρ‹Π±ΠΎΡ€Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ устройства для API Vulkan Π² систСмах с нСсколькими GPU с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Vulkan, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с DRI_PRIME для OpenGL. Для Π²Ρ‹Π±ΠΎΡ€Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΈ GPU прСдусмотрСна пСрСмСнная окруТСния MESA_VK_DEVICE_SELECT (Ссли Π½Π΅ установлСна ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ DRI_PRIME).
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ i965 ΠΈ iris для GPU Intel Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Ρ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π³ΠΎΠ΄Ρƒ Ρ‡ΠΈΠΏΠΎΠ² Π½Π° Π±Π°Π·Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Rocket Lake.
  • Π’ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ для GPU Intel Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ANV Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° оптимизация для Ρ‡ΠΈΠΏΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Icelake (Gen11), Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ использованиС чистых Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ тСкстурировании. ΠŸΡ€ΠΈ тСстировании Π² Dota2 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ число ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ прСобразования Ρ†Π²Π΅Ρ‚ΠΎΠ² Π½Π° 95% ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° 3.5%.
  • Π’ Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ ANV ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ использования кэша Π½Π° систСмах с Ρ‡ΠΈΠΏΠ°ΠΌΠΈ Intel Ivybridge ΠΈ Haswell. ИспользованиС тСстов Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Vulkan ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Geekbench 5 ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° 330% Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ Haswell GT3 (прирост Π·Π° счёт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ кэш Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… условиях Π½Π΅ использовался).
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для GPU Intel (i965, iris) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ «Ρ‡Ρ‘Ρ€Π½ΠΎΠΉ Π΄Ρ‹Ρ€Ρ‹» (OpenGL-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ INTEL_blackhole_render), ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ GPU, Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ OpenGL.
  • Для графичСских Ρ‡ΠΈΠΏΠΎΠ² Intel ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Ρ€Π°Π½Π΅Π΅ добавлСнная для Ρ‡ΠΈΠΏΠΎΠ² AMD ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ NIR, бСстипового ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ прСдставлСния (IR) ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ², Π½Π°Ρ†Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° самом Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, ΠΏΠΎΠ΄ GLSL IR ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ IR Mesa. Π‘ практичСской стороны Π·Π° счёт Π±ΠΎΠ»Π΅Π΅ качСствСнной ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ OpenGL ΠΈ Vulkan Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ³Ρ€Π°Ρ… Π½Π° систСмах с GPU Intel. НапримСр, Π² ΠΈΠ³Ρ€Π΅
    Rise of the Tomb Raider отмСчаСтся прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° 3%, Π° Π² Shadow of the Tomb Raider Π½Π° 10%.

  • Π’ бэкСнд для компиляции ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² «ACO«, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ развиваСтся ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Valve Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ компилятору ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² LLVM, для GPU GFX9+ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚ΠΈΠΏΠ° shaderInt16, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 16-разрядныС Ρ†Π΅Π»Ρ‹Π΅ числа Π² ΠΊΠΎΠ΄Π΅ ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ². Для
    GPU AMD Navi (GFX10) обСспСчСно ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠΊΠΎΠ² NGG (Next-Gen Geometry) ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π΅Ρ€ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ ΠΈ тСссСляционными ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ.

  • Для GPU AMD Navi 12 ΠΈ Navi 14 Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ DCC (Delta Π‘olor Π‘ompression), ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ со сТатыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° NIR для классичСского Gallium3D-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° R600 (AMD Radeon HD 2000-6000) с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ гСомСтричСских, Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ…, Π²Π΅Ρ€ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΈ тСссСляционных ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ².
  • Π’ Vulkan Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ RADV Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ‚Ρ‡ Π·Π° счёт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€ Id Tech Π½Π° систСмах с APU AMD.
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ Panfrost Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL ES 3.0 ΠΈ обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 3D-Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° для GPU Bifrost (Mali G31). ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ рСализация компилятора ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ спСцифичный для GPU Bifrost Π½Π°Π±ΠΎΡ€ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… инструкций.
  • Π’ Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ TURNIP, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ для GPU Qualcomm Adreno, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° гСомСтричСских ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΈ Ρ‡ΠΈΠΏΠΎΠ² Adreno 650.
  • Π’ Gallium3D-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ LLVMpipe, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ отрисовку, появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° тСссСляционных ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ².
  • ВнСсСна большая порция ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ Π² glthread (многопоточная рСализация OpenGL). ПослС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π³ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ симулятора Torcs выросла Π½Π° 16% Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Π½Π° 40% ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ glthread.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция allow_draw_out_of_order (Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· driconf) для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ для ускорСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ нСупорядочСнной отрисовки, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… для БАПР. ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π² тСстС Viewperf11 Catia Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ ускорСниС Π² 7%.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ OpenGL:
  • Π’ Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ RADV (для ΠΊΠ°Ρ€Ρ‚ AMD) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:
    • VK_AMD_memory_overallocation_behavior
    • VK_KHR_shader_non_semantic_info
    • VK_EXT_robustness2
    • VK_KHR_8bit_storage для ΠΊΠ°Ρ€Ρ‚ GFX8+ ΠΏΡ€ΠΈ использовании бэкСнда компиляции ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² «ACO»
    • VK_KHR_16bit_storage для ΠΊΠ°Ρ€Ρ‚ GFX8+ ΠΏΡ€ΠΈ использовании бэкСнда компиляции ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² «ACO» (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ storageInputOutput16)
    • VK_KHR_shader_float16_int8 для ΠΊΠ°Ρ€Ρ‚ GFX8+ ΠΏΡ€ΠΈ использовании бэкСнда компиляции ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² «ACO» (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ storageInputOutput16)
  • Π’ Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ANV (для ΠΊΠ°Ρ€Ρ‚ Intel) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:

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