Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate using QtQuick's 2D renderer #367

Closed
rburchell opened this issue Feb 26, 2016 · 5 comments
Closed

Investigate using QtQuick's 2D renderer #367

rburchell opened this issue Feb 26, 2016 · 5 comments

Comments

@rburchell
Copy link
Contributor

We've been facing a large number of problems with OpenGL usage over time (see references at the bottom). An unfortunate fact of life is that OpenGL is not as stable or widely available as many developer types would like, this is especially true when looking at the situation across platforms (Windows), or on specialised setups (virtual machines), etc.

QtQuick has a 2D renderer which can be used to render with software instead of OpenGL: http://doc.qt.io/QtQuick2DRenderer/index.html

This was previously commercial-only, but is now available under the GPL license: https://github.com/qtproject/qtdeclarative-render2d

We should consider whether we can take this into use in release builds easily to provide a better (more stable) experience.

It may also be useful from a security angle: no more direct access to GPU would be required.

References: #331, #328, #365, #358, #348. Probably more :)

@rburchell
Copy link
Contributor Author

To take it into use, build the render2d plugin, install it, and set QMLSCENE_DEVICE=softwarecontext when launching the process.

Caveats: rendering will not be 100% identical to OpenGL-rendered quick (there's some subtle differences in a lot of different places), but they are quite close. I've tried this with Ricochet myself already and had fairly good results.

@rburchell
Copy link
Contributor Author

Qt requirement will be 5.6 at a minimum to use this. There is a 5.6 branch available:

https://github.com/qtproject/qtdeclarative-render2d/tree/5.6

5.8+ (I think) will gain partial update support, meaning the entire window won't rerender when something changes, only the part that actually changed, but this isn't really important for desktop use.

@burdges
Copy link
Contributor

burdges commented Mar 11, 2016

Just fyi, debian testing is currently at 5.5 and stable is at 5.3.

@rburchell
Copy link
Contributor Author

Yep. As it's an optional addon, and only of concern for the "official" static build here, that isn't a worry. The version bump won't affect self-built copies or distributions unless they want to tackle that themselves - 5.6 is only a necessity if you want this fix in other words :)

@special
Copy link
Member

special commented Nov 3, 2016

This renderer is used by default with #474, which is going into the 1.1.4 release. 1.1.4 will also contain the renderer plugin for all distributed binaries.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants