[PATCH v2 xserver 00/11] modesetting: MS_ALL_IN_ONE

Qiang Yu Qiang.Yu at amd.com
Sat Jan 7 08:01:21 UTC 2017


V2: add PATCH 11 to support GPUScreen capable of display

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 one screen for them. If the render device
is also capable of display, create a GPUScreen for it in
addition.

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.

Tested on a laptop with Intel iGPU and AMD dGPU.

Qiang Yu (11):
  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
  modesetting: still create GPUScreen when it's capable of display

 hw/xfree86/dri2/dri2.c                           |  35 +--
 hw/xfree86/drivers/modesetting/dri2.c            |  33 ++-
 hw/xfree86/drivers/modesetting/driver.c          | 265 ++++++++++++++++-------
 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, 385 insertions(+), 110 deletions(-)

-- 
2.7.4



More information about the xorg-devel mailing list