Shared GPU and Display: Required components

To support the Shared GPU and Display framework in a QNX Hypervisor-based system, you must add components to your guest and host images, and configure the virtio-gpu vdev in the VM of any guest that wants to use the host GPU and send displays to the host.

Host components

To enable GPU and display sharing on the host, you must ensure that:
  • The following files are included in the shared object list of your hypervisor host buildfile:
    • vdev-virtio-gpu.so
    • libvirglrenderer.so
    • libgfxstream.so
  • For each VM that hosts a guest that uses graphics sharing, the virtio-gpu vdev is configured. For information on how to enable GPU sharing and configure your virtual displays, see the vdev virtio-gpu reference.
  • The path to the configuration file (*.qvmconf) for each guest that's running in a VM is included in your hypervisor host buildfile.
  • The host image contains the Screen Graphics Subsystem. This component is included in QNX SDP and therefore is present in the default buildfile in any hypervisor host BSP.
  • A graphics configuration file (e.g., graphics.conf) that contains your Screen configuration for the host is included in the host buildfile.
For more information on how to configure your hypervisor host, see the Configuration section of the QNX Hypervisor User's Guide.

Guest components

Because the virtio-gpu vdev is a para-virtualized device, the guest must have a VirtIO driver that can communicate with this vdev.
QNX Neutrino guests
For QNX Neutrino guests, you must use:
  • the drm-virtio driver.

    This driver is provided with the QNX Software Development Platform (SDP). See the drm-virtio entry in the Screen Graphics Subsystem Developer's Guide.

  • a graphics configuration file (e.g., graphics.conf) that contains your drm-virtio configuration and your Screen display configuration
Android and Linux guests
For Android and Linux guests, you must use the virtio-gpu.ko kernel driver. You also need the right middleware components and to configure them appropriately to use the host-side rendering libraries of libvirglrenderer.so and libgfxstream.so. On the guest, the client (middleware) libraries might have different names.
Page updated: