Не так давно в Vulkan появились расширения GL_ARB_shader_clock и GL_EXT_shader_realtime_clock, с их помощью можно получить время работы шейдера и время работы потока в сабгруппе.
В моей библиотеке для отладки и профилирования GLSL кода glsl_trace эти расширения используются для замера времени работы каждой пользовательской функции в коде, а также для построения тепловой карты кадра, где видны самые медленные пиксели.
Библиотека используется в моем фреймворке FrameGraph, где реализованы функции упрощающие работу с отладчиком и профилировщиком шейдеров.
Типичный маршинг по SDF
Более интересно посмотреть как работает RTX:
Тут видно, что на границах ограничивающих объемов (BVH) время работы увеличивается.
Еще интересное наблюдение - кролик невиден из-за шторы, но на нахождение пересечений с ним тратится не мало времени, причем поиск пересечений уходит вглубь иерархии в поиске точных пересечений.
Комментариев нет:
Отправить комментарий