今日の体調

体調元気
就寝23:40
起床6:20
朝食6:45
天気痛false

今日の作業

Vulkanの勉強

正直OpenGLとVulanのパフォーマンスの違いが分かっていなかったので、まとめます。

skia-safeを通して、可能な限り高頻度に1万個の円を描画します。
中央値(体感)を抽出するとこんな感じです。

経過時間 Vulkan [ms]経過時間 OpenGL [ms]行われた操作操作の働いた場所
00開始
0.1250.221クリアSKCanvas
2.6192.471タスクの追加SKCanvas
3.6432.642GPUへの同期Skia → GPU
3.6819.705レンダリング(注1)GPU
(注1): Vulkanでは並列処理でタスクをGPUに渡す操作を行う。

なお、Vulkanは低レベルなため、再描画の度にSurfaceを作成する必要があります。その部分は除外しています1

OpenGLよりVulkanのほうが最終的なレンダリング時間が少ないように見えますが、これはVulkanが並列処理を扱うことが可能なためです。レンダリングが完了するまで待つようにすると、8msくらいになります。

総合的にみればVulkanのほうがOpenGLより速いのですがね。

ドキュメントの設置

Footnotes

  1. この部分の時間を計測すると0.01msぐらいで、考慮しなくても良いくらいだと思います。