Войти
Мобильные платформыФорумОбщее

OpenGL ES. Надо ли отвязать текстуру после отрисовки. (2 стр)

Страницы: 1 2
#15
7:09, 27 окт. 2013

>Понял. Будем читать

Как проходит чтение ?


#16
20:42, 27 окт. 2013

innuendo
Отлично: eglspec.1.4:

If dpy and surface are the display and surface for the calling thread’s current
context
, eglSwapBuffers and eglCopyBuffers perform an implicit flush operation
on the context (glFlush for an OpenGL or OpenGL ES context
, vgFlush for an
OpenVG context)

Можно убрать лишние вызовы glFlush.

С Android все понятно.
Для IOS это тоже не нужно
https://developer.apple.com/library/ios/documentation/3ddrawing/c… 08793-CH6-SW3

#17
21:00, 27 окт. 2013

>If dpy and surface are the display and surface for the calling thread’s current
>context, eglSwapBuffers and eglCopyBuffers perform an implicit flush operation
>on the context (glFlush for an OpenGL or OpenGL ES context, vgFlush for an
>OpenVG context)

>Можно убрать лишние вызовы glFlush.

Ох.Понятно, же что если есть один поток, то flush  будет в любом случае иначе будет бяка на экране. Вот когда много нитей, или текстурка асинхронно грузится ?

>С Android все понятно.
>Для IOS это тоже не нужно
>https://developer.apple.com/library/ios/documentation/3ddrawing/c… 08793-CH6-SW3

Тут как раз и описывается когда нужно ... ничего нового впрочем :)

#18
13:15, 28 окт. 2013

Я текстуры не отвязываю. Наоборот даже написал текстурный менеджер, который запоминает где какие текстуры и повторно не биндит.

#19
14:03, 28 окт. 2013

alorken
> Я текстуры не отвязываю.

Один чел тоже не отвязывал - потом полезли баги, потратил пару часов на отладку ...

> Наоборот даже написал текстурный менеджер, который запоминает где какие
> текстуры и повторно не биндит.

Замечательно. Если не секрет, какой % профита от этого ?

#20
15:17, 28 окт. 2013

innuendo
> Один чел тоже не отвязывал - потом полезли баги,
И ведь стопудов баг был не в том, что к неиспользуемому текстурному юниту была прибиндена текстура.
Чел рассказал, где именно он напортачил?

#21
15:37, 28 окт. 2013

RPGman
> И ведь стопудов баг был не в том, что к неиспользуемому текстурному юниту была
> прибиндена текстура.

Один случай был как раз в этом. Отменил байндинг - баг пропал.

Ну и совсем классика - кешируем текстурный байндинг ... а в другом модуле удаляем эту текстурку

#22
15:53, 28 окт. 2013

innuendo
> кешируем текстурный байндинг ... а в другом модуле удаляем эту текстурку
А это проблема GL'я, или таки кривые ручки? :)

#23
15:57, 28 окт. 2013

RPGman
> А это проблема GL'я, или таки кривые ручки? :)

У мну такое правило - сначала делаем тупо с всякими очистками на каждый чих - тестим что получилось... Потом уже всякие оптимизации-кешировании

#24
16:05, 28 окт. 2013

Вопрос же не про оптимизации, а про то, необходимо ли явно анбиндить текстуры, если следующая отрисовка про них не в курсе.
Правильный ответ - не надо. Потому что даже биндя ноль, на самом деле прибиндивается другая текстура, что как-бы совсем не полный анбинд.
А повторно бинди сколько хочется. Убирание повторных биндов и будет оптимизацией.

#25
16:40, 29 окт. 2013

Andrey
>
>
> Можно убрать лишние вызовы glFlush.

Кстати, тут http://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-T… itectures.pdf тоже есть про glFlus

Страницы: 1 2
Мобильные платформыФорумОбщее

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