Android에서 성공적인 게임을 개발하려면 성능 및 열 관리 개선이 필수적입니다. 기존에는 개발자가 게임 충실도를 낮추거나 렌더기를 추가로 최적화하여 이러한 문제를 관리해야 했습니다.
이러한 변경사항은 게임별로 적용되는 경향이 있으며 유연하지 않은 경우가 많습니다.
Android 생태계의 몇몇 참여자는 개발자에게 적응형 성능 API를 제공합니다. 적응형 성능 기능의 통합을 간소화하고 생태계의 단편화를 줄이기 위해 Google과 MediaTek은 협력을 통해 Android 동적 성능 프레임워크(ADPF) 및 MediaTek 적응형 게임 기술 (MAGT)과 같은 제품을 통합하고 있습니다.
ADPF는 개발자가 실시간 열 상황에 따라 게임 워크로드를 조정하고 현재 워크로드에 맞게 성능을 최적화할 수 있도록 OS에 힌트를 제공할 수 있는 기능을 제공합니다. 이러한 신호를 사용하여 해상도, 프레임 속도, 리소스 로드 전략과 같은 충실도 및 성능 설정을 조정할 수 있습니다. 이를 통해 성능, 발열, 충실도의 균형을 더 잘 맞추어 Android 게이머에게 가능한 한 최상의 환경을 제공할 수 있습니다. Android 생태계에서 이 기술을
활용하고 있습니다. 카카오 게임즈의 Ares는 Thermal API에 대응하여 런타임 시 워크로드를 조정하여 FPS 안정성을 96%까지 향상할 수 있었습니다.
MediaTek은 Android용 SoC의 선두 제공업체입니다. 이 회사는 새로운 Dimensity 9300과 같은 다양한 칩을 생산하고 있습니다. MediaTek은 2021년부터 제공된 MAGT SDK도 제공합니다. SDK는 실시간 성능에 관한 세분화된 정보 및 워크로드 증가를 위한 힌트와 같이 MediaTek SoC에서 성능 조정을 위한 고급 기능을 제공합니다. MediaTek은 개발자에게 MAGT를 제공할 뿐만 아니라 향상된 ADPF 기능을 제공하기 시작했습니다.
그림 1. MediaTek과 Google의 공동작업
ADPF로 열 조절 방지 및 성능 최적화
MediaTek은 ADPF 프레임워크에서 현재 및 대상 기기 온도에 액세스하여 심각한 제한을 방지할 수 있도록 허용합니다. 애플리케이션은 ADPF getThermalHeadroom() 함수를 활용하여 기기가 심각한 제한에 도달하기 전에 사용 가능한 열 헤드룸의 추정치를 얻을 수 있습니다. 애플리케이션은 이 추정치를 사용하여 워크로드를 동적으로 조정하여 기기가 제한을 트리거하지 않도록 할 수 있으므로 전반적인 사용자 환경을 개선할 수 있습니다.
따라서 MediaTek 플랫폼은 균형 잡힌 전력 소비로 최적의 초당 프레임 수 (FPS)를 지속적으로 제공하여 원활한 사용자 환경을 보장합니다.
향상된 프레임 속도, 전력 소비 감소, 더 긴 게임 세션 지원
전반적으로 Unity Boat Attack 데모는 프레임 속도를 8.5fps로 개선하고 전력 소비를 12% 줄였으며 게임 세션을 25분 이상 늘릴 수 있도록 했습니다. FPS 표준 편차가 25% 감소했습니다.
이렇게 극적인 개선을 통해 게임의 재현성을 높이고 열적으로 지속 가능한 방식으로 더 오랜 기간 플레이 세션을 실행할 수 있습니다.
그림 2. 성능 결과그림 3. FPS 차트
충실도 설정을 조정하지 않고도 성능 힌트 세션을 사용 설정하기만 해도 워크로드의 평균 렌더링 스레드 시간을 거의 10%까지 줄일 수 있었습니다.
MediaTek SoCs의 적응형 성능의 다음 단계
ADPF는 향후 몇 년 동안 새로운 기능과 함께 업그레이드되고 MAGT의 새로운 기기 제약이 없는 기능을 추가할 예정입니다. MediaTek 기기를 최대한 활용하려는 개발자를 위해 MAGT SDK에는 MediaTek 칩셋 아키텍처를 고유하게 타겟팅하는 고급 기능이 포함되어 있으며 곧 핵심 ADPF 기능도 제공할 예정입니다.
Cocos Creator의 경우 v3.8.2에서 Thermal API를, v3.8.3에서 Performance Hint API를 시작할 수 있습니다.
이러한 게임 엔진의 경우 Thermal API가 Adaptive Performance와 통합되어 기기 열 정보를 검색할 수 있으며, Performance Hint API는 추가 작업 없이 Update() 또는 Monitor()마다 자동으로 호출됩니다.
마지막으로 커스텀 엔진의 경우 네이티브 ADPF C++ 샘플을 참조할 수 있습니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2024-03-19(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2024-03-19(UTC)"],[],[],null,["# MediaTek enhances dynamic performance of Android SoCs\n\nImproving performance and thermal management is essential for developing\nsuccessful games on Android. Traditionally, developers had to manage these\nissues by decreasing game fidelity or by further optimizing the renderer.\nThese changes tend to be game specific and can often be inflexible.\n\nSeveral participants in the Android ecosystem offer adaptive performance APIs to\ndevelopers. To simplify the integration of adaptive performance features and\nreduce fragmentation in the ecosystem, Google and MediaTek are\ncollaborating to integrate our offerings: Android Dynamic Performance Framework\n(ADPF) and MediaTek Adaptive Gaming Technology (MAGT).\n\n[ADPF](/games/optimize/adpf) offers developers the ability to adjust game\nworkload based on real-time thermal situations and provide hints to the OS to\noptimize performance for the current workload. You can use these signals\nto adjust fidelity and performance settings such as the resolution, frame rate,\nand even resource loading strategy. This lets you\nbetter balance performance, thermals, and fidelity, giving Android gamers the\nbest possible experience. The Android ecosystem has been putting this technology\nto great use. Kakao Games's Ares was able to\n[increase FPS stability to 96%](/stories/games/kakaogames-adaptability) by\nadjusting the workload at runtime in response to the thermal API.\n\nMediaTek is a leading provider of SoCs on Android. The company produces a number\nof chips, such as the new Dimensity 9300. MediaTek also offers the MAGT SDK,\nwhich has been available since 2021. The SDK provides advanced features for\nperformance tuning on MediaTek SoCs, such as fine-grained information about\nreal-time performance, and hints for increasing workloads. In addition to\noffering MAGT to developers, MediaTek has begun offering enhanced ADPF\ncapabilities.\n**Figure 1.** MediaTek and Google collaboration.\n\nPrevent thermal throttling with ADPF and optimize performance\n-------------------------------------------------------------\n\nMediaTek allows the ADPF framework to access the current and target device\ntemperatures to prevent severe throttling. By utilizing the ADPF\n[`getThermalHeadroom()`](/reference/kotlin/android/os/PowerManager#getthermalheadroom)\nfunction, applications can obtain an estimate of the available thermal headroom\nbefore the device reaches severe throttling. Using this estimate, applications\ncan dynamically adjust workloads to prevent the device from triggering\nthrottling, thereby enhancing the overall user experience.\n\nThe application (using Unity's\n[Boat Attack demo](https://github.com/Unity-Technologies/BoatAttack) as an\nexample) also uses the Performance Hint Session API to optimize its performance.\nIt provides the target frame time and current frame time for each frame through\nthe [`updateTargetWorkDuration()`](/reference/kotlin/android/os/PerformanceHintManager.Session#updatetargetworkduration)\nand [`reportActualWorkDuration()`](/reference/kotlin/android/os/PerformanceHintManager.Session#reportactualworkduration)\nfunctions respectively. The MediaTek platform calculates the workload between\ntwo [`reportActualWorkDuration()`](/reference/kotlin/android/os/PerformanceHintManager.Session#reportactualworkduration)\ncalls and allocates adequate CPU capacity to ensure the workload can be\ncompleted within the target duration.\n\nAs a result, the MediaTek platform consistently delivers optimal frames per\nsecond (FPS) with balanced power consumption, guaranteeing a smooth user\nexperience.\n\nEnable better frame rates, reduced power consumption, and longer gaming sessions\n--------------------------------------------------------------------------------\n\nOverall, the Unity Boat Attack demo improved frame rates by 8.5fps,\nreduced power consumption by 12%, and enabled longer game sessions by 25 minutes\nor more. The FPS standard deviation dropped by 25%.\nSuch a dramatic improvement lets you increase the fidelity of\nyour games and run play sessions for a longer period of time in a thermally\nsustainable way.\n**Figure 2.** Performance results. **Figure 3.** FPS chart.\n\nEven without adjusting the fidelity settings, just by enabling performance hint\nsession, the workload was able to to decrease its average Render thread time by\nalmost 10%.\n\nWhat's next for adaptive performance on MediaTek SoCs\n-----------------------------------------------------\n\nADPF will be upgraded over the coming years with new features and to add new\ndevice-agnostic features from MAGT. For developers looking to get even more out\nof their MediaTek devices, the MAGT SDK contains advanced capabilities that\nuniquely target MediaTek chipset architectures and will soon also offer core\nADPF features.\n**Figure 4.** MediaTek aligned with Android.\n\nGet started with Android adaptability\n-------------------------------------\n\nAndroid Dynamic Performance Framework is now available to all Android game\ndevelopers for [Unity, Unreal, Cocos Creator game engines](https://developer.android.com/games/optimize/adpf/game-engine-support)\nand through our native C++ libraries.\n\n- For Unity developers, you can get started with the [Adaptive Performance provider v5.0.0](https://docs.unity3d.com/Packages/com.unity.adaptiveperformance.google.android@1.2/manual/index.html) . Note that Thermal API is supported by most Android devices from Android 11 (API level 30), and Performance Hint API from Android 12 (API level 31).\n- For Unreal developers, you can get started with the [Android Dynamic Performance Unreal Engine plugin](https://github.com/android/adpf-unreal-plugin) for most Android devices targeting Android 12 (API level 31) or higher.\n- For Cocos Creator, you can get started with Thermal API from v3.8.2 and Performance Hint API from [v3.8.3](https://github.com/cocos/cocos-engine/tree/v3.8.3).\n\nFor these game engines, the thermal APIs are integrated with Adaptive\nPerformance to help you retrieve device thermal information, and the performance\nhint API is called automatically every `Update()` or `Monitor()` without any\nadditional work.\nAnd lastly, for custom engines, you can reference our\n[native ADPF C++ sample](https://github.com/android/games-samples/tree/main/agdk/adpf)\n.\n\nAdditional resources\n--------------------\n\nLearn how [Android Dynamic Performance Framework](/games/optimize/adpf) can help\nyou stabilize your game's FPS and reduce thermal throttling.\n\nLearn about [MediaTek Adaptive Gaming Technology](https://www.mediatek.com/technology/gaming-technologies)\nfor advanced performance tuning on MediaTek SoCs."]]