Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-74406

Abstract away the graphics APIs in Qt

    XMLWordPrintable

    Details

    • Type: User Story
    • Status: Open
    • Priority: P1: Critical
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 6.0 (Next Major Release)
    • Component/s: Other
    • Labels:
      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

          1.
          Common rendering hardware interface Technical task Closed Laszlo Agocs  
          2.
          Port the Qt Quick scenegraph onto the RHI Technical task Closed Laszlo Agocs  
          3.
          Qt Quick Scenegraph in Qt 6 Technical task Closed Laszlo Agocs  
          4.
          Qt RHI Painter Technical task Open Paul Olav Tvete  
          5.
          QQuickPaintedItem support for the RHI-based QPainter Technical task Reported Laszlo Agocs  
          6.
          QRhi-based QPainter integration for widgets Technical task Reported Laszlo Agocs  
          7.
          Remove old QGL* classes Technical task Closed Johan Helsing  
          8.
          Move QOpenGL* classes out of Qt Gui Technical task Closed Eskil Abrahamsen Blomfeldt  
          9.
          Mark Qt OpenGL classes as deprecated Technical task Closed Eskil Abrahamsen Blomfeldt  
          10.
          Check and remove usage of OpenGL in other parts of Qt Technical task Reported Qt Graphics Team Oslo  
          11.
          Remove the direct OpenGL code path in Qt Quick Technical task Closed Laszlo Agocs  
          12.
          Purge direct OpenGL code path in Qt Quick Technical task Closed Laszlo Agocs

          0%

          Original Estimate - 6 weeks
          Remaining Estimate - 6 weeks
          13.
          Remove the experimental d3d12 Qt Quick backend Technical task Closed Laszlo Agocs  
          14.
          Metal on iOS Technical task Closed Laszlo Agocs  
          15.
          Minimal proof of concept demo for Quick 3D on QRhi Technical task Closed Laszlo Agocs

          0%

          Original Estimate - 4 weeks
          Remaining Estimate - 4 weeks
          16.
          Port Qt Quick 3D onto the RHI Technical task Closed Laszlo Agocs

          0%

          Original Estimate - 50 weeks
          Remaining Estimate - 50 weeks
          17.
          Port neglected fixes and improvements from the OpenGL-specific ShaderEffect impl. to the generic Technical task Closed Paul Olav Tvete  
          18.
          Verify and fix texture subrect in ShaderEffect when running with QRhi in Qt Quick Technical task Closed Paul Olav Tvete  
          19.
          Compressed texture atlas support on the QRhi-based rendering path Technical task Closed Eirik Aavitsland  
          20.
          Remove CustomParticle Technical task Closed Eirik Aavitsland  
          21.
          Identify and possibly fix performance issues with qmlbench on the QRhi based rendering path in Qt Quick Technical task Closed Jonas Karlsson  
          22.
          Make select Quick/Scenegraph autotests exercise the QRhi-based rendering path in addition to the direct OpenGL one Technical task Closed Laszlo Agocs  
          23.
          Test and fix QML Profiler support when running Qt Quick with the QRhi rendering path Technical task Closed Laszlo Agocs  
          24.
          Documented example(s) for the new way to create custom materials in Qt Quick Technical task Closed Paul Olav Tvete  
          25.
          Qt Quick documentation update regarding QRhi Technical task Closed Laszlo Agocs  
          26.
          Anisotropic texture filtering in Qt Quick not currently supported with QRhi Technical task Reported Laszlo Agocs  
          27.
          QQuickRenderControl story when on the QRhi-based rendering path of Qt Quick Technical task Closed Laszlo Agocs  
          28.
          Decide on the fate of QSGEngine Technical task Closed Laszlo Agocs  
          29.
          UWP support in the D3D11 backend of QRhi Technical task Closed Laszlo Agocs  
          30.
          Qt Graphical Effects RHIification Technical task Closed Laszlo Agocs  
          31.
          Improve QRhi regression testing - further autotests? Lancelot? etc. Technical task Closed Laszlo Agocs  
          32.
          Ensure we do not regress when doing Quick on OpenGL on QRhi when it comes to OpenGL context resets Technical task Reported Laszlo Agocs  
          33.
          Conclude and if needed fix Windows 7 support in the D3D11 backend of QRhi Technical task Closed Laszlo Agocs  
          34.
          Does the Lancelot system need OpenGL porting Technical task Closed Eirik Aavitsland  
          35.
          Qt Shader Tools module in Qt 6.0 Technical task Closed Laszlo Agocs  
          36.
          Build time shader processing support Technical task Closed Laszlo Agocs  
          37.
          Shadertools: generate intermediate formats for D3D and Metal at shader processing time and include those in the .qsb packages Technical task Closed Laszlo Agocs  
          38.
          Investigate SwiftShader as a software Vulkan implementation for CI purposes Technical task Open Laszlo Agocs  
          39.
          Investigate and conclude the future of the 'windows' render loop in Qt Quick Technical task Closed Laszlo Agocs  
          40.
          WebGL streaming platform plugin not compatible with OpenGL-on-QRhi rendering path Technical task Closed Laszlo Agocs  
          41.
          Make and run an address sanitizer build of QRhi test apps and Qt Quick on QRhi Technical task Closed Laszlo Agocs  
          42.
          QQuickFramebufferObject evolution Technical task Reported Laszlo Agocs  
          43.
          Test and harden Qt Quick applications on Windows wrt device resets Technical task Reported Laszlo Agocs  
          44.
          Port away from direct OpenGL usage in Multimedia to a reasonable degree Technical task Closed Valentyn Doroshchuk  
          45.
          Does Qt Quick need gfx api probing logic? (6.x?) Technical task Closed Laszlo Agocs  
          46.
          HDR and QColorSpace story for QRhi Technical task Reported Laszlo Agocs  
          47.
          OpenGL program binary disk cache missing with OpenGL backend of the QRhi Technical task Closed Laszlo Agocs  
          48.
          Shadertools: port to the C API of SPIRV-Cross Technical task Closed Laszlo Agocs  
          49.
          Add missing native texture interop enablers to the RHI port of Qt Quick Technical task Closed Paul Olav Tvete  
          50.
          State change reduction in the Metal QRhi backend Technical task Closed Laszlo Agocs  
          51.
          Missing rhi port feature in Quick: big endian in image grab Technical task Reported Laszlo Agocs  
          52.
          QQuickWindow::grabWindow() on non-exposed window - problems when using RHI Technical task Closed Laszlo Agocs  
          53.
          Fix native text device pixel ratio handling on the QRhi-based rendering path Technical task Closed Laszlo Agocs  
          54.
          Missing rhi port feature in quick: native text gamma (if still relevant) Technical task Reported Laszlo Agocs  
          55.
          Investigate window resizing behavior on desktop with Qt Quick on QRhi with all backends Technical task Reported Laszlo Agocs  
          56.
          Prove that integrating bigger external graphics frameworks is feasible in Qt Quick on QRhi on OpenGL Technical task Closed Laszlo Agocs  
          57.
          Conclude how to deal with the more up front nature of the QRhi API in Qt Quick Technical task Closed Laszlo Agocs  
          58.
          Extend qrhi autotest exercising APIs with offscreen targets Technical task Closed Laszlo Agocs  
          59.
          Withdrawn: Autotest QRhi/backend APIs via the Null backend Technical task Closed Laszlo Agocs  
          60.
          Revamp scenegraph (and quick) autotests Technical task Closed Laszlo Agocs  
          61.
          Revamp scenegraph examples (examples/quick/scenegraph) Technical task Closed Laszlo Agocs  
          62.
          Move away from QVector and d pointers in QRhiResource subclasses Technical task Closed Laszlo Agocs  
          63.
          Figure out the message about benefits, pros/cons, performance when running with QRhi and the newer APIs Technical task Reported Laszlo Agocs  
          64.
          Verify Qt Quick and Quick 3D with QRhi on Embedded Linux (and CMake) Technical task Open Laszlo Agocs  
          65.
          Verify Qt Quick and Quick 3D on QRhi on mobile platforms Technical task Reported Laszlo Agocs  
          66.
          Verify Qt Quick and Quick 3D on QRhi on "exotic" platforms Technical task Reported Laszlo Agocs  
          67.
          Vulkan on Wayland Technical task Closed Laszlo Agocs  
          68.
          Qt Quick on QRhi compatibility with QtWayland (including the compositor framework) Technical task Closed Laszlo Agocs  
          69.
          QtWayland (client and compositor) on QRhi + OpenGL Technical task In Progress Eskil Abrahamsen Blomfeldt  
          70.
          Ensure Qt Quick Controls 2 is fully compatible with the QRhi-based rendering path Technical task Closed Laszlo Agocs  
          71.
          Is Qt Quick Controls 1 to be updated to be compatible with the QRhi-based rendering path? Technical task Closed Laszlo Agocs  
          72.
          QRhiProfiler TODOs Technical task Closed Laszlo Agocs  
          73.
          Grand collection of QRhi TODOs Technical task Closed Laszlo Agocs  
          74.
          QOpenGLWidget and QOpenGLWindow replacement story Technical task Reported Laszlo Agocs  
          75.
          Render-to-texture widgets story (Qt 6.x?) Technical task Reported Laszlo Agocs  
          76.
          iOS QWidget backingstore has OpenGL dependencies, what to do Technical task Reported Laszlo Agocs  
          77.
          Decide what to do with QQuickWidget in Qt 6.0 Technical task Closed Eskil Abrahamsen Blomfeldt  
          78.
          Are QPlatformSurfaceEvent::Surface* events sufficient to handle all platforms? Technical task Reported Laszlo Agocs  
          79.
          Perfect frames on Metal: ensure atomicity with regards to drawable size Technical task Closed Laszlo Agocs  
          80.
          QRhi in virtual machines Technical task Reported Laszlo Agocs  
          81.
          Software adapter should be requestable via env.var. Technical task Closed Laszlo Agocs  
          82.
          Remove direct OpenGL usage in Charts Technical task Reported Laszlo Agocs  
          83.
          Remove direct OpenGL usage in Data Visualization Technical task Reported Laszlo Agocs  
          84.
          Remove direct OpenGL usage in QtLocation / Mapbox GL integration Technical task Reported Laszlo Agocs  
          85.
          WebEngine in the QRhi-based world Technical task Closed Jüri Valdmann  
          86.
          Extend qtdiag with more graphics information (rhi) Technical task Closed Eirik Aavitsland  
          87.
          Vulkan on i.MX8 without a windowing system Technical task Closed Laszlo Agocs  
          88.
          Varied performance in scenes with > 1000 unbatched geometry nodes Technical task Closed Laszlo Agocs  
          89.
          QRhiPassResourceTracker is slow Technical task Closed Laszlo Agocs  
          90.
          Add TriangleFan as a maybe-supported topology value Technical task Closed Paul Olav Tvete  
          91.
          Disable unnecessary mutexes in vk_mem_alloc Technical task Closed Laszlo Agocs  
          92.
          Add QRhi-enabled Qt Quick runs in qmlbench-based infra Technical task Closed Laszlo Agocs  
          93.
          Make buffer operations extensible in QRhiResourceUpdateBatch Technical task Closed Laszlo Agocs  
          94.
          Add buffer readback to QRhiResourceUpdateBatch Technical task Closed Laszlo Agocs  
          95.
          Add buffer copy operation to QRhiResourceUpdateBatch Technical task Closed Laszlo Agocs  
          96.
          QRhi autotests: Have to work around the lack of D3DCompile on WinRT (UWP) Technical task Closed Laszlo Agocs  
          97.
          Port twotextureproviders example to be able to function on both rendering paths Technical task Closed Laszlo Agocs  
          98.
          Remove ANGLE and associated components Technical task Closed Laszlo Agocs  
          99.
          Make Quick3D operational with QSG_RHI_BACKEND=gl Technical task Closed Laszlo Agocs  
          100.
          Make QQuickFramebufferObject functional when running with QRhi and the OpenGL backend Technical task Closed Laszlo Agocs  
          101.
          Shadertools: Bump glslang and SPIRV-Cross snapshots Technical task Closed Laszlo Agocs  
          102.
          Follow SPIRV-Cross changes in resource bindings for MSL Technical task Closed Laszlo Agocs  
          103.
          Move QShaderDescription serialization away from binary JSON Technical task Closed Laszlo Agocs  
          104.
          D3D12 backend for QRhi Technical task Reported Laszlo Agocs  
          105.
          QRhi on tvOS? Technical task Closed Laszlo Agocs  
          106.
          Designer and qmlpuppet in the QRhi-based world Technical task Reported Laszlo Agocs

          0%

          Original Estimate - 3 weeks
          Remaining Estimate - 3 weeks
          107.
          APIs to extend and customize the QRhi backend, esp. when managed by Qt Quick Technical task Closed Laszlo Agocs  
          108.
          Add a vulkanimageimport example Technical task Closed Paul Olav Tvete  
          109.
          Add Vulkan support in rendernode example. Technical task Closed Laszlo Agocs  
          110.
          Purge direct OpenGL code path in Qt Quick 3D Technical task Closed Andy Nichols  
          111.
          Decide on the fate of QSGSimpleMaterial Technical task Closed Laszlo Agocs  
          112.
          Implement Quick scenegraph Qt 6 RHI todos (API changes) to enable purging the direct OpenGL code path Technical task Closed Laszlo Agocs  
          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              Assignee:
              lagocs Laszlo Agocs
              Reporter:
              esabraha Eskil Abrahamsen Blomfeldt
              PM Owner:
              Jarko Vihriälä
              RnD Owner:
              Eskil Abrahamsen Blomfeldt
              Votes:
              1 Vote for this issue
              Watchers:
              9 Start watching this issue

                Dates

                Created:
                Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - 1 year, 11 weeks
                  63w
                  Remaining:
                  Remaining Estimate - 1 year, 11 weeks
                  63w
                  Logged:
                  Time Spent - Not Specified
                  Not Specified

                    Gerrit Reviews

                    There are no open Gerrit changes