WSL2 MESA: ошибка: ZINK: не удалось выбрать pdev после glxinfo -B

Вопрос или проблема

Предпосылка: Я новичок в этой теме

Я пытаюсь настроить свою WSL для тестирования численных расчетов (на основе OpenGL) на графических процессорах.
Я уже установил CUDA, nvcc --version, nvidia-smi и glxgears кажутся работающими правильно (Смотрите здесь для вывода).

Однако у меня есть следующий вывод после glxinfo -B:

название дисплея: :0
MESA: ошибка: ZINK: не удалось выбрать pdev
glx: не удалось создать экран drisw
дисплей: :0  экран: 0
прямой рендеринг: Да
Расширенная информация о рендерере (GLX_MESA_query_renderer):
    Производитель: Microsoft Corporation (0xffffffff)
    Устройство: D3D12 (NVIDIA GeForce GTX 1650 Ti с дизайном Max-Q) (0xffffffff)
    Версия: 24.0.9
    Ускоренный: да
    Видеопамять: 11996MB
    Объединенная память: нет
    Предпочтительный профиль: core (0x1)
    Максимальная версия профиля core: 4.6
    Максимальная версия совместимого профиля: 4.6
    Максимальная версия профиля GLES1: 1.1
    Максимальная версия профиля GLES[23]: 3.1
Строка производителя OpenGL: Microsoft Corporation
Строка рендерера OpenGL: D3D12 (NVIDIA GeForce GTX 1650 Ti с дизайном Max-Q)
Строка версии профиля core OpenGL: 4.6 (Core Profile) Mesa 24.0.9-0ubuntu0.2
Строка версии языка шейдинга профиля core OpenGL: 4.60
Флаги контекста профиля core OpenGL: (нет)
Маска профиля профиля core OpenGL: core profile

Строка версии OpenGL: 4.6 (Compatibility Profile) Mesa 24.0.9-0ubuntu0.2
Строка версии языка шейдинга OpenGL: 4.60
Флаги контекста OpenGL: (нет)
Маска профиля OpenGL: compatibility profile

Строка версии профиля OpenGL ES: OpenGL ES 3.1 Mesa 24.0.9-0ubuntu0.2
Строка версии языка шейдинга профиля OpenGL ES: OpenGL ES GLSL ES 3.10

Это мешает моему приложению, что приводит к сбоям в тестовых случаях.
Я пытался обновить до более новой версии MESA с помощью ppa, но это привело к другой ошибке.

У вас есть идеи, как это исправить? Любая помощь будет очень полезна!

Дополнительная информация:
Ubuntu 24.04
ПК: Razer Blade-stealth
Видеокарта: NVIDIA GeForce GTX 1650 Ti с дизайном Max-Q
Windows 11

У меня была похожая проблема, и мне помогло следующее:

sudo apt install mesa-utils libgl1-mesa-dri libgl1-mesa-glx
export LIBGL_ALWAYS_SOFTWARE=1

Возможно, не удастся установить libgl1-mesa-glx, однако это все равно работает с установленной переменной окружения.

Ответ или решение

Решение ошибки ZINK в WSL2: «failed to choose pdev» после выполнения glxinfo -B

Ваша проблема связана с использованием WSL2 (Windows Subsystem for Linux 2) и ошибки, возникающей в MESA во время работы с OpenGL. Давайте проанализируем вашу ситуацию более детально, чтобы найти оптимальное решение.

Понимание проблемы

Ошибка MESA: error: ZINK: failed to choose pdev указывает на проблему с выбором подходящего физического устройства (physical device) для графической обработки. Это часто связано с конфигурацией OpenGL в WSL2 и взаимодействием с драйверами NVIDIA.

Ваша система работает на базе Ubuntu 24.04 и использует графическую карту NVIDIA GeForce GTX 1650 Ti. Важно отметить, что OpenGL запускается через API D3D12 в WSL, что может вызывать определённые ограничения или особенности в его работе.

Возможные шаги по устранению ошибки

  1. Обновление компонентов MESA: Убедитесь, что у вас установлены последние версии библиотек MESA. Попробуйте выполнить следующее:

    sudo apt update
    sudo apt install mesa-utils libgl1-mesa-dri libgl1-mesa-glx

    Это обновит необходимые вам пакеты, что может исправить проблемы совместимости.

  2. Использование софтварной рендеринга: Как указано вами, наличие переменной среды LIBGL_ALWAYS_SOFTWARE=1 позволяет использовать программный рендеринг, что в некоторых случаях обходит проблемы с аппаратным обеспечением.

    export LIBGL_ALWAYS_SOFTWARE=1
  3. Проверка конфигурации и драйверов NVIDIA: Убедитесь, что драйверы NVIDIA правильно установлены и обновлены. Вы можете использовать следующую команду для проверки состояния драйверов:

    nvidia-smi
  4. Проверка параметров WSL: Убедитесь, что ваша конфигурация WSL соответствует рекомендациям по улучшению обработки графики. Возможно, потребуется редактирование файла конфигурации .wslconfig в вашем домашнем каталоге на Windows, добавив:

    [wsl2]
    guiApplications=true
  5. Работа с D3D12: Поскольку OpenGL в WSL2 использует D3D12, стоит удостовериться, что OpenGL корректно интегрируется с вашей видеокартой через преобразование вызовов. Если проблема сохраняется, возможно, стоит обратить внимание на совместимость используемых инструментов и пакетов.

Завершение

Обратите внимание, что работа с графическими API и их взаимодействие в среде WSL2 может быть непростой задачей, особенно для пользователей, начинающих в этой области. Если все предложенные шаги не помогают, возможно, стоит рассмотреть переход к другой среде для тестирования CUDA и OpenGL, либо открытие вопроса на специализированных форумах или платформах, посвящённых разработке в области GPU.

Если у вас возникнут дополнительные вопросы или потребуется дальнейшая поддержка, не стесняйтесь обращаться за помощью. Удачи в ваших экспериментах с OpenGL на GPU!

Оцените материал
Добавить комментарий

Капча загружается...