ПрограммированиеФорумГрафика

Render target switching и его цена на всяких там iOS/Android

Страницы: 1 2 3 Следующая »
#0
13:45, 27 окт 2015

В нескольких источниках видел предупреждение о том, что переключение активного RT - это дорогая операция сама по себе, а на мобилках с tile-based архитектурой все еще хуже. Отсюда вопросы
- с чем связаны проблемы на мобилках? как их лечить?
- какие существуют приемы для минимизации переключений?

#1
15:54, 27 окт 2015

Bonus
> - с чем связаны проблемы на мобилках?
с тем, что пропускная способность памяти там небольшая, шина узкая, память медленная. Если переключаешь рендер таргеты, то гпу надо выгружать мегабайты рендер буфера (на имг, как минимум)
Bonus
> как их лечить?
минимизацией переключений
Bonus
> - какие существуют приемы для минимизации переключений?
сортировать отрисовку по самым дорогим стейтам

#2
15:56, 27 окт 2015

StiX
> сортировать отрисовку по самым дорогим стейтам
а если пост-процесс? там же этих переключений на каждом шагу!

#3
19:58, 27 окт 2015

StiX
> > - какие существуют приемы для минимизации переключений?
> сортировать отрисовку по самым дорогим стейтам

Как это относится как переключению RT ? Как их минимизировать? Просто не рендерить ? :)

#4
20:10, 27 окт 2015

Bonus
> а если пост-процесс? там же этих переключений на каждом шагу!
фейкают все в основных шейдерах обычно)) ну или работают с уменьшенными в несколько раз буферами, чтобы меньше таскать. Читал еще про экстешоны, которые позволяют использовать что-то типа локальных буферов per-тайл. подробностей не знаю) там у одного-двух вендоров такое только

#5
22:49, 27 окт 2015

https://www.khronos.org/message_boards/showthread.php/12904

#6
16:33, 28 окт 2015

innuendo
> https://www.khronos.org/message_boards/showthread.php/12904
Получается, что оптимизировать можно только отключением проходов в пост-процессе? Типа 4 блюр-прохода 5x5 будут медленней чем 2 10x10?

а можно как-нибудь замутить блюр на framebuffer fetch?

#7
16:35, 28 окт 2015

Belfegnar
> Читал еще про экстешоны, которые позволяют использовать что-то типа локальных
> буферов per-тайл
А можешь ссылкой поделиться?

#8
16:55, 28 окт 2015

innuendo
> Как это относится как переключению RT ?
на прямую

innuendo
> Как их минимизировать?
сортировкой

innuendo
> Просто не рендерить ? :)
Просто не пиши тут :)

#9
17:01, 28 окт 2015

StiX
> > Как их минимизировать?
> сортировкой

Вот делаешь ты пинг-понг, что там можно минимизировать ?

#10
17:07, 28 окт 2015

StiX
> > - какие существуют приемы для минимизации переключений?
> сортировать отрисовку по самым дорогим стейтам
я честно говоря тоже не очень понял

#11
17:08, 28 окт 2015

Bonus
> я честно говоря тоже не очень понял
http://realtimecollisiondetection.net/blog/?p=86

#12
17:13, 28 окт 2015

StiX
> http://realtimecollisiondetection.net/blog/?p=86
Я какбэ вообще про другое! Я про переключение Render target'ов, а не про переключение шейдеров/вершинных буферов/материалов.
Представь пустую сцену с одними только пост-эффектами, например Bloom или DOF.
В постэффектах происходит много переключений активного рендер таргета (текстуры, в которую рендерим).
Вот про минимизацию этих переключений и стоит вопрос

#13
17:23, 28 окт 2015

Bonus
> Представь пустую сцену с одними только пост-эффектами, например Bloom или DOF.
> В постэффектах происходит много переключений активного рендер таргета
> (текстуры, в которую рендерим).

Ну, вместо двух проходного Гаусса - делай один. Сумма по N*N выборкам.
Делается один очень толстый постпроцесс

#14
17:26, 28 окт 2015

innuendo
> Ну, вместо двух проходного Гаусса - делай один. Сумма по N*N выборкам.
> Делается один очень толстый постпроцесс
ну как вариант...
еще копаю в сторону framebuffer fetch (iOS), походу он мало чем поможет
а еще можно как-то с атласами поиграться, сгруппировать как-нибудь проходы по текстурам, в этом есть смысл вообще?

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.