Graphics

Release notes for QNX SDP 8.0.2 graphics updates.

The known issues are described in the QNX Software Development Platform 8.0: Known Issues document that's stored in the QNX Download Center. Log in and refer to https://www.qnx.com/download/group.html?programid=74127.

QNX SDP 8.0.2 Graphics Update (Build 132)


Date of this edition: January 28, 2025
This update includes the following packages found under Updates -> QNX Software Development Platform or Available -> QNX Software Development Platform:
Name Package ID Package internal version
QNX SDP 8.0 Screen Base Graphics com.qnx.qnx800.target.screen.base 4.0.2.00132T202501161817L
QNX SDP 8.0 Screen Utilities com.qnx.qnx800.target.screen.screen_utils
QNX SDP 8.0 Vulkan SDK for development com.qnx.qnx800.target.screen.vulkan.sdk
QNX SDP 8.0 Screen Board Support drm com.qnx.qnx800.target.screen.board.drm
QNX SDP 8.0 Screen Demos and Tutorials Source Code

com.qnx.qnx800.target.screen.demos_tutorials.source

QNX SDP 8.0 Video Capture

com.qnx.qnx800.target.screen.video_capture

QNX SDP 8.0 Screen WFD Server

com.qnx.qnx800.target.screen.base.wfd_server

QNX SDP 8.0 VulkanSC com.qnx.qnx800.target.screen.vulkansc
QNX SDP 8.0 VulkanSC SDK com.qnx.qnx800.target.screen.vulkansc.sdk
QNX SDP 8.0 Screen Device Input Utilities

com.qnx.qnx800.target.screen.device_input_screen

QNX SDP 8.0 Screen Board Support - NXP iMX8X series, common files com.qnx.qnx800.target.screen.board.nxp.imx8.common
QNX SDP 8.0 Screen Board Support for TI AM62A com.qnx.qnx800.target.screen.board.am62a
QNX SDP 8.0 Screen Board Support for TI AM62P com.qnx.qnx800.target.screen.board.am62p
QNX SDP 8.0 Screen Board Support for TI AM62x com.qnx.qnx800.target.screen.board.am62x
QNX SDP 8.0 Screen Board Support for TI J721E com.qnx.qnx800.target.screen.board.j721e
QNX SDP 8.0 Screen Board Support for TI J721S2 com.qnx.qnx800.target.screen.board.j721s2
QNX SDP 8.0 Screen Board Support for TI J722S com.qnx.qnx800.target.screen.board.j722s
QNX SDP 8.0 Screen Board Support for TI J742S2 com.qnx.qnx800.target.screen.board.j742s2
QNX SDP 8.0 Screen Board Support for TI J784S4 com.qnx.qnx800.target.screen.board.j784s4
QNX SDP 8.0 Screen Board Support i.MX8QM com.qnx.qnx800.target.screen.board.imx8qm
QNX SDP 8.0 Screen Board Support Intel com.qnx.qnx800.target.screen.board.intel
QNX SDP 8.0 Screen Board Support Intel OpenCL com.qnx.qnx800.target.screen.board.intel.opencl
QNX SDP 8.0 WFD-Server Demos and Tutorials Source Code

com.qnx.qnx800.target.screen.wfd_server.demos_tutorials.source

Additional packages:

  • Documentation (Build 117)
    This update includes the following packages found under Updates -> QNX Software Development Platform -> Documentation or Available -> QNX Software Development Platform -> Documentation:
    Name Package ID Package internal version
    QNX SDP 8.0 Screen Documentation

    com.qnx.qnx800.target.screen.docs.plugins

    4.0.1.00117T202501221715L

  • Microkernel (Build 2026)
    This update includes the following packages found under Updates -> QNX Software Development Platform -> Microkernel or Available -> QNX Software Development Platform -> Microkernel:
    Name Package ID Package internal version
    QNX SDP 8.0 Kernel and libc

    com.qnx.qnx800.target.microkernel.core

    2.0.4.02026T202501161902L

  • Device Input (Build 7)
    This update includes the following packages found under Updates -> QNX Software Development Platform -> Device Input or Available -> QNX Software Development Platform -> Device Input:
    Name Package ID Package internal version
    QNX SDP 8.0 Device Input

    com.qnx.qnx800.target.screen.device_input

    0.1.0.00007T202411230047L

