LINUX.ORG.RU

Нужен ли мезе llvm чтобы скомпилировать код SPIR-V в бинарный код для GPU?

 , , ,


0

1

Vulkan instead provides an intermediate binary format called SPIR-V (Standard Portable Intermediate Representation), analogous to the binary format that HLSL shaders are compiled into in DirectX. By allowing shader pre-compilation, application initialization speed improved and a larger variety of shaders can be used per scene. This also removed the need for GPU vendors to implement GLSL compilers, resulting in easier driver maintenance, and smaller driver packages in theory

Как убедиться, что нужен или не нужен (не читая исходников)?

Цель - получить этот бинарный формат на другой машине, где установлен кросс-компилятор. Карта заранее известна.

Можно ли бинарный код загнать через API Vulkan или Mesa напрямую?

★★☆

Последнее исправление: Einstok_Fair (всего исправлений: 3)

Ответ на: комментарий от anonymous

А вдруг можно готовый финальный код напрямую в карту засунуть через апи MESA-ы? Или ещё как-нибудь?

Einstok_Fair ★★☆
() автор топика

вопросы на уровне шокконтента

НЕТ НЕЛЬЗЯ

SPIR-V это как java.class файл, это ИНТЕРПРЕТИРУЕМЫЙ драйвером байткод, это НЕ БИНАРНИК ДЛЯ ВИДЕОКАРТЫ

драйвер генерирует БИНАРНИК для КАЖДОЙ видеокарты ОТДЕЛЬНО непосредственно в системе

получить этот бинарный формат на другой машине

даже имея две одинаковы видеокарты на 1 системе и скомпиляв 1 GLSL файл, сделав сохранение https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_get_program_binary... и загрузив на ВТОРОЙ(на тойже системе такойже видеокарте) он НЕ БУДЕТ РАБОТАТЬ

также реквестирую бан этому челику

missxu
()
Ответ на: комментарий от missxu

загрузив на ВТОРОЙ(на тойже системе такойже видеокарте) он НЕ БУДЕТ РАБОТАТЬ

По каким-то причинам, которые можно выписать, проработать и устранить (адреса наверное поправить).

Главное, что загрузить можно.

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от anonymous

Ну ты доку-то по ссылке прочитай. Там написано что у всех получается и только у некоторых неудачников - нет.

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от Einstok_Fair

запусти игру-она скомпилит все шейдеры ОДИН РАЗ-при втором запуске она ЗАГРУЗИТ СКОМПИЛЕННЫЕ ШЕЙДЕРЫ без рекомпиляции

выключи компьютер

вытащи видеокарту

вставь ТОЧНО ТАКУЮЖЕ но другую(вторую)

включи компьютер

СКоМПИЛЕННЫЕ ШЕЙДЕРЫ НЕ ЗАГРУЗЯТСЯ

если версия драйвера новая-тоже рекомпиляция, старые бинарники не загрузятся

они грузятся ТОЛЬКО НА ТОЙ КАРТЕ КОТОРОЙ СКОМПИЛЕНЫ и только на той версии драйвера для которой скомпилены, перетыкать карту из системы в систему не выйдет

anonymous
()
Ответ на: комментарий от anonymous

они грузятся ТОЛЬКО НА ТОЙ КАРТЕ КОТОРОЙ СКОМПИЛЕНЫ

решаемая задача. Скомпилировать на одной системе, переставить карту, запустить на другой системе

только на той версии драйвера для которой скомпилены

версию можно обеспечить одинаковую, не проблема

перетыкать карту из системы в систему не выйдет

почему?

Einstok_Fair ★★☆
() автор топика
Ответ на: комментарий от Einstok_Fair

Уже определись - тебе впукан изучать, или написание драйверов. Для первого просто делай это полностью на нормальном компе. На второе ты пока даже близко не тянешь.

anonymous
()
Ответ на: комментарий от anonymous

Драйвер есть в составе mesa, mesa собирается под mips (у неё есть такой USE-флаг). Значит самому мне драйвер писать не нужно, страхи это твои.

Einstok_Fair ★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.