Details
-
User Story
-
Resolution: Fixed
-
P1: Critical
-
None
-
None
Description
To adapt to a world where multiple different graphics APIs that are taking precedence on different platforms, Qt has to reduce the dependency on OpenGL and become more independent of the underlying graphics APIs. The way to do this is to abstract away the parts we need from the APIs and make it easy and convenient to adapt to new protocols. This is similar to what QPA was for the window system.
Attachments
Issue Links
- is required for
-
QTBUG-75990 Extend QPA on Qt6 for all aspects of target platform
-
- Withdrawn
-
- relates to
-
QTBUG-71916 Programmatic and Visual Shader Graphs in Qt 6
-
- Withdrawn
-
Gerrit Reviews
For Gerrit Dashboard: QTBUG-74406 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
289029,2 | Use QOpenGLVersionFunctionsFactory | dev | qt/qtdeclarative | Status: NEW | 0 | 0 |
292370,1 | WIP: Make QOpenGLContext a wrapper of QtGui::OpenGL::Context | dev | qt/qtbase | Status: NEW | -2 | 0 |
256713,85 | Introduce the Qt graphics abstraction as private QtGui helpers | dev | qt/qtbase | Status: MERGED | +2 | 0 |
274839,13 | Ensure drawable size atomicity within a frame | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
274853,4 | Remove depth-stencil buffer sizing on the rhi path | 5.14 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
274872,3 | Add a QSG env var for QRhi::PreferSoftwareRenderer | 5.14 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
275178,7 | rhi: metal: Eliminate redundant setCullMode and setFrontFaceWinding calls | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
275683,2 | rhi: Speed up buffer and texture tracking | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
275884,2 | rhi: vulkan: Disable vkmemalloc's own synchronization | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
276022,5 | WIP: Fix dpr in native text with rhi | 5.14 | qt/qtdeclarative | Status: ABANDONED | -2 | 0 |
276054,2 | Fix device pixel ratio with QRhi for native text | 5.14 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
276114,8 | rhi: Exercise nativeHandles() in qrhi test | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
276114,8 | rhi: Exercise nativeHandles() in qrhi test | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
276141,17 | rhi: Add support for buffer readbacks | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
276141,17 | rhi: Add support for buffer readbacks | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
276141,17 | rhi: Add support for buffer readbacks | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
276350,4 | rhi: Autotest basic texture operations | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
276422,2 | rhi: Autotest rendering a triangle | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
276550,5 | rhi: Autotest rendering a textured quad | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
276722,5 | Make twotextureproviders work on the rhi rendering path | 5.15 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
277506,7 | Make it functional when Quick is running on QRhi with the OpenGL backend | 5.14 | qt/qtquick3d | Status: MERGED | +2 | 0 |
277548,5 | rhi: gl: Do not let external rendering trash our vao | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
277560,4 | Clarify some rhi related QQuickWindow docs | 5.14 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
278562,4 | Store a native resource binding map in QShader | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
278564,3 | Generate native resource binding map for MSL | master | qt-labs/qtshadertools | Status: MERGED | +2 | 0 |
278580,3 | rhi: metal: Remap resource bindings based on the QShader table | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
279357,7 | rhi: Move to CBOR in QShader and expand the autotest | 5.15 | qt/qtbase | Status: MERGED | +2 | 0 |
279606,7 | Switch to the C API of SPIRV-Cross | master | qt-labs/qtshadertools | Status: MERGED | +2 | 0 |
281024,2 | Update SPIRV-Cross | master | qt-labs/qtshadertools | Status: MERGED | +2 | 0 |
281148,5 | Make QQuickFbo work with the OpenGL backend of QRhi | 5.15 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
281247,8 | Enable QRhi Metal backend on iOS | 5.15 | qt/qtbase | Status: MERGED | +2 | 0 |
283173,13 | RHI: new native texture API | 5.15 | qt/qtbase | Status: MERGED | +2 | 0 |
283174,7 | Add API to get the platform specific texture handle | 5.15 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
283194,4 | Remove deprecated QGL* classes | dev | qt/qtbase | Status: MERGED | +2 | 0 |
284250,4 | Move QOpenGLDebugLogger from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
284265,6 | Move QOpenGLTimerQuery to from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
284374,4 | Move QOpenGLWidget from QtWidgets to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
284375,10 | Move QOpenGLWindow from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
284376,11 | Move QOpenGLPaintEngine and related classes from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
284394,6 | Add vulkantextureimport example | 5.15 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
284434,2 | Minimal documentation for new example | 5.15 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
284494,3 | Remove QOpenGLTextureHelper dependency from QOpenGLContext | dev | qt/qtbase | Status: MERGED | +2 | 0 |
284495,3 | Remove QOpenGLTexture dependency from QTextureFileData | dev | qt/qtbase | Status: MERGED | +2 | 0 |
284496,7 | Move QOpenGLTexture and related classes from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
284633,6 | Add RHI shaders to ShaderEffect test scenes | 5.15 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
284655,5 | Add environment variables for customizing Vulkan | 5.15 | qt/qtbase | Status: MERGED | +2 | 0 |
284903,3 | RHI: Remove old native texture API | 5.15 | qt/qtbase | Status: MERGED | +2 | 0 |
285624,4 | Remove D3D12 scenegraph backend | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
285636,3 | Add RHI info to qtdiag | 5.15 | qt/qttools | Status: MERGED | +2 | 0 |
285638,12 | Add initial RHI port | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
286350,9 | Add qtshadertools as a submodule in dev | dev | qt/qt5 | Status: MERGED | +2 | 0 |
286518,2 | Make the opengl module optionally depend on widgets | dev | qt/qtbase | Status: MERGED | +2 | 0 |
286663,41 | Allow redirecting QRhi-based rendering via QQuickRenderControl | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
286691,4 | Add RHI uniform meta data to shaders | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
286713,4 | WIP: Private APIs for QQuickRenderControl-on-QRhi | 5.15 | qt/qtdeclarative | Status: ABANDONED | -2 | 0 |
287025,3 | Remove QOpenGLTextureBlitter dependency from QPlatformBackingStore | dev | qt/qtbase | Status: ABANDONED | 0 | 0 |
287026,11 | Move QOpenGLTextureBlitter from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
287031,13 | Move QOpenGLShaderProgram from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
287033,10 | Introduce VK_KHR_display support for i.MX8 devices | 5.15 | qt/qtbase | Status: MERGED | +2 | 0 |
287224,5 | RHI: enable blending | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
287305,13 | Move QOpenGLFrameBufferObject from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
287441,5 | WIP: Move QPlatformBackingStore OpenGL implementation into helper class | dev | qt/qtbase | Status: ABANDONED | -2 | 0 |
287443,9 | Move backing store OpenGL support to the platformcompositor module | dev | qt/qtbase | Status: MERGED | +2 | 0 |
287464,6 | Fix build: Add dependency on OpenGL module | dev | qt/qtwayland | Status: MERGED | +2 | 0 |
287465,2 | Inject OpenGL dependency for backing store | dev | qt/qtwayland | Status: MERGED | -1 | 0 |
287520,9 | Move QOpenGLVertexArrayObject from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
287521,9 | Move QOpenGLBuffer from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
287741,1 | Add optional dependency on the QtOpenGL module | dev | qt/qtdeclarative | Status: ABANDONED | -1 | 0 |
287796,8 | Quick: Don't qualify OpenGL includes | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
287930,2 | Deprecate QQuickWindow::createTextureFromId() | 5.15 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
288067,3 | Fix build with latest qtbase | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
288245,2 | QOpenGLContext: use extraFunctions instead of versioned functions | dev | qt/qtbase | Status: MERGED | +2 | 0 |
288246,8 | Move QOpenGLVersionProfile to its own files | dev | qt/qtbase | Status: MERGED | +2 | 0 |
288247,14 | Move versioned OpenGL functions from QtGui to QtOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
289013,5 | Quick: Don't qualify OpenGL includes (part two) | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
289156,6 | Move QOpenGLWidget from QtOpenGL to its own module | dev | qt/qtbase | Status: MERGED | +2 | 0 |
289157,5 | Docs: Remove lenghty comparison with QGLWidget | dev | qt/qtbase | Status: MERGED | +2 | 0 |
289158,7 | Quick: Add a public opengl dependency | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
289236,2 | Effectlib: Fix typos in rhi uniform metadata | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
289352,5 | Remove usage of QGL* APIs | 5.15 | qt/qtmultimedia | Status: MERGED | +2 | 0 |
289492,4 | QOpenGLContext: Remove QGL helpers | dev | qt/qtbase | Status: MERGED | +2 | 0 |
291165,3 | Port lance manual test to qopengl | dev | qt/qtbase | Status: MERGED | +2 | 0 |
291169,3 | Remove legacy OpenGL examples | dev | qt/qtbase | Status: MERGED | +2 | 0 |
291222,2 | Docs: Remove traces of QGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
291681,2 | svgviewer: Add a dependency on Qt OpenGLWidgets | dev | qt/qtsvg | Status: MERGED | +2 | 0 |
292039,2 | Remove various traces of QGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
292042,2 | Remove opengl benchmark | dev | qt/qtbase | Status: MERGED | +2 | 0 |
292046,2 | Manual tests: Port diaglib from QGL to QOpenGL | dev | qt/qtbase | Status: MERGED | +2 | 0 |
292047,2 | Fix build errors for GraphicsViewBenchmark | dev | qt/qtbase | Status: MERGED | +2 | 0 |
292047,2 | Fix build errors for GraphicsViewBenchmark | dev | qt/qtbase | Status: MERGED | +2 | 0 |
292931,3 | Update uic's class lib map to reflect QtOpenGLWidgets | dev | qt/qtbase | Status: MERGED | +2 | 0 |
294684,1 | Remove usage of QGL* APIs | dev | qt/qtmultimedia | Status: ABANDONED | 0 | 0 |
294725,1 | Allow privately redirecting the RHI-based rendering | 5.15 | qt/qtdeclarative | Status: ABANDONED | -2 | 0 |
294726,5 | Add autotest for QQuickRenderControl | 5.15 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
294842,3 | Move legacy rendercontrol example into a subdirectory | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
294843,1 | WIP: Add new setRenderTarget() alternative | dev | qt/qtdeclarative | Status: ABANDONED | -2 | 0 |
296325,3 | Remove QSGEngine and move QSGAbstractRenderer back to private | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
296336,5 | Deprecate QSGEngine | 5.15 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
296339,7 | Remove QSGSimpleMaterial | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
296344,3 | Deprecate QSGSimpleMaterial and QSGSimpleMaterialShader | 5.15 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
296477,2 | Remove unused, deprecated QSGNode member variable | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
296478,2 | Implement the todo for adding anisotropy virtuals to QSGImageNode | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
296486,4 | Make comparisonKey() a pure virtual in QSGTexture | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
296496,4 | Add argument to QSGTexture::removedFromAtlas() | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
296501,6 | Move updateRhiTexture and co. to QSGTexture | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
296511,6 | Remove leftover legacy shader files in scenegraph example | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
296515,3 | Undeprecate (in docs) QSGSimpleRect/TextureNode | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
297187,9 | Update dependencies.yaml and adapt to API changes in qtbase | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
297273,3 | qtdiag: Fix compilation after moving OpenGL classes | dev | qt/qttools | Status: ABANDONED | -1 | 0 |
298468,3 | Temporarily restore a QSGTexturePrivate function | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
298830,6 | Remove Legacy GL path from Quick3D sub-module | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
298831,7 | Remove Legacy OpenGL code from RuntimeRender sub-module | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
298885,6 | Remove the 'windows' render loop | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
298885,6 | Remove the 'windows' render loop | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
298934,7 | Use QRhi by default | dev | qt/qtdeclarative | Status: MERGED | -1 | 0 |
298979,12 | Enable QQuickWidget with OpenGL over RHI | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
299030,3 | Move some QSGRenderNodePrivate members | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
299032,15 | Make QSGMaterialRhiShader become QSGMaterialShader | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
299032,15 | Make QSGMaterialRhiShader become QSGMaterialShader | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
299346,5 | Replace QSSGRenderContext with QSSGRhiContext | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
299356,8 | Remove the Render module | dev | qt/qtquick3d | Status: MERGED | +2 | 0 |
299457,9 | Remove the direct OpenGL implementation of QSG_VISUALIZE | dev | qt/qtdeclarative | Status: ABANDONED | 0 | 0 |
299462,12 | Remove the direct OpenGL code from the batch renderer | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
299505,12 | Remove layer and dist.field glyph cache OpenGL versions | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
299971,7 | Switch to a built-in OpacityMask effect for Imagine style | dev | qt/qtquickcontrols2 | Status: MERGED | +2 | 0 |
300141,7 | RHI: Store texture handle as 64-bit int | dev | qt/qtbase | Status: MERGED | +2 | 0 |
300182,7 | rhi: Add support for grabbing non-exposed windows | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
300317,2 | RHI: Fix crash in QQuickWindow when updating render target | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
300527,2 | RHI: facilitate compressed atlas textures in gles2 backend | dev | qt/qtbase | Status: MERGED | +2 | 0 |
300528,8 | RHI implementation of compressed texture atlasing | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
301043,9 | Remove ANGLE | dev | qt/qtbase | Status: MERGED | +2 | 0 |
301167,7 | Adapt to changes in NativeTexture in qtbase | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
301462,19 | Quick: Add support of RHI for video frames | dev | qt/qtmultimedia | Status: MERGED | +2 | 0 |
302206,4 | Remove CustomParticle | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
302235,8 | Introduce QAbstractVideoBuffer::MTLTextureHandle | dev | qt/qtmultimedia | Status: MERGED | +2 | 0 |
302513,2 | Fix QQuickWidget when RHI is disabled | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
302645,3 | Remove QSG_NO_RHI | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
303062,2 | RHI: Remove gl code from video nodes | dev | qt/qtmultimedia | Status: MERGED | +2 | 0 |
304380,2 | Update to changes in QSGMaterial API | dev | qt/qtwayland | Status: MERGED | +2 | 0 |
304968,10 | New custom material example | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
305025,6 | Port shared texture provider to RHI-on-OpenGL | dev | qt/qtwayland | Status: MERGED | +2 | 0 |
305189,2 | Use global share context in QRhiGles2 | dev | qt/qtbase | Status: MERGED | +2 | 0 |
305219,7 | Move scenegraph handling out of core | dev | qt/qtwebengine | Status: MERGED | +2 | 0 |
305270,3 | IMX: Prepare vivante plugin for RHI | dev | qt/qtmultimedia | Status: MERGED | +2 | 0 |
305350,5 | QWaylandQuickItem: Fix buffer formats with multiple planes | dev | qt/qtwayland | Status: MERGED | +2 | 0 |
305443,4 | Introduce qt6_add_shaders | dev | qt/qtshadertools | Status: MERGED | +2 | 0 |
306296,2 | Android: Use current gl context as share | dev | qt/qtmultimedia | Status: MERGED | +2 | 0 |
313319,2 | Doc: Move example file that was left behind | dev | qt/qtbase | Status: MERGED | +2 | 0 |