[PATCH xserver 00/10] modesetting: MS_ALL_IN_ONE

Qiang Yu Qiang.Yu at amd.com
Fri Jan 6 14:25:22 UTC 2017


This is for hybrid drm device use case that one drm device
is only capable of display and the other is only capable of
rendering.

Usage: start xserver with MS_ALL_IN_ONE=1, and configure both
the display (Screen) and render (GPUScreen) drm devices using
modesetting DDX, it will use Screen as display, GPUScreen as
render and create only one screen.

Client see only the render device and load render device's DRI
driver. Server side render is also accelerated by the render
device. Display device only display what render device draws.

There is still one problem: DRI3 can't support page flip because
client doesn't know when to create a linear pixmap for flip.

Further improvement: support multi display drm devices
when the render device is also capable of display.

Tested on a laptop with Intel iGPU and AMD dGPU.

Qiang Yu (10):
  modesetting: add MS_ALL_IN_ONE handling
  modesetting: add is_primary to mark entity type
  modesetting: remove unused PciInfo in modesettingRec
  modesetting: add render entity init and free
  Revert "modesetting: Delete dead drmmode_bo_for_pixmap function."
  dri2: refine dri2_probe_driver_name
  modesetting: separate render and display
  modesetting: use drmmode_bo_for_pixmap in ms_do_pageflip
  modesetting: dri2 allocate linear backbuffer
  modesetting: allow display node has no gbm support

 hw/xfree86/dri2/dri2.c                           |  35 ++--
 hw/xfree86/drivers/modesetting/dri2.c            |  33 +++-
 hw/xfree86/drivers/modesetting/driver.c          | 240 ++++++++++++++++-------
 hw/xfree86/drivers/modesetting/driver.h          |   9 +-
 hw/xfree86/drivers/modesetting/drmmode_display.c | 128 +++++++++++-
 hw/xfree86/drivers/modesetting/drmmode_display.h |   3 +
 hw/xfree86/drivers/modesetting/dumb_bo.c         |  11 ++
 hw/xfree86/drivers/modesetting/dumb_bo.h         |   1 +
 hw/xfree86/drivers/modesetting/pageflip.c        |   4 +-
 hw/xfree86/drivers/modesetting/present.c         |   6 +
 10 files changed, 367 insertions(+), 103 deletions(-)

-- 
2.7.4



More information about the xorg-devel mailing list