>Понял. Будем читать
Как проходит чтение ?
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
>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
Тут как раз и описывается когда нужно ... ничего нового впрочем :)
Я текстуры не отвязываю. Наоборот даже написал текстурный менеджер, который запоминает где какие текстуры и повторно не биндит.
alorken
> Я текстуры не отвязываю.
Один чел тоже не отвязывал - потом полезли баги, потратил пару часов на отладку ...
> Наоборот даже написал текстурный менеджер, который запоминает где какие
> текстуры и повторно не биндит.
Замечательно. Если не секрет, какой % профита от этого ?
innuendo
> Один чел тоже не отвязывал - потом полезли баги,
И ведь стопудов баг был не в том, что к неиспользуемому текстурному юниту была прибиндена текстура.
Чел рассказал, где именно он напортачил?
RPGman
> И ведь стопудов баг был не в том, что к неиспользуемому текстурному юниту была
> прибиндена текстура.
Один случай был как раз в этом. Отменил байндинг - баг пропал.
Ну и совсем классика - кешируем текстурный байндинг ... а в другом модуле удаляем эту текстурку
innuendo
> кешируем текстурный байндинг ... а в другом модуле удаляем эту текстурку
А это проблема GL'я, или таки кривые ручки? :)
RPGman
> А это проблема GL'я, или таки кривые ручки? :)
У мну такое правило - сначала делаем тупо с всякими очистками на каждый чих - тестим что получилось... Потом уже всякие оптимизации-кешировании
Вопрос же не про оптимизации, а про то, необходимо ли явно анбиндить текстуры, если следующая отрисовка про них не в курсе.
Правильный ответ - не надо. Потому что даже биндя ноль, на самом деле прибиндивается другая текстура, что как-бы совсем не полный анбинд.
А повторно бинди сколько хочется. Убирание повторных биндов и будет оптимизацией.
Andrey
>
>
> Можно убрать лишние вызовы glFlush.
Кстати, тут http://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-T… itectures.pdf тоже есть про glFlus
Тема в архиве.