[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