What's new

  • Vulkan has been updated to version 1.3.216.
  • OpenCL has been updated to version 3.0.11.
  • The VulkanSC ICD loader is now available as part of the com.qnx.qnx800.target.screen.base package. It is an experimental package.
  • New screen APIs have been added to manipulate float values:
    • screen_get_device_property_fv()
    • screen_set_device_property_fv()
    • screen_get_display_property_fv()
    • screen_set_display_property_fv()
    • screen_get_session_property_fv()
    • screen_set_session_property_fv()
    • screen_get_window_property_fv()
    • screen_set_window_property_fv()
  • The OpenWF Display Server (wfd-server) is now available as part of the com.qnx.qnx800.target.screen.base.wfd_server package. It is an experimental package.
    • The wfd-server is a resource manager that provides the ability to control display output independently from QNX Screen. The separation of the display controller from QNX Screen allows the display of critical elements directly to the display device through the use of OpenWF Display API in the event of a failure of other applications using QNX Screen or QNX Screen itself. The wfd-server package includes the resource manager, OpenWF Display API library, and demo and utility applications that highlight wfd-server capabilities and its potential use cases.
      Note:
      The wfd-server was tested on Imx8QM and j721e platforms only. Other platforms might have unexpected behavior.
  • A new SCREEN_PROPERTY_FOCUS_MODE display property has been added. This property enables Screen to tailor focus settings based on the specific connected display.
  • Support for the following Intel hardware has been added:
    • Elkhart Lake
    • Alder Lake
    • Tiger Lake

BSP Integration for Intel X86

Add the following libraries and binaries to the BSP build file to integrate the Intel x86 hardware:
###########################################################################
## Screen composition manager support
###########################################################################
# Graphics support - screen
/lib/dll/screen-gles2blt.so=screen-gles2blt.so
/lib/dll/screen-debug.so=screen-debug.so
/lib/dll/screen-stdbuf.so=screen-stdbuf.so
/lib/dll/screen-sw.so=screen-sw.so
/lib/libmemobj.so=libmemobj.so
/lib/libscrmem.so=libscrmem.so
/sbin/screen=screen
/usr/lib/libEGL.so=libEGL.so
/usr/lib/libGLESv2.so=libGLESv2.so
/usr/lib/libOpenVG.so=libOpenVG.so
/usr/lib/libOpenVGU.so=libOpenVGU.so
/usr/lib/libWFD.so=libWFD.so
/usr/lib/libscreen.so=libscreen.so
/usr/lib/libdrm_intel.so.1=libdrm_intel.so.1

#########################################################################
## OpenCL files to add
#########################################################################
/usr/lib/libOpenCL.so=libOpenCL.so
#/usr/lib/libCL.so=libCL.so

#########################################################################
## Vulkan files to add
#########################################################################
/usr/lib/graphics/vulkan/VkLayer_MESA_overlay.json=graphics/vulkan/VkLayer_MESA_overlay.json
/usr/lib/graphics/vulkan/VkLayer_api_dump.json=graphics/vulkan/VkLayer_api_dump.json
/usr/lib/graphics/vulkan/VkLayer_api_dump.so=graphics/vulkan/VkLayer_api_dump.so
/usr/lib/graphics/vulkan/VkLayer_khronos_validation.json=graphics/vulkan/VkLayer_khronos_validation.json
/usr/lib/graphics/vulkan/VkLayer_khronos_validation.so=graphics/vulkan/VkLayer_khronos_validation.so
/usr/lib/graphics/vulkan/vk_layer_settings.txt=graphics/vulkan/vk_layer_settings.txt
/usr/lib/graphics/vulkan/libVkLayer_MESA_overlay.so=graphics/vulkan/libVkLayer_MESA_overlay.so
/usr/lib/libvulkan.so=libvulkan.so

#########################################################################
## Screen applications to add
#########################################################################
/usr/bin/gles2-gears=gles2-gears
/usr/bin/sw-vsync=sw-vsync
/usr/bin/gles2-teapot=gles2-teapot
/usr/bin/gles2-maze=gles2-maze
/usr/bin/gles3-gears=gles3-gears
/usr/bin/events=events
/usr/bin/egl-configs=egl-configs

#########################################################################
## Vulkan applications to add
#########################################################################
/usr/bin/vulkaninfo=vulkaninfo
/usr/bin/vkcube=vkcube
/usr/bin/vk-fsray=vk-fsray
/usr/bin/vk-gears=vk-gears
/usr/bin/vk-maze=vk-maze
/usr/bin/vk-teapot=vk-teapot

#########################################################################
## OpenCL applications to add
#########################################################################
/usr/bin/clinfo=clinfo
/usr/bin/cl10-pi=cl10-pi
/usr/bin/cl11-ray=cl11-ray

#########################################################################
## Board Specific graphics files for Intel DRM target
#########################################################################
/usr/lib/libdrm.so=libdrm.so
/usr/bin/drm-probe-displays=drm-probe-displays
/lib/dll/screen-inteldrm.so=screen-inteldrm.so
/sbin/drm-intel-518=drm-intel-518
/usr/lib/graphics/intel-drm/crocus_dri.so=graphics/intel-drm/crocus_dri.so
/usr/lib/graphics/intel-drm/gpu_drm.so=graphics/intel-drm/gpu_drm.so
/usr/lib/graphics/intel-drm/[insert intel board variant graphics.conf]=graphics/intel-drm/[insert intel board variant graphics.conf]
/usr/lib/graphics/intel-drm/i965_dri.so=graphics/intel-drm/i965_dri.so
/usr/lib/graphics/intel-drm/intel_icd.json=graphics/intel-drm/intel_icd.json
/usr/lib/graphics/intel-drm/iris_dri.so=graphics/intel-drm/iris_dri.so
/usr/lib/graphics/intel-drm/libEGL-mesa.so=graphics/intel-drm/libEGL-mesa.so
/usr/lib/graphics/intel-drm/libGLESv2-mesa.so=graphics/intel-drm/libGLESv2-mesa.so
/usr/lib/graphics/intel-drm/libWFDintel-drm-atomic.so=graphics/intel-drm/libWFDintel-drm-atomic.so
/usr/lib/graphics/intel-drm/libWFDintel-drm.so=graphics/intel-drm/libWFDintel-drm.so
/usr/lib/graphics/intel-drm/libWFDintel-drm.so.1=graphics/intel-drm/libWFDintel-drm.so
/usr/lib/graphics/intel-drm/libglapi-mesa.so=graphics/intel-drm/libglapi-mesa.so
/usr/lib/graphics/intel-drm/libigdrcl.so=graphics/intel-drm/libigdrcl.so
/usr/lib/graphics/intel-drm/libvulkan_intel.so=graphics/intel-drm/libvulkan_intel.so
/usr/lib/graphics/intel-drm/libwfdcfg-intel-generic.so=graphics/intel-drm/libwfdcfg-intel-generic.so

#######################################################################
## Start the screen graphics
#######################################################################
[perms=0755] /scripts/graphics_start.sh = { #!/bin/sh LD_LIBRARY_PATH=/lib:/usr/lib:/lib/dll:/lib/dll/pci:/proc/boot:/usr/lib/graphics/intel-drm
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin:/proc/boot echo "Starting screen" drm-intel-518 sleep 6 screen -c /usr/lib/graphics/intel-drm/[insert intel board variant graphics.conf] waitfor /dev/screen }
Note:
The intel board configuration file variants are as follows:
  • graphics-elkhartlake.conf
  • graphics-alderlderlake.conf
  • graphics-tigerlake.conf

Fixed Issues

The following issues are fixed in this update. Navigate to them using the reference number(s):
Description Affected Architecture(s) Application-Level Impact System-Level Impact Reference Numbers
Attempting to launch a new instance of the Screen window manager throws the following error:

Error in main calling screen_context_create (line 614): Resource busy.

Raspberry Pi 4 None None 2967672
The screen core might dump after a slay command uses -s SIGKILL. aarch64 None None 2965912
When a window shares its buffer with another window, high frame rates are observed. aarch64 None None 2964603
A static virtual display, with deferred framebuffer-creation enabled, doesn't start the composition module as needed. General None None 2964819
Virtual displays don't support defer-framebuffer-creation. aarch64 None None 2962908
The drm server process isn't slayed with Screen for Intel boards. General None None 2956111
Screen creates non-displayable cursor pixmap. Cursor might not behave properly on certain platforms. General None None 2950869
Applications using virtual displays show lower frames per second (fps) readings than expected. aarch64 None None 2949623
Virtual display consumer application doesn't throttle the virtual display refresh rate, which makes the virtual display run as fast as it can (or is limited by the configured virtual vsync). aarch64, General None None 2944389
Page updated: