Использование вывода Vulkan в электронном виде - PullRequest
2 голосов
/ 27 мая 2020

Я хочу использовать Electron в качестве наложения отладки для сборки Vulkan Render Engine. Поскольку у меня много требований к этому инструменту отладки, написание его в движке заняло бы слишком много времени. Я хотел бы использовать электрон вместо Qt или аналогичного, поскольку я считаю его намного более мощным и гибким с меньшими усилиями (после того, как он заработал).

Проблема в том, что теперь мне нужно каким-то образом получить результат рендеринга на электрон или выход электронов на мой двигатель. Насколько я могу судить, самым простым решением было бы скопировать данные обратно в процессор, а затем передать их. Но это было бы очень медленно и стоило бы большого количества трафика. Так что мне было интересно, есть ли лучшее решение.

У меня есть две идеи, как заставить это работать, но я не нашел способов их реализовать, и даже не нашел никого, кто бы об этом говорил.

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

Вторая идея заключалась в том, чтобы сделать наоборот. Использование элемента холста с webgl и снова использование внешней памяти vulkan для копирования вывода моего движка в текстуру и ее отображения. У меня есть полный контроль над процессом рисования, поэтому я думаю, что он будет намного проще и стабильнее. Однако я снова не нашел способа настроить дескриптор текстуры webGL в качестве объекта внешней памяти.

Есть ли лучший способ сделать это или помочь в том, как это реализовать?

...