• Nikitos's avatar
    Выбор GPU-бэкенда и понятный отказ D3D12 без DXIL
    · bfe12549
    Nikitos создал
    Пробел из docs/TASKS.md §12.5. Раньше бэкенд выбирала SDL, а при неудаче
    печаталась одна строка «SDL_CreateGPUDevice: …» — без имени бэкенда и без
    списка доступных, поэтому на машине с одним рабочим бэкендом приходилось
    угадывать, а окно выглядело пустым.
    
    * --gpu <имя> и переменная R2D_GPU выбирают бэкенд (metal, vulkan, direct3d12;
      привычное «d3d12» принимается); --list-gpu печатает собранные бэкенды и
      выходит, не открывая окно;
    * при недоступном бэкенде отказ перечисляет собранные альтернативы, а не
      оставляет окно-зомби;
    * для D3D12 добавлена прямая подсказка: он работает только с DXIL, нужна сборка
      с DXC либо другой бэкенд;
    * имя бэкенда передаётся в r2d_app_init аргументом: там структура приложения
      обнуляется (SDL_zero), и записать поле до вызова было бы недостаточно — этот
      баг нашёлся при первой же проверке (запрос молча игнорировался).
    
    Проверка: tests/agent/cli_gpu_test.py (5 проверок: список бэкендов, отказ с
    перечислением, выбор metal, переменная R2D_GPU), полный набор qjs и агентских
    тестов зелёный. Пункт 5 плана (§12) закрыт целиком.
    bfe12549