Robloxは、数多くのアンドロイドデバイスで実行されますが、可能な限りよいパフォーマンスを達成できることが当社にとって重要です。 レンダリングのパフォーマンスは特に大変です。数多くの違うハードウエア構築物、出力曲線や性能曲線において数多くの違う種類のデバイス、そしてもちろん広範囲で異なる数多くのドライバーをターゲットにしています。
2018年にVulkanレンダラーを始動させてから、当社のOpenGLレンダラーと比較して市場占有率を着実に増やしており、現在、当社のアンドロイドユーザーベースでVulkanを使用している人が最大40%になっています。
最初の始動の後、Vulkanのバックエンドがますます人気が高まるにつれ、分析パフォーマンスと改善にかなりの時間を投資する必要がありました。 これをするのには、かなりの調査と実験が必要でした。最低限のパフォーマンスに焦点を当てた最適化かそのときに利用できるコードで、当社にとってそれぞれの特定の問題を解決するために違うアプローチを試し、何が最適な解決方法かを解明しなければなりませんでした。
リブート開発レッド2019では、2つの違った視点からパフォーマンス最適化の問題にARMとの合同講演を行いました:
- 現在、ARMによって開発され、Khronosに寄付されたパフォーマンスに焦点を当てたサンプルのVulkanコード類があり、それはこちらで読むことができます: https://www.khronos.org/blog/vulkan-releases-unified-samples-repository。 ARMのジョー・ロゼック(Joe Rozek)は、使用されたサンプルと枠組みの一般的な構造について話しました。
- 他の開発者がVulkanコードを最適化し、Robloxで遭遇する問題と解決方法についての洞察を提供するのを助けるために、私は当社のレンダラーを最適化しているときに遭遇した数々の具体的な問題と調査しなければならなかった妥協点と採用した解決法について話しました。
この講演のビデオは、YouTube (https://www.youtube.com/watch?v=hPW5ckkqiqA)で公開しており、スライドはこちらからダウンロードできます (https://zeux.io/data/reboot2019.pdf)。
Robloxコーポレーションとこのブログは、いかなる企業もサービスも推奨も支持もしません。 また、このブログに含まれる情報の正確さまたは完全性について、いかなる保証または約束もしません。
このブログ記事は、元はRobloxテックブログ に掲載されたものです。