Skip to content

Latest commit

 

History

History
46 lines (31 loc) · 3.19 KB

performance-comparison.md

File metadata and controls

46 lines (31 loc) · 3.19 KB

Performance Comparison

I made a video that compares the loading time and average running FPS of each desktop glTF viewer applications. Click the below image will redirect the page to the YouTube video (due to the GitHub's policy, I cannot directly embed the video into markdown).

Desktop glTF Application Performance Comparison

Experiment Methods

The applications used for comparison are:

  • F3D: Fast and minimalist 3D viewer (upper-left).
  • gltf-viewer-rs: glTF 2.0 file viewer written in Rust using Vulkan (lower-left).
  • And my application (lower-right).

And it loads the following models sequentially:

I tried to make the running configuration as same as possible for fair comparison.

  • For F3D, I turned off the ambient occlusion, axis/grid visualization and HDRI ambient lighting. And turned on the antialiasing and HDRI skybox lighting. Since F3D is based on OpenGL, it does not support the Metal FPS HUD, therefore I used the application-provided FPS meter.
  • For gltf-viewer-rs, I turned off the SSAO and turned on the HDR tone mapping.
  • For my application, I disabled the mouse picking and outline rendering.
  • For Vulkan applications (except for F3D),
    • I disabled the validation layer for the entire system using Vulkan configurator.
    • I provided the environment variables MVK_CONFIG_SPECIALIZED_QUEUE_FAMILIES=1 (which enables the dedicated compute and transfer queue family in MoltenVK) and MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS=1 (which enables the Metal argument buffers in MoltenVK) for best performance.

Result

Loading Time

Model F3D gltf-viewer-rs vk-gltf-viewer
(baseline)
ABeautifulGame 3.05 s
(2.06x)
2.58 s
(1.74x)
1.48 s
Sponza 2.3 s
(8.21x)
0.9 s
(3.21x)
0.28 s
Sunrise Temple Environment 29.87 s
(19.78x)
3.4 s
(2.25x)
1.51 s
Tetris Factory 34.85 s
(20.5x)
4.09 s
(2.41x)
1.7 s

Loading time bar chart

Rendering Time

TODO. See the above video for detail.