今日の体調
体調 | 元気 |
---|---|
就寝 | 23:40 |
起床 | 6:20 |
朝食 | 6:45 |
天気痛 | false |
今日の作業
Vulkanの勉強
正直OpenGLとVulanのパフォーマンスの違いが分かっていなかったので、まとめます。
skia-safeを通して、可能な限り高頻度に1万個の円を描画します。
中央値(体感)を抽出するとこんな感じです。
経過時間 Vulkan [ms] | 経過時間 OpenGL [ms] | 行われた操作 | 操作の働いた場所 |
---|---|---|---|
0 | 0 | 開始 | |
0.125 | 0.221 | クリア | SKCanvas |
2.619 | 2.471 | タスクの追加 | SKCanvas |
3.643 | 2.642 | GPUへの同期 | Skia → GPU |
3.681 | 9.705 | レンダリング(注1) | GPU |
(注1): Vulkanでは並列処理でタスクをGPUに渡す操作を行う。 |
なお、Vulkanは低レベルなため、再描画の度にSurfaceを作成する必要があります。その部分は除外しています1。
OpenGLよりVulkanのほうが最終的なレンダリング時間が少ないように見えますが、これはVulkanが並列処理を扱うことが可能なためです。レンダリングが完了するまで待つようにすると、8msくらいになります。
総合的にみればVulkanのほうがOpenGLより速いのですがね。
ドキュメントの設置
- 地震計
- Programming Paradime
- WebGPU この辺りの追加・修正を行いました。
Footnotes
-
この部分の時間を計測すると0.01msぐらいで、考慮しなくても良いくらいだと思います。 ↩