[Spice-devel] [PATCH qxl-wddm-dod] Do not take into account move operations for mapping

Yuri Benditovich yuri.benditovich at daynix.com
Sun Jan 29 10:48:27 UTC 2017


On Fri, Jan 27, 2017 at 12:06 PM, Frediano Ziglio <fziglio at redhat.com>
wrote:

> This is a follow up of 31ca5d035d2b24912044ef69ff23b3b854cd72dd
> ("Implements screen to screen move correctly").
>
> As now we don't copy memory to implement moves there's no
> reason to take into account these area for memory mappings
> as memory is not accessed anymore.
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  qxldod/QxlDod.cpp | 11 ++---------
>  qxldod/QxlDod.h   |  2 +-
>  2 files changed, 3 insertions(+), 10 deletions(-)
>
> diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
> index 001cd67..e47f302 100755
> --- a/qxldod/QxlDod.cpp
> +++ b/qxldod/QxlDod.cpp
> @@ -3638,7 +3638,7 @@ QxlDevice::ExecutePresentDisplayOnly(
>      // Source bitmap is in user mode, must be locked under __try/__except
>      // and mapped to kernel space before use.
>      {
> -        LONG maxHeight = GetMaxSourceMappingHeight(ctx->Moves,
> ctx->NumMoves, ctx->DirtyRect, ctx->NumDirtyRects);
> +        LONG maxHeight = GetMaxSourceMappingHeight(ctx->DirtyRect,
> ctx->NumDirtyRects);
>          UINT sizeToMap = ctx->SrcPitch * maxHeight;
>
>          PMDL mdl = IoAllocateMdl((PVOID)SrcAddr, sizeToMap,  FALSE,
> FALSE, NULL);
> @@ -4533,17 +4533,10 @@ void QxlDevice::SetMonitorConfig(QXLHead *
> monitor_config)
>      AsyncIo(QXL_IO_MONITORS_CONFIG_ASYNC, 0);
>  }
>
> -LONG QxlDevice::GetMaxSourceMappingHeight(D3DKMT_MOVE_RECT* Moves, ULONG
> NumMoves, RECT* DirtyRects, ULONG NumDirtyRects)
> +LONG QxlDevice::GetMaxSourceMappingHeight(RECT* DirtyRects, ULONG
> NumDirtyRects)
>  {
>      PAGED_CODE();
>      LONG maxHeight = 0;
> -    if (Moves != NULL) {
> -        for (UINT i = 0; i < NumMoves; i++) {
> -            const POINT&   pSourcePoint = Moves[i].SourcePoint;
> -            const RECT&    pDestRect = Moves[i].DestRect;
> -            maxHeight = MAX(maxHeight, pDestRect.bottom - pDestRect.top +
> pSourcePoint.y);
> -        }
> -    }
>      if (DirtyRects != NULL) {
>          for (UINT i = 0; i < NumDirtyRects; i++) {
>              const RECT&    pDirtyRect = DirtyRects[i];
> diff --git a/qxldod/QxlDod.h b/qxldod/QxlDod.h
> index 8df1fcf..e782dfb 100755
> --- a/qxldod/QxlDod.h
> +++ b/qxldod/QxlDod.h
> @@ -555,7 +555,7 @@ private:
>      NTSTATUS SetCustomDisplay(QXLEscapeSetCustomDisplay* custom_display);
>      void SetMonitorConfig(QXLHead* monitor_config);
>
> -    static LONG GetMaxSourceMappingHeight(D3DKMT_MOVE_RECT* Moves, ULONG
> NumMoves, RECT* DirtyRects, ULONG NumDirtyRects);
> +    static LONG GetMaxSourceMappingHeight(RECT* DirtyRects, ULONG
> NumDirtyRects);
>
>  private:
>      PUCHAR m_IoBase;
> --
> 2.9.3
>
>
Acked-by: Yuri Benditovich <yuri.benditovich at daynix.com>


> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20170129/6752b23c/attachment.html>


More information about the Spice-devel mailing list