Для производительности графического процессора важно, чтобы кадровые буферы не переключались между частотой отрисовки и выборки из шейдерного фрагмента? Возможно, мне удастся сэкономить видеопамять, переработав буферы кадров в одном кадре, но я опасаюсь, что это может привести к некоторым параллельным оптимизациям, которые может выполнять GPU, когда записи FBO не зависят друг от друга, или просто быть дорогостоящим другим способом.
Справочная информация:
В моем рендерере я выделяю все буферы кадров, которые мне нужны, в текущем кадре, повторно используя предыдущие кадры, если это возможно, и использую их следующим образом:
FBO_0, FBO_1, FBO_n are allocated (FBO_n is the final output)
FBO_0 bind ]_____________________
FBO_0 drawn to ] \
FBO_n bind \
FBO_0 color used as a texture Could the GPU be doing these two tasks
FBO_n drawn to with this texture in parallel thanks to them using seperate FBO?
/
FBO_1 bind ]_____________________/
FBO_1 drawn to ]
FBO_n bind
FBO_1 color used as a texture
FBO_n drawn to with this texture
В этом сценарии, однако, возможно перезапустить FBO_0, чтобы он действовал как FBO_1, уменьшая тем самым всю необходимую видеопамять. Это довольно сложно сделать на практике и потребует большого количества рефакторинга, поэтому я исследую, не приведет ли это к снижению производительности и стоит ли это делать.