Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX® Software Development Platform 7.1— Early Access 1 Experimental Screen Board Support for Raspberry Pi 4: Release Notes

Date of this edition: November 11, 2021

The Screen Graphics Board Support Raspberry Pi 4 package contains display and GPU libraries and drivers that support Raspberry Pi 4 Model B boards. You must install this package on top of QNX SDP 7.1.

The Screen Graphics Board Support Raspberry Pi 4 package has been validated with the following Board Support Packages (BSPs):

QNX SDP 7.1 BSP for Raspberry Pi BCM2711 R-PI4

Throughout this document, you may see reference numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, please quote the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.

Contents

What's in this package?

This package offers support for hardware rendering on the Raspberry Pi 4. It can be found under Available -> QNX Software Development Platform -> Screen Board Support:

Name Package Build ID
QNX 7.1 Screen Graphics Board Support Raspberry Pi 4 com.qnx.qnx710.target.screen.board.rpi4/3.2.0.00004T202108121658L 0004

To see the exact contents of the package, right-click it in the QNX Software Center, choose Properties, and then click Package Contents in the Properties window.

Board support

We've validated the Screen Graphics subsystem on the following platforms with this update:

Board Supplier Board Name CPU GPU GPU Stack Display Controller Display Interface Number of Displays Display Resolution Monitor Name Touch Video Capture Interface Video Decoder
Raspberry Pi 4 Model B Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz Broadcom VideoCore VI @ 500MHz Mesa 3D 21.1.2, V3D/DRM 4.18.20 N/A micro-HDMI 2 up to 4K @ 60Hz Lilliput HID via Lilliput N/A N/A

Known issues

  • Screen can't start the GPU driver successfully. (Ref# J2904820)

    Workaround: You must start drm-rpi4 before starting screen.

  • An unrecoverable error might result when drm-rpi4 attempts to reset a GPU hang. (Ref# J2904818)
  • Mixing SCREEN_USAGE_READ or SCREEN_USAGE_WRITE with SCREEN_USAGE_OPENGL_ESx results in garbled output, write violations, and a GPU reset. (Ref# J2905208)
  • If you mix native drawing, SCREEN_USAGE_NATIVE, with direct (CPU) drawing, SCREEN_USAGE_READ/SCREEN_USAGE_WRITE, native drawing is dropped. (Ref# J2905260)
  • QNX does not recommend you use buffer sharing, screen_share_window_buffers() and screen_consume_stream_buffers(), as it might result in a crash. (Ref# J2905471)
  • External buffers, screen_attach_pixmap_buffer() and screen_attach_window_buffers(), are not currently supported. (Ref# J2906190)

Getting started with this package

This package does not currently support external displays. To view the rendered content, follow the directions below.

Add the following components to your image:

  • Standard Graphics components (Screen, etc.)
  • usr/lib/graphics/rpi4-drm
  • sbin/drm-rpi4
  • lib/dll/screen-rpi4drm.so
  • bin/vncserv (found in the Screen Utilities package)
  • usr/bin/gles2-gears for testing purposes
  • A null display driver and a Graphics configuration file. Both are provided in your Raspberry Pi 4 board support package

To start Graphics on your Raspberry Pi 4, run the following:

  • drm-rpi4
  • screen -c /usr/lib/graphics/rpi4-drm/graphics-WFDnull.conf
  • vncserv -f rgba8888 -e RAW > /dev/null 2>&1 &
  • # Connect a VNC client to the device.
  • gles2-gears -size=321x321

You should see gles2-gears on the VNC client display.

You might need to specify the device IP address and port 5900 to connect the VNC client to vncserv. For example: 10.0.0.146:5900.

A Gigabit Ethernet connection is recommended. Changing the compression parameters in vncserv can help with performance.

Technical support

For information about technical support for any QNX product, see Overview in the Developers or Support area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.