feat: improved vendor QSGBatchRenderer as WSGBatchRenderer - #1308
Conversation
There was a problem hiding this comment.
Sorry @LFRon, your pull request is larger than the review limit of 150000 diff characters
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: LFRon The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Hi @LFRon. Thanks for your PR. I'm waiting for a linuxdeepin member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Reviewer's GuideIntroduces a vendored WSGBatchRenderer-based scene graph pipeline with damage tracking and debug overlay, wires it into Wayland output rendering, adds QML tooling to control damage modes, and provides automated and visual tests plus a damage playground example while simplifying cursor handling. Sequence diagram for damage debug mode control and renderingsequenceDiagram
actor User
participant OutputMenuBar as OutputMenuBar_qml
participant Helper
participant WRenderHelper
participant WSGDamageDebug
participant WBufferRenderer
participant WOutputRenderWindow as WOutputRenderWindowPrivate
User->>OutputMenuBar: select damage menu item
OutputMenuBar->>Helper: setDamageDebugMode(mode)
Helper->>WRenderHelper: setDamageDebugMode(mode)
WRenderHelper->>WSGDamageDebug: setModeName(mode)
loop each frame
WOutputRenderWindow->>WBufferRenderer: beginRender(...)
WBufferRenderer->>WSGDamageDebug: mode()
WBufferRenderer->>WSGDamageDebug: applyToTracker(tracker)
WBufferRenderer->>WOutputRenderWindow: damageDebugNeedsFrame()
WOutputRenderWindow->>WBufferRenderer: render(...)
WBufferRenderer->>WSGDamageDebug: prepareOverlay(renderer, rhi, updates)
WBufferRenderer->>WSGDamageDebug: renderOverlay(renderer, commandBuffer)
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
f447e60 to
459d3db
Compare
|
TAG Bot New tag: 0.9.0 |
Vendor Qt Quick's QSGBatchRenderer and QSGRhiVisualizer as WSGBatchRenderer, install WSGContext before QQuickRenderControl creation, and route RHI rendering paths through the Waylib renderer while preserving the software adaptation. Log: RHI path uses a vendored Scene Graph batch renderer; damage tracking is added separately.
Track Qt Quick Scene Graph damage, preserve recycled wlroots buffers, and clip GLES/Vulkan redraws with per-region GPU scissors. Add surface damage propagation, runtime damage diagnostics, examples, and unit/visual coverage. Log: Partial redraw follows Scene Graph damage; WAYLIB_DEBUG_DAMAGE provides highlight, log, and rerender diagnostics.
Keep cursor rendering in the main QML scene instead of repeatedly rebuilding clipped hardware cursor buffers. Propagate damage-only surface commits, keep ancestor damage bounds current after child geometry changes, include output viewport transforms in damage mapping, isolate damage overlays from offscreen render targets, and synchronize cursor visibility updates. Log: Stabilize GLES QML partial updates and software cursor composition without changing Vulkan behavior.
Carry wlroots buffer reuse damage into the QML Scene Graph repaint region and RHI output scissor, using conservative buffer mapping for fractional device pixel ratios. Accumulate the actual rendered damage for output commits so stale swapchain contents are reported correctly, while preserving the existing integer-DPR path and isolating native scissors to output passes. Harden output state copy and finish handling, and add categorized damage diagnostics for buffer, offscreen, scissor, flush, and commit stages.
459d3db to
0492d9d
Compare
基于 #1275 的改进版PR
Summary by Sourcery
Replace Qt's batch renderer integration with a Waylib damage-aware renderer and add comprehensive diagnostics, examples, and tests for partial rendering correctness.
New Features:
Bug Fixes:
Enhancements:
Build:
Documentation:
Tests:
Chores: