mafulechkaApril 30, 2020, 4:36 p.m.

Introducing Qt Quick 3D Benchmarking App

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.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!


Only authorized users can post comments.
Please, Log in or Sign up

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:70points,
  • Rating points1

Qt - Test 001. Signals and slots

  • Result:84points,
  • Rating points4
Last comments
kmssrFeb. 8, 2024, 6:43 p.m.
Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVADec. 25, 2023, 10:30 a.m.
Boost - static linking in CMake project under Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
JonnyJoDec. 25, 2023, 8:38 a.m.
Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
GvozdikDec. 18, 2023, 9:01 p.m.
Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Now discuss on the forum
BlinCTJune 25, 2024, 1 a.m.
Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
Evgenii Legotckoi
Evgenii LegotckoiJune 24, 2024, 3:11 p.m.
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
BlinCTMay 5, 2024, 5:46 a.m.
Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
Evgenii Legotckoi
Evgenii LegotckoiMay 2, 2024, 2:07 p.m.
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.
IscanderCheApril 30, 2024, 4:22 a.m.
Во Flask рендер шаблона не передаётся в браузер Доброе утро! Имеется вот такой шаблон: <!doctype html><html> <head> <title>{{ title }}</title> <link rel="stylesheet" href="{{ url_…

Follow us in social networks