Skip to content

WIP: Multi gpu pixman support

Vasilis Liaskovitis requested to merge vliaskov/weston:multi-gpu-pixman-wip into main

This is a WIP patch implementing support for multiple drm devices when using the pixman renderer. A new config option "multi-drm" is introduced in the drm backend. When specified, the backend will try to use all available drm devices found.

Tested with: weston --multi-drm --use-pixman --backend=drm-backend.so on a dual-GPU desktop, each GPU connected to a single display.

  • A new struct drm_dev stores the drm-device specific fields. The drm_backend keeps a wl_list of these devices.

  • structs drm_head, drm_output have a pointer to the appropriate drm_device.

  • capabilities (atomic modesetting, clock setting, cursor width and height, universal planes, aspect ratio) are backend-global and have to be set after checking the respective cap on all drm devices.

  • Should cursor width and height be drm-specific? What other drm_backend struct fields should be drm-device specific?

  • There is code in the patch concerning gl-renderer/egl/gbm but of course it does not work yet with the multi-drm option. The question is whether the approach this patch takes will be suitable for supporting gl or other renderers in the future.

Again this is RFC/WIP, to see if this approach is sane to continue developing. Comments welcome. Formatting and style are not thoroughly checked, and comments are still sparse, apologies.

#76

Merge request reports