Всем привет.
Воодушевился с утра списком фичеров prman 11, в частности, его новой переменной, которая показывает время выполнения шейдера и которую можно вывести в отдельную картинку - и смотреть, где в сцене затыки со сложными шейдерами. Решил попробовать сделать что-то похожее, не дожидаясь prman 11
Что для этого сделал:
1. Написал DSO с 2мя функциями: starttimer и stoptimer. Для таймера использовал GetSystemTime из Win32, поскольку использовать QueryPerformanceCounter посчитал оверкиллом.
2. Первая функция считывает время, вторая - повторно считывает и вычитает.
3. В шейдере вставил вызовы этих функций. Получившуюся разницу вывожу в качестве output varying float в другую картинку - 16bit TIFF.
Ограничения схемы понятны, поскольку на самом деле мы считаем совсем не то, что prman11, который может учитывать полные расходы на рендеринг, а не только shading - мы считаем только shading.
Проблемы:
1. Время не считается Собственно, и вся проблема.
Продолбался уже часов несколько. Полное впечатление, что собственно shading не занимает времени вообще что неправильно. Либо он как-то хитро кэшируется...
В общем, помогите, кто может и кому интересно. Всё лежит по адресу:
http://www.dream.com.ua/downloads/shadertimer.zip
21k
Воодушевился с утра списком фичеров prman 11, в частности, его новой переменной, которая показывает время выполнения шейдера и которую можно вывести в отдельную картинку - и смотреть, где в сцене затыки со сложными шейдерами. Решил попробовать сделать что-то похожее, не дожидаясь prman 11
Что для этого сделал:
1. Написал DSO с 2мя функциями: starttimer и stoptimer. Для таймера использовал GetSystemTime из Win32, поскольку использовать QueryPerformanceCounter посчитал оверкиллом.
2. Первая функция считывает время, вторая - повторно считывает и вычитает.
3. В шейдере вставил вызовы этих функций. Получившуюся разницу вывожу в качестве output varying float в другую картинку - 16bit TIFF.
Ограничения схемы понятны, поскольку на самом деле мы считаем совсем не то, что prman11, который может учитывать полные расходы на рендеринг, а не только shading - мы считаем только shading.
Проблемы:
1. Время не считается Собственно, и вся проблема.
Продолбался уже часов несколько. Полное впечатление, что собственно shading не занимает времени вообще что неправильно. Либо он как-то хитро кэшируется...
В общем, помогите, кто может и кому интересно. Всё лежит по адресу:
http://www.dream.com.ua/downloads/shadertimer.zip
21k