Skip to content

GUI: batch framebuffer update notifications#767

Draft
moreaki wants to merge 1 commit into
VirtualBox:mainfrom
moreaki:agent/gui-framebuffer-update-batching
Draft

GUI: batch framebuffer update notifications#767
moreaki wants to merge 1 commit into
VirtualBox:mainfrom
moreaki:agent/gui-framebuffer-update-batching

Conversation

@moreaki

@moreaki moreaki commented Jul 9, 2026

Copy link
Copy Markdown

Summary

Batch guest framebuffer update notifications in the Qt frontend before issuing viewport updates.

  • Queue NotifyUpdate/NotifyUpdateImage rectangles in UIFrameBufferPrivate and schedule one GUI-thread flush while updates are pending.
  • Flush pending rectangles in small bounded batches instead of posting one queued signal per rectangle.
  • Reuse the existing UIMachineView dirty-rectangle conversion through a helper and mark the viewport as static/no-system-background so Qt avoids unnecessary background repaint work.

Why

This is a draft performance candidate. The macOS/Arm VMSVGA DX11 path can emit bursts of guest updates at HiDPI and 4K sizes; reducing queued signal churn and avoidable viewport background work may lower UI latency and active CPU, but it still needs isolated benchmark validation before it should be considered ready.

Validation

  • git diff --check
  • Benchmark validation pending with https://github.com/moreaki/dxmtbench and the existing Windows Explorer open/close workload across windowed, 4K, fullscreen, and Retina modes.

Signed-off-by: Roberto Nibali <rnibali@gmail.com>
@oracle-contributor-agreement

Copy link
Copy Markdown

Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
The following contributors of this PR have not signed the OCA:

To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application.

When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated.

If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public.

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. label Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Required At least one contributor does not have an approved Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant