Тестирование производительности графики на различных устройствах

Игра, которая выдаёт стабильные 60 fps на Pixel 7, может провалиться до 18 fps на Redmi Note 9 — и это не потому что телефон «слабый». Это потому что Adreno 618 и Mali-G52 по-разному обрабатывают один и тот же шейдер, и никто не проверял поведение на Mali до релиза. Мы каждый день разбираем такие ке

Наши компетенции

Другие услуги студии

VR/AR/MR приложения на заказ

Впечатляйте клиентов и обучайте команду в виртуальной реальности

Разработка игр на Unity

От идеи до релиза — игры, которые запоминаются

3D-моделирование и анимация

Оживим ваш продукт в объёмной графике и анимации

VR-тренажёры промышленного оборудования

Тренируем операторов на технике без риска и простоя

AR-инструкции для производства

Пошаговые подсказки прямо на оборудовании — без бумаги

Safety-тренажёры

Отработка ЧС и техники безопасности без выхода на объект

VR/AR-тренинги

Обучаем персонал сервису, адаптации и soft skills в VR

Обучающие викторины

Проверка знаний в формате игры — легко и без стресса

Корпоративные видеоинструкции

Понятные ролики для обучения сотрудников и клиентов

Геймификация бизнес-процессов

Мотивируем команду через игровые механики в KPI и HR

Приложения для инфокиосков

Интерактивные экраны для магазинов, стендов и офисов

VR/AR-инсталляции

Wow-эффект для брендов на выставках, ивентах и в шоу-румах

Виртуальные выставки и музеи

Ваша экспозиция доступна из любой точки мира — 24/7

Event-квесты и брендированные игры

Запоминающиеся игры для конференций и клиентских ивентов

Часто задаваемые вопросы

Последние работы

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    1515
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    1017
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    649
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    729
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Обучающая викторина для детей «Покупки в магазине»
    117

Игра, которая выдаёт стабильные 60 fps на Pixel 7, может провалиться до 18 fps на Redmi Note 9 — и это не потому что телефон «слабый». Это потому что Adreno 618 и Mali-G52 по-разному обрабатывают один и тот же шейдер, и никто не проверял поведение на Mali до релиза. Мы каждый день разбираем такие кейсы и знаем, как превратить slideshow в плавную картинку. За время работы мы провели тестирование более 50 проектов — от гиперказуалок до open-world RPG. Тестирование производительности графики — это про понимание аппаратных различий и про то, чтобы игра не теряла аудиторию.

Что входит в работу

Этап Результат
Анализ проекта и сбор билдов Матрица устройств, тестовые сценарии
Профилирование baseline Frame time, draw calls, overdraw, memory по каждому устройству
Итеративная оптимизация Атласирование, LOD, GPU Instancing, occlusion culling, Shader LOD
Повторное тестирование Сравнение метрик до/после, выявление новых проблем
Отчёт и обучение команды Документация, логи, доступ к отчётам на 2 месяца

Почему игра тормозит только на устройствах с Mali GPU?

Архитектура Mali использует tile-based deferred rendering, при котором overdraw и шейдерные инструкции с высокой точностью могут вызывать падение производительности. Например, точность mediump в textureCubeLod может триггерить софтверный fallback. Мы выявляем такие случаи через Mali Graphics Debugger.

Где прячутся реальные проблемы производительности

Draw calls и batching. 200 draw calls на мобильном устройстве — красная зона. UI через Canvas в режиме Overlay с несколькими дочерними canvas, каждый из которых делает override sorting, гарантированно разрывает все батчи. Результат: 80 draw calls только на HUD, которые можно свести к 5–8 при правильной иерархии.

Overdraw. На мобильных GPU (tile-based deferred rendering) overdraw убивает производительность быстрее, чем на десктопных. Рендеринг одного пикселя 4 раза подряд — в 4 раза больше работы на GPU. Particle systems с Additive blending, UI-слои без culling, прозрачные меши — типичные источники. RenderDoc окрашивает overdraw тепловой картой прямо в viewport.

Тепловой троттлинг. Среднебюджетные Android-устройства через 3–5 минут интенсивной игры снижают тактовую частоту CPU/GPU на 20–40% из-за перегрева. На эмуляторе это не воспроизводится. Поэтому тест на sustained performance — только на реальном железе, минимум 20 минут игровой сессии.

Как составить матрицу устройств для тестирования?

Тестировать на одном «репрезентативном» устройстве — недостаточно. Минимальная матрица для мобильного проекта:

  • Low-end (target floor): Qualcomm Snapdragon 460/Adreno 610, Mali-G52, 3 GB RAM.
  • Mid-range (основная аудитория): Snapdragon 700-серия/Adreno 618-619, Mali-G76, 4–6 GB RAM.
  • High-end (флагман): Snapdragon 8 Gen 2, Apple A16, 8+ GB RAM.

iOS отдельно: iPhone SE 2 (A13), iPhone 12 (A14), iPhone 14 Pro (A16) — три поколения, три разных Metal-поведения.

Почему тест на эмуляторе не заменяет реальное железо?

Эмулятор не воспроизводит тепловой троттлинг — он использует ресурсы ПК без ограничений. Кроме того, эмулятор не эмулирует tile-based архитектуру Mali и PowerVR, поэтому overdraw и шейдерные проблемы могут остаться незамеченными. Только на физическом устройстве можно замерить реальный FPS budget, температурные сбросы и поведение аккумулятора.

Инструменты и методология

Основной workflow: Unity Profiler → Frame Debugger → Memory Profiler → платформо-специфичные инструменты.

Unity Profiler даёт breakdown CPU по потокам и GPU timeline, но GPU timeline работает корректно не на всех устройствах. На некоторых Android через ADB Profiler показывает нули в GPU блоке. В этом случае используем нативные инструменты:

  • Adreno GPU Profiler (Qualcomm): детализированная разбивка по стадиям пайплайна, HSR efficiency, shader cycle counts.
  • Mali Graphics Debugger (Arm): аналогично для Mali-архитектур, плюс визуализация bandwidth.
  • Xcode Instruments + Metal Debugger: для iOS/Metal — обязательный инструмент.
  • RenderDoc — кроссплатформенный frame capture с полным state inspector для анализа проблем шейдеров и батчинга.

Для автоматизированного бенчмаркинга — Unity Performance Testing Package. Позволяет писать тесты, замеряющие метрики (frame time, GC allocations, draw calls) и сохраняющие baseline.

Как мы это делаем

  1. Первичный анализ: изучаем билд, определяем целевые устройства, согласовываем матрицу.
  2. Профилирование baseline: на каждом устройстве фиксируем frame time, draw calls, overdraw, memory.
  3. Идентификация узких мест: находим проблемные сцены (начало матча, взрывные эффекты, открытые пространства).
  4. Итеративная оптимизация: атласирование текстур, LOD-группы, GPU Instancing, occlusion culling, Shader LOD.
  5. Повторное тестирование: после каждого изменения — замер на всех устройствах.
  6. Валидация: проверка sustained performance (20+ минут) и отчёт с рекомендациями.
Объём тестирования Ориентировочные сроки
Профилирование одной сцены, 2 устройства 3–5 дней
Полное профилирование игры, матрица 6 устройств 2–3 недели
Тестирование + оптимизация + валидация 4–8 недель

Свяжитесь, чтобы обсудить детали и оценить ваш проект. Получите консультацию инженера с опытом оптимизации под любые GPU.