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

Abstract away the graphics APIs in Qt

XMLWordPrintable

    • Icon: User Story User Story
    • Resolution: Fixed
    • Icon: P1: Critical P1: Critical
    • 6.0
    • None
    • Other
    • None

      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.

        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 Closed Qt Graphics Team  
        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 Closed 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 Closed 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 Closed 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 Closed Laszlo Agocs  
        43.
        Test and harden Qt Quick applications on Windows wrt device resets Technical task Closed 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.
        QColorSpace story for QRhi Technical task Closed 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 Closed 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 Closed Laszlo Agocs  
        55.
        Investigate window resizing behavior on desktop with Qt Quick on QRhi with all backends Technical task Closed 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 Closed Laszlo Agocs  
        64.
        Verify Qt Quick and Quick 3D with QRhi on Embedded Linux (and CMake) Technical task Closed Laszlo Agocs  
        65.
        Verify Qt Quick and Quick 3D on QRhi on mobile platforms Technical task Closed Laszlo Agocs  
        66.
        Verify Qt Quick and Quick 3D on QRhi on "exotic" platforms Technical task Closed 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 Closed 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 Closed Laszlo Agocs  
        75.
        Render-to-texture widgets in the QRhi-based world (QQuickWidget, QOpenGLWidget) Technical task Closed Laszlo Agocs  
        76.
        iOS QWidget backingstore has OpenGL dependencies, what to do Technical task Closed 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 Closed 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 Closed 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 Closed Laszlo Agocs  
        83.
        Investigate removing direct OpenGL usage in Data Visualization Technical task Closed Sami Varanka  
        84.
        Remove direct OpenGL usage in QtLocation / Mapbox GL integration Technical task Closed Laszlo Agocs  
        85.
        WebEngine in the QRhi-based world Technical task Closed Jüri Valdmann (Inactive)  
        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 Closed Laszlo Agocs  
        105.
        QRhi on tvOS? Technical task Closed Laszlo Agocs  
        106.
        Designer and qmlpuppet in the QRhi-based world Technical task Closed 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.

            lagocs Laszlo Agocs
            esabraha Eskil Abrahamsen Blomfeldt
            Jarko Vihriälä Jarko Vihriälä
            Eskil Abrahamsen Blomfeldt Eskil Abrahamsen Blomfeldt
            Votes:
            1 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved:

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

                  There are no open Gerrit changes