SDL_CreateWindow завершается ошибкой, когда установлен флаг SDL_WINDOW_VULKAN - PullRequest
0 голосов
/ 26 мая 2018

когда я пытаюсь запустить этот код

if(SDL_Init(SDL_INIT_VIDEO) < 0)
    printf("%s\n", SDL_GetError());
if(!SDL_CreateWindow("test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_VULKAN))
    printf("%s\n", SDL_GetError());

после установки рабочих драйверов gpu и связывания vulkan, я получаю такой вывод:

Поддержка Vulkan либо не настроена вSDL или отсутствует в видеодрайвере

Я работаю в Ubuntu с официальными драйверами Geforce GTX 660M + и SDL2 версии 2.0.8.Похоже, ошибка в SDL, но я хотел попросить, чтобы убедиться.

1 Ответ

0 голосов
/ 28 мая 2018

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

Попробуйте скомпилировать

int main() { return 0; }

и добавьте все нужные флаги ссылок.

Ошибка говорит о том, что бинарные файлы SDL не скомпилированы с включенной поддержкой vulkan.Вам нужно будет скомпилировать SDL вручную.Vulkan, вероятно, будет macroe'd, если не установлен флаг компиляции.

Кстати, я пошел по правилам libsdl2 в пакетах Ubuntu (я думаю, у вас есть Ubunt 18.04>) и на самом деле Vulkan отключен

# the SDL module for Vulkan not compiling even in Linux at the moment
confflags += --disable-video-vulkan
...