Why a benchmark app?
With the upcoming release of Qt 5.15 and the improved version of Qt Quick 3D, the developers wanted to offer their customers and other users the ability to easily test the capabilities of their hardware. Thus began the creation of a demo benchmark application.
What can be done about it?
The main purpose of the demo benchmark application is to enable users to easily try out all the supported features of Qt Quick 3D 5.15. This includes, but is not limited to, changing the type and amount of light, the complexity and amount of the model, the size of the texture, materials, and the method and quality of anti-aliasing.
Users can quickly check if, for example, the number of models drawn has a greater impact on the performance of their equipment than the number of triangles in the model. This can be done by changing the settings between drawing 100 x 10k triangle models and 2 x 500k triangle models. The same can be done with light. Try it if, for example, using 1 point light has a bigger performance impact than using 3 directional lights.
All supported post-processing effects can be easily tested with reasonable values. It should be noted that not all effects will work on all types of equipment. If the device supports at least OpenGL ES3.2, then everything should work. If it doesn't, then you may have a problem with your device drivers.
There is a built-in FPS counter that allows the user to directly see the effect of changing any features immediately after making a change to them.
So far, we have only talked about enabling and disabling features, but where is the benchmark test?
Operating modes
The application has 3 modes of operation.
Normal mode
The application starts in normal mode by default. In normal mode, you can adjust all the necessary settings using the swipe view on the right edge of the screen. First you will see a small icon on the edge. Clicking or dragging it will bring up the settings menu. By dragging again, you will also get the effects menu.
You can start the benchmark from normal mode by clicking the
Start Measuring
button in the bottom left corner. This will run the benchmark once and return to normal mode.
There is also another way to run the benchmark if you have a device that does not support touch or other input devices.
Benchmark mode
You can enable benchmark mode by running the application with --mode benchmark as a command line argument. In benchmark mode, only the 3D scene is displayed. There is no FPS counter, menus or buttons on the screen. This is to ensure that the rendering performance of a Qt Quick 3D part is measured without the overhead of rendering Qt Quick Controls UI components.
Benchmark mode performs a 60-second measurement run, after which the application outputs the benchmark results file to the folder from which the application is launched and exits. The same information is displayed on the console. The performance benchmark outputs all enabled/disabled features and rendering performance measurements as shown below.
These examples are for Windows 10 Home 64-bit with an Intel® Core™ TM i7-6700 @ 3.40 GHz (8 processors) and NVIDIA GeForce GTX 1080 running in default benchmark mode.
Screen Size: (1920x1061)
Average FPS: 59.800664451827245
Minimum FPS: 60
Maximum FPS: 60
Minimum Frame Time: 16.257699966430664
Maximum Frame Time: 19.12350082397461
Minimum Render Time: 0.1941986083984375
Maximum Render Time: 0.5038013458251953
Minimum Sync Time: 0.0214996337890625
Maximum Sync Time: 0.11910057067871094
Model: High (100k) (#10)
Light Type: Point
brightness 500
Shadows: OFF
IBL lighting: OFF
Render Mode: Offscreen
Ambient Occlusion: OFF
Skybox: OFF
Antialiasing: Multisample AA (High)
Temporal AA: OFF
Textures: ON
Texture Size: 2048x2048
Material: Default Material
Effects: None
If the application is running on Android, then this mode is not available as standalone. The benchmark can only be started using the Start Measurement button, and the result will be displayed in the text field.
To make the benchmark mode more convenient for a wide range of devices, there are three preset hardware levels and two different settings for the target environment. With the command line argument --preset , the hardware performance level can be set to entrylevel, midrange (default), or highend . The command line argument --target can be set to desktop (desktop) (default) or embedded (embedded) . You can try a combination of them to get an idea of the capabilities of your hardware.
Demo mode
Demo mode is enabled by passing --mode demo as a command line argument. The demo mode will run in a loop indefinitely, as it is designed to work on stands or showcases. The demo mode supports a combination of --preset midrange/highend and --target arguments. There is no separate support for entry level hardware as it doesn't make sense to run demo mode without IBL lighting and skybox for example.