- Qt 6.10
- Qt Quick
- Important Concepts In Qt Quick - The Visual Canvas
- Qt Quick Software Adaptation
- Qt 6.10.3 Reference Documentation

Scene Graph Adaptations ◦ OpenVG rendering

# Qt Quick Software Adaptation

The Software adaptation is an alternative renderer for Qt Quick 2 that uses the Raster paint engine to render the contents of the scene graph, instead of a hardware-accelerated 3D graphics API. Consequently, some features and optimizations are not available. Most Qt Quick 2 applications can run without any modification, but any attempts to use unsupported features are ignored. By using the Software adaptation, it is possible to run Qt Quick 2 applications on hardware and platforms that do not have hardware-accelerated 3D graphics API support.

The Software adaptation was previously known as the Qt Quick 2D Renderer. However, unlike the 2D Renderer, this new, integrated version supports partial updates. This means that a full update of the window or screen contents is now avoided; only the changed areas are flushed. Partial updates can significantly improve performance for many applications. It is also possible to disable this partial update behavior by setting the environment variable `QSG_SOFTWARE_RENDERER_FORCE_PARTIAL_UPDATES=0`, though doing so will have a negative impact on performance.

### Shader Effects

ShaderEffect components in QtQuick 2 cannot be rendered by the Software adaptation.

### Particle Effects

It is not possible to render particle effects with the Software adaptation. Whenever possible, remove particles completely from the scene. Otherwise, they will still require some processing, even though they are not visible.

### Rendering Text

The text rendering with the Software adaptation is based on software rasterization and does not respond as well to transformations such as scaling, compared to when using a hardware-accelerated 3D graphics API. The quality is similar to choosing Text.NativeRendering with Text items.

### High DPI

The Software adaptation supports high DPI displays, but it does not support performing partial updates when the using fractional scaling. This means that when using a non-integer scaling factor, the partial update optimization is disabled, and the entire window is redrawn on every frame. This can be overridden by setting an environment variable to `QSG_SOFTWARE_RENDERER_FORCE_PARTIAL_UPDATES=1` which forces the Software adaptation to use partial updates even when fractional scaling is in use. However, this may result in artifacts when scaling is not an integer value, and it is not recommended to use this without thorough testing.