Разработка ждёт балета
1.65K subscribers
510 photos
4 videos
15 files
1.55K links
What I cannot create, I do not understand.

DM: @alexey_mileev
PeerLab: https://xn--r1a.website/+e2ND1tAa0lU2ZTli
Download Telegram
Некто Дмитрий Рабецкий (надеюсь, не переврал фамилию) написал классную статью про рендеринг 2D графики и Hardware Acceleration. Тут важно понимать, что речь идёт не про рисование каких-то простых кастомных вьюшек, а про несколько более сложные конструкции.

#view #rendering #graphics
https://medium.com/rosberryapps/make-your-custom-view-60fps-in-android-4587bbffa557
Выступление Chet Haase и Romain Guy. Тут ты должен был стать заинтригован.
В докладе описывается весь Android Rendering Pipeline, но поскольку вместить это в 40 минут не получится, доклад выглядит как быстрое набрасывание названий разных классов и модулей. Тем не менее, вдумчиво его посмотреть я бы скорее советовал.
Наброшу несколько названий из доклада, чтобы ты понимал, о чём речь: Choreographer, VSync, UI Thread, RenderThread, SurfaceFlinger, BufferQueue, Hardware Composer (HWC).
Теперь несколько интересных фактов из сессии:
1. Начиная с Android Oreo можно использовать Bitmap.Config.HARDWARE, чтобы аллоцировать Bitmap напрямую на GPU и не тратить время на копирование. Недостаток: если серьёзно разойтись, можно получить пачку совершенно невнятных крашей из глубин фреймворка
2. Кусочек хинта (почему так - см. видео) - чем меньше Window объектов на экране, тем лучше
3. Метод invalidate(left, top, right, bottom) можно больше не дрочить - система уже умеет неплохо оптимизировать этот момент, а багов от его использования уйма
4. “RecyclerView is now able to do prefetching of items ahead of time”
5. Graphika app on Github - пачка примеров с использованием SurfaceFlinger, Surface, SurfaceView, media encoder, virtual displays.
6. adb shell dumpsys SurfaceFlinger лучше выполнять, когда что-то анимируется/меняется на экране, иначе можно получить не совсем точные данные из-за дополнительных оптимизаций
Подробности обо всём этом найдёшь по ссылке.

#rendering #window #surface #gpu
https://youtu.be/zdQRIYOST64
В статье (прислал @lounvh) рассказывают про некоторые подходы к улучшению производительности RecyclerView. Один из подходов - это эдакий scheduler для операций на UI-потоке. На реализацию я бы смотрел с недоверием, но сама идея классная.

#recycler #rendering #ui
Прямо отличный пост с разбором только части сложностей с отрисовкой текста.

#text #font #rendering
👍2
Хорошее видео "по верхам", чтобы оценить только малую часть сложности рендеринга в современных играх.

#talk #gamedev #rendering
👍3
Очень красивая симуляция планеты, подобной Земле, на шейдерах.

#gpu #art #rendering
🔥2
Чел нырнул в безумную сложность рисования текста, от простой загрузки глифов из файла, до нормального рендеринга разных хитрых шрифтов.

#talk #font #rendering
👍3