LINUX.ORG.RU

История изменений

Исправление robus, (текущая версия) :

Я бы вообще и горизонтальную ось изменил справа-налево

Да хоть по диагонали! Хоть экранные координаты вместо гомогенных туда засунуть можно. Просто когда можно в шейдере на каждую вершину выполнять на 1 матричное умножение меньше, за счёт того, что матрица view_projection matrix на хосте расчитан, то хочется этим воспользоваться. В этом суть оптимизации.

скомпилированные модули в SPIR-V, линковка в пайплайне

Нет.

The stage member of each element of pStages must be unique

Таким образом, моменту создания пайплайна каждая стадия должна уже быть слинкована.

Всё с разницей до наоборот. В OpenGL действительно будет жопь, потому что перекомпиляция шейдера обязана быть встроена в поток графики, добавляя неконтролируемую задержку. В Vulkan компиляцию можно разнести по потокам, компилировать в фоне, кешировать результаты, сделать процесс контролируемым.

Ну как бы не придерёшься – действительно, можно разнести по разным потокам компиляцию шейдеров :D Вот только самой компиляции стало больше, по сравнению с OpenGL, где можно было рекомпильнуть один маленький модуль, а тут целиком стадию , да и многопоточность в данном случае не значит асинхронность. Пока шейдеры не скомпилились, этот пайплайн использовать нельзя – не будешь же рендерить мусор.

Но почему-то те же IDE прекрасно работают с подсветкой синтаксиса и даже тяжелющими компиляторами C++ кода в реальном времени без подвисаний.

Вы когда IDE последний раз видели? У меня Qt Creator после запуска целую вечность (около 15 секунд – 15000000 микросекунд) работает в режиме блокнота – код не раскрашен, автодоп не работает, навигации по коду нет. Мне норм подождать 15 секунд, пока сессия в Qt Creator прогрузится, но в графическом движке поиметь фреймтайм в 15000000 почти равносильно катастрофе.

Исходная версия robus, :

Я бы вообще и горизонтальную ось изменил справа-налево

Да хоть по диагонали! Хоть экранные координаты вместо гомогенных туда засунуть можно. Просто когда можно в шейдере на каждую вершину выполнять на 1 матричное умножение меньше, за счёт того, что матрица view_projection matrix на хосте расчитан, то хочется этим воспользоваться. В этом суть оптимизации.

скомпилированные модули в SPIR-V, линковка в пайплайне

Нет.

The stage member of each element of pStages must be unique

Таким образом, моменту создания пайплайна каждая стадия должна уже быть слинкована.

Всё с разницей до наоборот. В OpenGL действительно будет жопь, потому что перекомпиляция шейдера обязана быть встроена в поток графики, добавляя неконтролируемую задержку. В Vulkan компиляцию можно разнести по потокам, компилировать в фоне, кешировать результаты, сделать процесс контролируемым.

Ну как бы не придерёшься – действительно, можно разнести по разным потокам компиляцию шейдеров :D Вот только самой компиляции стало больше, по сравнению с OpenGL, где можно было рекомпильнуть один маленький модуль, а тут целиком стадию , да и многопоточность в данном случае не значит асинхронность. Пока шейдеры не скомпилились, этот пайплайн использовать нельзя – не будешь же рендерить мусор.

Но почему-то те же IDE прекрасно работают с подсветкой синтаксиса и даже тяжелющими компиляторами C++ кода в реальном времени без подвисаний.

Вы когда IDE последний раз видели? У меня Qt Creator после запуска целую вечность (около 15 секунд – 15000000 микросекунд) работает в режиме блокнота – код не раскрашен, автодоп не работает, навигации по коду нет. Мне норм подождать 15 секунд, пока сессия в Qt Creator прогрузится, но в графическом движке поиметь фреймтайм в 15000000 почти равносильно катострофе.