Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

viogpudo: fix HWCursor display issues #990

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Commits on Oct 9, 2023

  1. viogpudo: fix disappearing cursor issue

    `SetPointerShape` calls `CreateCursor` which copies the shape data to
    the host via `TransferToHost2D`. Then it calls `QueueCursor` which sets
    the cursor on the host. There is a race condition between these two
    functions because `TransferToHost2D` uses the `m_CtrlQueue` and
    `QueueCursor` uses the `m_CursorQueue`. Whenever the cursor queue is
    handled first by QEMU, the host attempts to set the cursor image by
    reading the buffer that is still empty because `TransferToHost2D` had
    not yet executed.
    
    The fix here is to wait on `TransferToHost2D` to complete before calling
    `QueueCursor`. We achieve this by waiting on an KEVENT and moving some
    code around in the IRQ handler to set this event after recieving the
    response for the transfer command.
    
    Signed-off-by: Joelle van Dyne <joelle@turing.llc>
    Joelle van Dyne committed Oct 9, 2023
    Configuration menu
    Copy the full SHA
    268a8de View commit details
    Browse the repository at this point in the history
  2. viogpudo: fix hiding of cursor

    QEMU checks `cursor->resource_id` and if it is 0, then the cursor
    will be hidden.
    
    Signed-off-by: Joelle van Dyne <joelle@turing.llc>
    Joelle van Dyne committed Oct 9, 2023
    Configuration menu
    Copy the full SHA
    8ef6a14 View commit details
    Browse the repository at this point in the history
  3. viogpudo: enable HWCursor by default

    Signed-off-by: Joelle van Dyne <joelle@turing.llc>
    Joelle van Dyne committed Oct 9, 2023
    Configuration menu
    Copy the full SHA
    51ed2b3 View commit details
    Browse the repository at this point in the history