[PATCH 0/2] Refactor to per-vGPU accurate vblank emulator

Colin Xu colin.xu at intel.com
Mon Nov 9 08:00:03 UTC 2020


The patch set includes two patches:
Patch 1/2: Get accurate vGPU virtual display refresh rate from vreg
Patch 2/2: Use per-vGPU vblank emulator at dynamic & accurate refresh rate.

The patch set resovles below issues:
- 16ms matches the refresh rate at 62.5Hz (instead of 60Hz) which isn't
  belong to standard timing. This leads to some frame drop or glitch issue
  during video playback. Since SW expect at least 16.667ms peroid for 60Hz
  or may need higher resolution, however vblank emulator only works at 16.
- Doesn't respect the fact that with current virtual EDID timing set,
  not all resolutions are enabled at 60Hz. For example, current virtual
  EDID actually supports refresh rate like 56Hz, 59.97Hz, 60Hz, 75Hz, etc.
- Current vblank emulator use single hrtimer for all vGPUs. Regardsless
  how guest changing the resolution, all vsync interupts are injected at
  16ms interval.

With the patch set, the actual refresh rate from guest can now always
match guest OS resolution settings.
To run quick test, launch a web browser and goto URL: www.displayhz.com

Colin Xu (2):
  drm/i915/gvt: Get accurate vGPU virtual display refresh rate from vreg
  drm/i915/gvt: Refactor GVT vblank emulator for vGPU virtual display

 drivers/gpu/drm/i915/gvt/display.c   | 113 ++++++++++++++++-----------
 drivers/gpu/drm/i915/gvt/display.h   |  13 ++-
 drivers/gpu/drm/i915/gvt/gvt.c       |  21 ++++-
 drivers/gpu/drm/i915/gvt/gvt.h       |  13 ++-
 drivers/gpu/drm/i915/gvt/handlers.c  | 113 +++++++++++++++++++++++++--
 drivers/gpu/drm/i915/gvt/interrupt.c |  31 ++------
 drivers/gpu/drm/i915/gvt/interrupt.h |   6 --
 drivers/gpu/drm/i915/gvt/vgpu.c      |   2 -
 8 files changed, 217 insertions(+), 95 deletions(-)

-- 
2.29.2



More information about the intel-gvt-dev mailing list