Comments 4
Интересно, как происходит дебаггинг шейдеров?
Можно каким-то образом увидеть состояние переменных в запущенном шейдере? На сколько я понимаю, в момент работы могут быть запущены тысячи шейдеров одновременно, так?
Для отладки шейдеров существуют различные инструменты. Одни из них созданы под конкретного производителя GPU: NVIDIA Nsight, Radeon Developer Tool Suite. Другие универсальны: RenderDoc.
Про возможность просмотра значений локальных переменных шейдеров я не слышал. Возможно, такое доступно в каких-нибудь эмуляторах. Обычно, отладка производится на уровне просмотра входных и выходных данных шейдера.
Как верно отмечено, шейдер запускается одновременно на сотнях-тысячах процессоров GPU. Это работает по принципу SIMD.
Пример не собирается, начиная с самого первого. Видимо winit теперь по другому устроен. Допишите в текст, какую именно версию вы использовали. (0.27.4?)
Поспешил отправить... в WGPU тоже появились изменения, но их не сложно было адаптировать - в основном новые поля у структур.
Код шейдера из примера в статье не парсится, но работает код из примера на гитхабе.
Короче, кому надо, вот код адаптированный под
[dependencies]
pollster = "0.3.0"
wgpu = "0.18.0"
winit = "0.27.4"
Основы рендеринга с wgpu на Rust