[...]
= "basic" render
$ QSG_INFO=1 mediawriter
Debug: QSG: basic render loop ((null):0, (null))
Debug: texture atlas dimensions: 1024x512 ((null):0, (null))
Debug: R/G/B/A Buffers: 8 8 8 0 ((null):0, (null))
Debug: Depth Buffer: 24 ((null):0, (null))
Debug: Stencil Buffer: 8 ((null):0, (null))
Debug: Samples: -1 ((null):0, (null))
Debug: GL_VENDOR: nouveau ((null):0, (null))
Debug: GL_RENDERER: Gallium 0.4 on NV98 ((null):0, (null))
Debug: GL_VERSION: 3.0 Mesa 13.0.0-rc2 ((null):0, (null))
Debug: GL_EXTENSIONS: ...
Debug: Max Texture Size: 8192 ((null):0, (null))
Debug: Debug context: false ((null):0, (null))
...
$ ps -C mediawriter -o cmd,%cpu
CMD %CPU
mediawriter 30.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
= "windows" render
$ QSG_INFO=1 QSG_RENDER_LOOP=windows mediawriter
Debug: windows render loop ((null):0, (null))
Debug: Using sg animation driver ((null):0, (null))
Debug: Animation Driver: using vsync: 16.67 ms ((null):0, (null))
Debug: texture atlas dimensions: 1024x512 ((null):0, (null))
Debug: R/G/B/A Buffers: 8 8 8 0 ((null):0, (null))
Debug: Depth Buffer: 24 ((null):0, (null))
Debug: Stencil Buffer: 8 ((null):0, (null))
Debug: Samples: -1 ((null):0, (null))
Debug: GL_VENDOR: nouveau ((null):0, (null))
Debug: GL_RENDERER: Gallium 0.4 on NV98 ((null):0, (null))
Debug: GL_VERSION: 3.0 Mesa 13.0.0-rc2 ((null):0, (null))
Debug: GL_EXTENSIONS: ...
Debug: Max Texture Size: 8192 ((null):0, (null))
Debug: Debug context: false ((null):0, (null))
...
$ ps -C mediawriter -o cmd,%cpu
CMD %CPU
mediawriter 41.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
= "threaded" render
$ QSG_INFO=1 QSG_RENDER_LOOP=threaded mediawriter
Debug: threaded render loop ((null):0, (null))
Debug: Using sg animation driver ((null):0, (null))
Debug: Animation Driver: using vsync: 16.67 ms ((null):0, (null))
Debug: Animation Driver: using vsync: 16.67 ms ((null):0, (null))
Debug: texture atlas dimensions: 1024x512 ((null):0, (null))
Debug: R/G/B/A Buffers: 8 8 8 0 ((null):0, (null))
Debug: Depth Buffer: 24 ((null):0, (null))
Debug: Stencil Buffer: 8 ((null):0, (null))
Debug: Samples: -1 ((null):0, (null))
Debug: GL_VENDOR: nouveau ((null):0, (null))
Debug: GL_RENDERER: Gallium 0.4 on NV98 ((null):0, (null))
Debug: GL_VERSION: 3.0 Mesa 13.0.0-rc2 ((null):0, (null))
Debug: GL_EXTENSIONS: ...
Debug: Max Texture Size: 8192 ((null):0, (null))
Debug: Debug context: false ((null):0, (null))
...
$ ps -C mediawriter -o cmd,%cpu
CMD %CPU
mediawriter 18.3
...
Debug: animation driver switched to timer mode ((null):0, (null))
Debug: animation driver switched to vsync mode ((null):0, (null))
Debug: Animation Driver: using vsync: 16.67 ms ((null):0, (null))
Debug: texture atlas dimensions: 1024x512 ((null):0, (null))
Segmentation fault (core dumped)
QSGRenderThread[8636]: segfault at 8 ip 00007f9138a4320f sp 00007f911cd908f0
error 4 in libdrm_nouveau.so.2.0.0[7f9138a3f000+7000]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
= About
$ rpm -q mediawriter
mediawriter-4.0.3-2.fc26.x86_64
built without "threaded" render:
$ grep sed mediawriter.spec -A2
sed -i /threaded/s/^/\\/\\// app/main.cpp
%build
$ rpm -q qt5-qtbase-devel qt5-qtdeclarative-devel
qt5-qtbase-devel-5.7.0-9.fc26.x86_64
qt5-qtdeclarative-devel-5.7.0-2.fc25.x86_64
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
= Conclusion>From the nouveau perspective, "threaded" render is "out of
scope".
Ref.
Force threaded run loop for QML - Fixes high CPU load
https://github.com/MartinBriza/MediaWriter/commit/63492f4
Qt Quick Scene Graph - Scene Graph and Rendering
https://doc.qt.io/qt-5/qtquick-visualcanvas-scenegraph.html#scene-graph-and-rendering