Тестування продуктивності графіки на різних пристроях

Тестування продуктивності графіки на різних пристроях Гра, яка видає стабільні 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.