Мой вычислительный шейдер работает с трехмерными изображениями - читает из одного и пишет в другой. Время, затрачиваемое на GPU, стабильно в течение последующих запусков, но общее время от отправки вычислений до получения результатов варьируется. Измерение времени ЦП до и после вызова glDispatchCompute
показывает, что для нескольких запусков требуется дополнительное время ЦП. Эти накладные расходы прямо пропорциональны произведению размеров текстуры, т.е. ширины * высоты * глубины. Четкой картины не видно, однако результаты идеально повторяются в экспериментах.
Что может вызвать эти задержки и как предсказать, когда они произойдут?