Details
-
Task
-
Resolution: Done
-
P2: Important
-
None
-
None
Description
1. Render loops. QTBUG-84718
2. QSGDepthStencilBuffer [DONE - Paul]
Remove completely.
3. QSGGeometry [DONE - Paul]
just some small legacy extension checks
4. QSGTexture (coreapi) + QSGPlainTexture (util) QTBUG-84717 [DONE]
5. QSGDefaultPainterNode, Context2DTexture [DONE - Paul]
The Framebuffer mode is not implemented for RHI. So that path is full of direct OpenGL stuff. Should just remove that path completely. (the API in QQuickPaintedItem can remain, it will just have no effect for now - documentation update needed?)
6. QSGDefaultContext, QSGDefaultRenderContext [DONE - Laszlo]
qsgdefaultcontext.cpp - renderContextInitialized purge OpenGL path
qsgdefaultrendercontext.cpp lots of OpenGL-isms here and there, all can be removed
etc.
7. QSGMaterialShader [DONE - Laszlo]
Look for ### glpurge and remove the QT_CONFIG(opengl) bits in the header and in the cpp. Those should not be used anymore from within qtdeclarative. Documentation needs to be revised as well.
8. Default glyph node [DONE - Eirik]
qsgdefaultglyphnode_p.cpp - keep if (m_rhi) path remove the OpenGL one (everywhere)
9. qsgshaderrewriter removal (from qtdeclarative) [DONE]
This is not used anymore. The functionality is still there, but lives in qtshadertools. (there is a duplicated (but updated) version of this in qtshadertools, this code here is not used anymore). Can be removed.
10. Others [DONE - Eirik]
qsgadaptationlayer.cpp - QSG_DISTANCEFIELD_CACHE_DEBUG stuff
QSGDefaultInternalImageNode::supportsWrap
qsgdefaultspritenode.cpp - just an include (QOpenGLShaderProgram)
11. Why are there leftover legacy GLSL files in scenegraph/shaders? That folder should be empty now. Remove them. [DONE]
12. ShaderEffect related work handled separately in QTBUG-83977 [DONE]
13. QTBUG-84027 - qmake, CMake, and internal #if QT_CONFIG(opengl) update
This should be the final piece and is tricky. Traditional assumptions about !opengl meaning no accelerated 3D graphics (only software backend) do not hold anymore in Qt 6.
14. Remove the now-unused qsgshadersourcebuilder [DONE - Laszlo]
15. Porting guide updates. Materials and textures are mentioned already. [DONE - Laszlo]
To be added:
Deprecated QQuickWindow::createTextureFromId is removed.
QQuickPaintedItem and Context2D's FBO mode needs to be mentioned.
Not defaulting to OpenGL (Metal on macOS, D3D on Windows) needs to be mentioned (how to switch away with env.var or C++ API, etc.)
QQuickWindow::openGLContextCreated signal removed
QQuickWindow::setPersistentOpenGLContext function renaming
16. the compressed texture implementation has a QOpenGLTexture dependency just to get the format enum values. Would be nice to get rid of this. [DONE - Paul]
17. QQuickWindow public API:
- openglContextCreated signal, setPersistentOpenGLContext, openglContext() getter. [DONE - Laszlo]
Remove the signal, rename the function, make the context getter private.
- resetOpenGLState(). [DONE - Laszlo]
Can this really be removed? Used both internally in QQuickFbo and also common in applications that use QQuickFbo or the before/afterRendering signals.
Attachments
Issue Links
- depends on
-
QTBUG-83977 Remove QQuickOpenGLShaderEffect*
- Closed
-
QTBUG-84717 Make QSGTexture, QSGPlainTexture, and related OpenGL-clean
- Closed
-
QTBUG-84718 Make render loops (threaded, basic) OpenGL-clean
- Closed
- is required for
-
QTBUG-79268 Purge direct OpenGL code path in Qt Quick
- Closed
- resulted in
-
QTBUG-104029 QSGRenderNode with OpenGL renderer interface does not draw anything
- Closed
For Gerrit Dashboard: QTBUG-84623 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
302758,3 | Remove shader rewriter from the Quick source tree | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
302759,3 | Remove unused leftover GLSL source files | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
302954,6 | Remove temporary compatibility leftovers from QSGMaterialShader | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
302998,9 | Modernize QSGMaterialShader class docs | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303116,5 | Remove OpenGL dependency from QSGTexture | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303254,6 | Make render loops OpenGL clean | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303256,4 | Remove customRenderStage from QQuickWindowPrivate | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303435,2 | Remove unused leftovers in batch renderer header | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303439,2 | Make rendercontext OpenGL clean | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303440,5 | Do not depend on removed openglContext getter | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303478,3 | Remove the unused shadersourcebuilder | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303517,4 | Remove QOpenGL dependency from QSGCompressedTexture | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303520,2 | Remove QSGDepthStencilBuffer | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303522,2 | Remove OpenGL dependency from QSGGeometry | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303531,3 | Remove OpenGL dependency from QSGTextMaskMaterial & friends | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303614,4 | Remove FBO path from painternode/context2d | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303915,2 | Remove remaining OpenGL dependency in QSGDefaultInternalImageNode | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
304002,3 | Port distancefield debugging code from OpenGL to RHI | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |