В нескольких источниках видел предупреждение о том, что переключение активного RT - это дорогая операция сама по себе, а на мобилках с tile-based архитектурой все еще хуже. Отсюда вопросы
- с чем связаны проблемы на мобилках? как их лечить?
- какие существуют приемы для минимизации переключений?
Bonus
> - с чем связаны проблемы на мобилках?
с тем, что пропускная способность памяти там небольшая, шина узкая, память медленная. Если переключаешь рендер таргеты, то гпу надо выгружать мегабайты рендер буфера (на имг, как минимум)
Bonus
> как их лечить?
минимизацией переключений
Bonus
> - какие существуют приемы для минимизации переключений?
сортировать отрисовку по самым дорогим стейтам
StiX
> сортировать отрисовку по самым дорогим стейтам
а если пост-процесс? там же этих переключений на каждом шагу!
StiX
> > - какие существуют приемы для минимизации переключений?
> сортировать отрисовку по самым дорогим стейтам
Как это относится как переключению RT ? Как их минимизировать? Просто не рендерить ? :)
Bonus
> а если пост-процесс? там же этих переключений на каждом шагу!
фейкают все в основных шейдерах обычно)) ну или работают с уменьшенными в несколько раз буферами, чтобы меньше таскать. Читал еще про экстешоны, которые позволяют использовать что-то типа локальных буферов per-тайл. подробностей не знаю) там у одного-двух вендоров такое только
innuendo
> https://www.khronos.org/message_boards/showthread.php/12904
Получается, что оптимизировать можно только отключением проходов в пост-процессе? Типа 4 блюр-прохода 5x5 будут медленней чем 2 10x10?
а можно как-нибудь замутить блюр на framebuffer fetch?
Belfegnar
> Читал еще про экстешоны, которые позволяют использовать что-то типа локальных
> буферов per-тайл
А можешь ссылкой поделиться?
innuendo
> Как это относится как переключению RT ?
на прямую
innuendo
> Как их минимизировать?
сортировкой
innuendo
> Просто не рендерить ? :)
Просто не пиши тут :)
StiX
> > Как их минимизировать?
> сортировкой
Вот делаешь ты пинг-понг, что там можно минимизировать ?
StiX
> > - какие существуют приемы для минимизации переключений?
> сортировать отрисовку по самым дорогим стейтам
я честно говоря тоже не очень понял
Bonus
> я честно говоря тоже не очень понял
http://realtimecollisiondetection.net/blog/?p=86
StiX
> http://realtimecollisiondetection.net/blog/?p=86
Я какбэ вообще про другое! Я про переключение Render target'ов, а не про переключение шейдеров/вершинных буферов/материалов.
Представь пустую сцену с одними только пост-эффектами, например Bloom или DOF.
В постэффектах происходит много переключений активного рендер таргета (текстуры, в которую рендерим).
Вот про минимизацию этих переключений и стоит вопрос
Bonus
> Представь пустую сцену с одними только пост-эффектами, например Bloom или DOF.
> В постэффектах происходит много переключений активного рендер таргета
> (текстуры, в которую рендерим).
Ну, вместо двух проходного Гаусса - делай один. Сумма по N*N выборкам.
Делается один очень толстый постпроцесс
innuendo
> Ну, вместо двух проходного Гаусса - делай один. Сумма по N*N выборкам.
> Делается один очень толстый постпроцесс
ну как вариант...
еще копаю в сторону framebuffer fetch (iOS), походу он мало чем поможет
а еще можно как-то с атласами поиграться, сгруппировать как-нибудь проходы по текстурам, в этом есть смысл вообще?
Тема в архиве.