Добавить в корзинуПозвонить
Найти в Дзене
DigiNews

Обновление графического драйвера WSL расширяет поддержку GPU для Linux-приложений

Обновления драйвера dxgkrnl для WSL2 и расширение OpenGL MESA_map_buffer_client_pointer призваны улучшить запуск неродных приложений. Между тем, доработки WINE и OpenGL ускоряют работу приложений Windows на 64-битных хостах. — theregister.com Независимо от того, какую операционную систему вы используете, у вас есть больше шансов запускать неродные приложения. Виртуализация Linux поверх Windows немного ускорится, как и запуск приложений Windows поверх 64-битного Linux и macOS. На этой неделе обновления получили два совершенно разных набора графических драйверов, и хотя они не связаны, оба преследуют одну и ту же цель: повышение производительности графики при запуске неродных приложений поверх другой ОС. Первый из них упоминался в The Register ранее — хотя и довольно давно. Шесть лет назад мы писали о новом драйвере Microsoft dxgkrnl, который позволяет Linux, работающему под WSL2, получать доступ к функциям DirectX графического процессора хостовой ОС. Microsoft активно продвигала это в т
Оглавление

Обновления драйвера dxgkrnl для WSL2 и расширение OpenGL MESA_map_buffer_client_pointer призваны улучшить запуск неродных приложений. Между тем, доработки WINE и OpenGL ускоряют работу приложений Windows на 64-битных хостах. — theregister.com

Независимо от того, какую операционную систему вы используете, у вас есть больше шансов запускать неродные приложения. Виртуализация Linux поверх Windows немного ускорится, как и запуск приложений Windows поверх 64-битного Linux и macOS.

На этой неделе обновления получили два совершенно разных набора графических драйверов, и хотя они не связаны, оба преследуют одну и ту же цель: повышение производительности графики при запуске неродных приложений поверх другой ОС.

Первый из них упоминался в The Register ранее — хотя и довольно давно. Шесть лет назад мы писали о новом драйвере Microsoft dxgkrnl, который позволяет Linux, работающему под WSL2, получать доступ к функциям DirectX графического процессора хостовой ОС. Microsoft активно продвигала это в то время, и даже сейчас у драйвера есть собственный раздел на сайте документации Microsoft.

Dxgkrnl не обновлялся почти ровно четыре года. После его внедрения в 2020 году он получил значительную переработку в 2022 году — по сути, версия 2 — а через несколько месяцев Microsoft рефакторизировала код для ясности и удобства проверки, присвоив ему метку PATCH v3. Новый патч в списке рассылки ядра Linux представляет версию 4 драйвера.

Эта версия поддерживает графические процессоры, предназначенные только для вычислений, для запуска этих болезненно модных — или просто болезненных — LLM, а также несколько виртуальных графических процессоров на виртуальную машину и совместное использование буфера драйвера через dma-fence. Конечно, сам DirectX остается закрытым исходным кодом, и драйвер бесполезен в любом другом контексте, кроме как при работе под Hyper-V поверх Windows.

WINE продолжает стимулировать новые разработки

WSL2 запускает одну реальную копию Linux внутри Windows, при этом контейнеры имитируют различные дистрибутивы. Это сильный контраст с оригинальным WSL десятилетней давности. Теперь его называют WSL1, он предоставлял уровень трансляции для преобразования вызовов API Linux в вызовы Windows, производные от давно ушедшего в прошлое рантайма Project Astoria для запуска приложений Android на Windows Phone.

Так получилось, что WSL1 больше похож на то, как работает WINE, чем на WSL2. WINE также является уровнем трансляции, который преобразует вызовы API Windows в эквиваленты Linux. Как мы сообщали в начале 2024 года, WINE 9.0 представил танкинг с 32-бит до 64-бит: он мог запускать 32-битные исполняемые файлы Windows на 64-битных хостовых ОС без использования какой-либо 32-битной подсистемы на хосте — что необходимо для всех версий macOS начиная с 10.15 “Catalina”. С выпуском WINE 11 в этом году это настолько интегрировано, что команд wine32 или wine64 больше нет.

WINE процветает в последние годы благодаря Valve. Их дистрибутив SteamOS 3, изначально созданный для портативной игровой консоли Steam Deck, запускает игры Windows на Linux с помощью Proton от Valve, который встроен в клиент Steam для Linux. SteamOS 3 настолько успешен, что Valve планирует выпустить больше аппаратного обеспечения Steam позднее в этом году.

В OpenGL еще есть жизнь

Успех Valve в продаже потребительского игрового оборудования, основанного на эмуляции на уровне ОС, стимулирует не только разработку Linux. Это также стимулирует изменения в OpenGL.

Еще в 2024 году Дерек Лешо из Codeweavers поднял новую проблему в списке рассылки mesa-dev: Помощь Wine в использовании 64-битных драйверов Mesa OGL для 32-битных приложений Windows. В прошлом году он подробнее объяснил это в GitLab Mesa. Проблема затрагивает WINE, когда он запускает 32-битную игру Windows на 64-битной хостовой ОС. Когда WINE выделяет блок памяти GPU для игры с помощью API glMapBuffer, адрес этого буфера будет 64-битным, но WINE не может передать этот адрес 32-битному приложению, если адрес не помещается в 32-битный адресный диапазон.

(Любой, кто когда-либо пытался добавить более 4 ГБ ОЗУ на компьютер с Windows XP, а затем обнаружил, что 32-битная XP не видит дополнительную память, сталкивался с другим аспектом той же проблемы.)

После обсуждения результатом стал новый API OpenGL, называемый MESA_map_buffer_client_pointer. Его резюме гласит:

Это расширение позволяет приложению указывать диапазоны указателей, в пределах которых должны быть отображены буферы.

Иными словами, при выделении буфера оно позволяет приложению запросить, чтобы буфер находился в заданном адресном диапазоне, чтобы он был доступен 32-битному коду без медленных операций копирования.

Прошло уже десять лет с тех пор, как The Register сообщил о спецификации открытой графики Vulkan 1.0, но разработки продолжаются и в его предшественнике, OpenGL. Даже если Microsoft прекратила поддержку 16-битных приложений в Windows, а Apple прекратила поддержку 32-битных приложений в macOS, WINE работает над тем, чтобы эти старые исполняемые файлы Windows хорошо работали на современных 64-битных Unix-подобных ОС. ®

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Автор – Liam Proven

Оригинал статьи