[PATCH v2 0/3] Enable both asynchronous and synchronous plane flip
Zhenyu Wang
zhenyuw at linux.intel.com
Fri Mar 29 02:55:59 UTC 2019
On 2019.03.25 09:52:14 +0800, Colin Xu wrote:
> Write to GEN graphics display register PLANE_SURF is considered a plane flip,
> which can be done either through command streamer or MMIO write synchronously
> or asynchronously. Synchronous updates will update the plane surface values
> at the start of the next vertical blank to prevent screen tearing, while
> asynchronous updates will update the plane surface as soon as possible for
> faster screen update. The behaviour depends on MI_DISPLAY_FLIP command or
> plane control register.
>
> There also exist some mistakes on emulating pipe frame count and pipe flip
> count increment:
> - pipe frame count should only get incremented on every start of vsync, not
> on plane flip.
> - pipe flip count indicates the start of flip when the plane surface
> address is updated, not when the flip completes.
> - On GVT currently supported platforms including BDW and SKL+, pipe flip
> count only count flips of primary plane.
> Relevant information can be found on Intel GFX PRM on 01.org.
>
> The patch set enables asynchronous plane flip for both MI_DISPLAY_FLIP
> update and plane surface address mmio update. With the patch, the render
> performance of some 3D application especially benchmark tools can be
> increased significantly.
> An experiment tested on gvt-staging (5.0.0-RC4):
> Host: Intel CFL NUC (i7-8559U, 16GB memory)
> Guest: 2 VCPU, 4096MB memory, Type-4 VGPU, dmabuf
> Benchmark: 3DMark IceStorm on Windows 10.0.17134
>
> +----------------+-----------+------------+
> | Test Item | Before | After |
> +----------------+-----------+------------+
> | Graphics score | 14346 | 55387 |
> | Graphic test 1 | 62.36 FPS | 252.65 FPS |
> | Graphic test 2 | 62.39 FPS | 230.04 FPS |
> | Physical score | 19688 | 26665 |
> | Physical test | 62.50 FPS | 84.65 FPS |
> +----------------+-----------+------------+
>
> v2:
> Add bit operation definition for flip mode. (zhenyu)
>
> Colin Xu (3):
> drm/i915/gvt: Add macro define for mmio 0x50080 and gvt flip event
> drm/i915/gvt: Enable synchronous flip on handling MI_DISPLAY_FLIP
> drm/i915/gvt: Enable async flip on plane surface mmio writes
>
> drivers/gpu/drm/i915/gvt/cmd_parser.c | 10 +++-
> drivers/gpu/drm/i915/gvt/display.c | 1 -
> drivers/gpu/drm/i915/gvt/handlers.c | 73 ++++++++++++++++++++-------
> drivers/gpu/drm/i915/gvt/reg.h | 31 ++++++++++++
> 4 files changed, 94 insertions(+), 21 deletions(-)
>
This series look fine to me.
Reviewed-by: Zhenyu Wang <zhenyuw at linux.intel.com>
--
Open Source Technology Center, Intel ltd.
$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gvt-dev/attachments/20190329/a20c9344/attachment.sig>
More information about the intel-gvt-dev
mailing list