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

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

Страницы: 1 2 3 Следующая »
#15
17:29, 28 окт 2015

Bonus
> Я про переключение Render target'ов, а не про переключение шейдеров/вершинных
> буферов/материалов.
Переключение рендер таргета это точно такое же (почти) переключение стейта в терминах стейтфулл ГАПИ, как и переключение шейдера.
Если у тебя новый рендер таргет точно такого же формата, размера и т.д. то это переключение будет относительно дешевым (это как поинтер поменять), ну и надо заплатить за трансфер данных. Я не особо знаком с архитектурами отличными от ПВРовских, но на пвр чипах на каждом тайле есть свой небольшой буфер для текущего рендер таргета (как я уже выше писал), когда ты переключаешь рендер таргеты, то гпу будет выгружать эти данные в основную память и загружать данные нового таргета.
Иногда этого оверхеда можно избежать - когда тебе больше не нужно содержимое таргета - дискарди его через glDiscardFramebufferEXT https://www.khronos.org/registry/gles/extensions/EXT/EXT_discard_… amebuffer.txt Или используй glClear, когда ты биндишь новый таргет, что бы не читать данные с основной памяти, а просто перезаписать то, что было до этого.

Bonus
> Вот про минимизацию этих переключений и стоит вопрос
Ну так и минимизировать их ты сможешь только отсортировав отрисовку по этим самым рендер таргетам. Плюс, как выше писал Belfegnar стараться использовать буферы меньшего размера.

#16
17:36, 28 окт 2015

innuendo
> Ну, вместо двух проходного Гаусса - делай один. Сумма по N*N выборкам.
Еще надо не забывать про dependent texture fetch, который довольно ощутимо роняет производительность на мобильных девайсах.
Депендент превращается в индепендент, если передавать координаты с вершинного шейдера, вместо вычитания в пиксельном - http://www.sunsetlakesoftware.com/2013/10/21/optimizing-gaussian-… rs-mobile-gpu

#17
17:39, 28 окт 2015

StiX
Дискард делаю, с этим разобрался. РТ все одного формата, по размеру тоже все одинаковые 1/4 экрана. Т.е. в этом смысле максимум сделал.
Но надо еще ужать. Я сделал DOF по статье http://http.developer.nvidia.com/GPUGems3/gpugems3_ch28.html
StiX
> Еще надо не забывать про dependent texture fetch, который довольно ощутимо
> роняет производительность на мобильных девайсах.
С этим тоже разобрался, в пиксельном uv не считаю, все в вертексном и только .xy (.zw он начинает тоже считать как индепендент)

#18
17:52, 28 окт 2015

StiX
> glDiscardFramebufferEXT
ага отличная штука на Android кстати Adreno вроде тоже держит это расширение.

#19
18:31, 28 окт 2015

Andrey
> ага отличная штука на Android кстати Adreno вроде тоже держит это расширение.
Все тайловые держат, даже не тайловая нвидиа держит, правда, оно там ниче не делает, потому, что оно и не гарантирует ничего - это просто хинт

#20
19:02, 28 окт 2015

Andrey
> ага отличная штука на

ай, ай - а как же слова про вендор специфик ?

#21
8:58, 29 окт 2015

innuendo
> ай, ай - а как же слова про вендор специфик ?
Причем тут вендор специфик и GL_EXT_discard_framebuffer который держат практически все распространенные мобильные чипы с OpenGL ES 2.0 и выше. Опять лишь бы ляпнуть?

#22
9:26, 29 окт 2015

Andrey
> Опять лишь бы ляпнуть?

Ну почему же. Держат, как я понял, не все. Сегодня вендор поддерживает, завтра - нет. Не работают тут правила от MS :)

#23
11:28, 29 окт 2015

Andrey
> Опять лишь бы ляпнуть?
Конечно, это же иннуэнда. Я готов поспорить, что в тесте Тьюринга любой человек без замедления определит, что он корявый ИИ

#24
11:45, 29 окт 2015

StiX
> Конечно, это же иннуэнда. Я готов поспорить, что в тесте Тьюринга любой человек
> без замедления определит, что он корявый ИИ

Это говорит человек, предложивший сортировать переключения RenderTargets ? :)

Всегда забавляли люди, которым проходится расжёвывать до строчечки

#25
12:26, 29 окт 2015

innuendo
> расжёвывать до строчечки
до вопросика из одной строчечки.

#26
12:30, 29 окт 2015

Давайте по делу.
У меня следующие вопросы сейчас накопились:
- может ли помочь framebuffer fetch? (примеры использования этой штуки, если можно)
- как замутить пост-процесс на атласах для уменьшения переключений РТ?
- как можно блюрить быстро и качественно за один (или минимум) проходов?

#27
12:54, 29 окт 2015

Bonus
> - как замутить пост-процесс на атласах для уменьшения переключений РТ?

Сдвигая viewport и scissor?

> - как можно блюрить быстро и качественно за один (или минимум) проходов?

Устроит простое усреднение ?

#28
12:57, 29 окт 2015

innuendo
> Сдвигая viewport и scissor?
А как блюрить в этом случае?

innuendo
> Устроит простое усреднение ?
Это как билинейная фильтрация?

#29
13:06, 29 окт 2015

Bonus
> > Устроит простое усреднение ?
> Это как билинейная фильтрация?

1/2 в центре + 4 по 1/8

> А как блюрить в этом случае?

Делать преобразование A*x +b

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

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