Как стать автором
Обновить

Комментарии 6

Как человеку, не знакомому з WGPU, интересно, каков оверхед на сложных сценах?

Какова разница в FPS, если сравнивать с реализацией той же сцены, но на Vulkan или OpenGL

Это лучше измерять для конкретной сцены. По крайней мере CPU часть поверх Vulkan точно ощутимо быстрее реализации OpenGL. Где-то 5-30% разницы точно должно быть. Когда-то портировал nanovg на wgpu-rs (с некоторыми твиками). В тот момент, когда там было два параллельных бекенда (момент отладки порта) оно было ощутимо быстрее на wgpu-rs даже без специальных измерений (среднее время отрисовки кадра только).

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

Вообще рекомендую поспрашивать в https://t.me/rust_gamedev_ru. Или даже в https://matrix.to/#/#wgpu-users:matrix.org, может кому-то будет не лень измерить. Честно говоря wgpu-rs ценен не производительностью, а в первую очередь портабельностью и удобством использования.

Меня одного смущает блокирующий цикл event_loop.run внутри асинхронной функции? Конкретно в данном примере это неважно, но так-то этот цикл тайком забирает один из потоков у tokio.

Меня смущает использование tokio для этого примера. Здесь будет достаточно pollster или чего-то такого. И разумеется нет смысла оборачивать всё-всё-всё в async, только инициализацию. Выглядит глупо при том, что тут нет попыток разобраться с тем, как работает асинхронная загрузка данных на GPU.

EventLoop как и Window здесь не имеют отношения к WGPU, они импортируются из пакета для кроссплатформенной работы с окнами Winit, который в свою очередь не церемонится с асинхронностью по причине своей архитектуры, но выполняет своё дело он хорошо.

А вот это любопытно. Спасибо. Хорошая точка для входа в rust.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории