Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX® Screen Graphics Subsystem for QNX SDP 6.5 SP1 (201601081607): Release Notes

QNX® Screen Graphics Subsystem for QNX SDP 6.5 SP1 (201601081607): Release Notes

Date of this edition: July 8, 2016

Changes to these notes since January 14, 2015 are highlighted below with this icon: New:

Screen Graphics Subsystem for QNX SDP 6.5 SP1 (201601081607) includes the following:

  • the Screen Graphics Subsystem
  • the Gestures Library
  • the Video Capture Library

We refer to Screen Graphics Subsystem for QNX SDP 6.5 SP1 (201601081607) as "the package", and the Screen Graphics Subsystem as "Screen". Note that 201601081607 identifies the build of the package, not the version of QNX SDP.

You can install the package on the following development hosts:

  • Microsoft Windows 7 Professional 32- and 64-bit, Vista Business 32- and 64-bit, XP Professional SP3, or 2000 SP4
  • Red Hat Enterprise Linux 5.4 Desktop 32- and 64-bit, Red Hat Fedora 12, Ubuntu Workstation 9.10, 11.04, and 12.04 32- and 64-bit, openSUSE 11

Note:
  • Development of Screen applications on self-hosted QNX Neutrino systems isn't supported.
  • If you used an experimental build of Screen, remove it before installing this package.
  • Screen can't coexist with Photon; installing the package removes the Photon microGUI from your QNX SDP 6.5.0 SP1 host system.
  • If you rebuild and redeploy your target image after installing Screen, your QNX Neutrino target system can no longer run Photon applications.
  • You can restore your host system to support Photon development by uninstalling the package.
  • Screen applications that are developed with QNX SDP 6.5.0 SP1 are not compatible with QNX SDP 6.6.
  • New: Don't use the io-display command if you rebuild and redeploy our target image after installing Screen. The io-display command is associated with Photon and will lead to undefined behavior when run with Screen.
  • New: After installing this package, don't link to the libgf library. The libgf library is associated with QNX Advanced Graphics Framework. This framework isn't compatible with Screen.

Screen Graphics Subsystem for QNX SDP 6.5 SP1 (201601081607) is supported on the following platforms:

  • Nexcom VTC-1010
  • NXP i.MX6D/Q SABRE Platform for Smart Devices (also known as "SABRE Smart”)

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.

For the most up-to-date version of the installation and release notes, go to our website, www.qnx.com, log in to your myQNX account, and then go to the Download area.

Contents

What's in Screen Graphics Subsystem for QNX SDP 6.5 SP1 (201601081607)?

The main features in this package include the following:

Screen Graphics Subystem

Screen is a framework that provides all the functionality necessary to develop interactive user experiences. It's a replacement for the Photon microGUI and QNX Neutrino Advanced Graphics.

Screen provides the following:

  • service for applications to generate and display graphical content
  • service for applications to receive input from input devices, such as a pointer or a touchscreen
  • support for graphical content from other sources, such as cameras, video decoders, and video capture sources
  • support for display mechanisms to:
    • control physical displays
    • display graphical content
  • support for the following types of rendering APIs:
    • OpenGL ES 1.1, 2.0, and 3.0
    • OpenVG 1.2
    • native (hardware blitting)
    • software (writing to buffers using the CPU)
  • support for the following UI runtime environments:
    • native
    • Qt 5
    These UI runtime environments can run independently, or together, sharing the display.
  • support for TrueType fonts (available fonts are in $QNX_TARGET/usr/share/fonts/)
  • support for Freetype font engine
  • tools and utilities to support debugging for applications

For more information, see the Screen Developer's Guide.

For examples of Screen applications, you can download the QNX SDP 6.5.0 SP1 Graphics Sample Source Code package that's available from the Download Center on our website, www.qnx.com

Gestures Library

The Gestures library provides gesture recognizers to detect gestures through touch events that occur when you place one or more fingers on a touchscreen.

For more information, see the Gestures Developer's Guide.

Video Capture Library

The Video capture library provides applications the ability to capture frames from a video input source. These frames can be passed to a graphics component such as Screen for display.

The Video capture library is included in this package, but isn't, and won't be, a component of the Screen graphics framework.

For more information, see the Video Capture Developer's Guide.

Which platforms are supported?

Screen supports the following target hardware:

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
NXP SabreSmart i.MX6Q

GC2000

GC320

Vivante 5.0.11

IPU3 LVDS, HDMI 2

LVDS: 1024x768

HDMI: 1280x720

Lilliput 10.1" FA1012 (HDMI)

Innolux

Hannstar

Innolux (I2C controller)

Hannstar (I2C controller)

MIPI-CSI-2, Parallel

OV5640

Intel VTC1010 ATOM E3827

Intel 4000

Intel DRM 3.12.2, Mesa 10.2.3

N/A

DP, VGA

2

DP: 1280x720

VGA: 1280x720

Lilliput 10.1" FA1012 (USB controller)

Lilliput 10.1" FA1012 (USB controller)

N/A N/A

Known issues

Screen Graphics Subsystem for QNX SDP 6.5 SP1 (201601081607) contains the following known issues:

Screen

Behavior of posts may not be as expected when SCREEN_PROPERTY_POWER_MODE property is set to SCREEN_PROPERTY_POWER_MODE_OFF (Ref# J1380906, J1380642)

When the SCREEN_PROPERTY_POWER_MODE property is set to SCREEN_PROPERTY_POWER_MODE_OFF, and your application is still posting, the posts behave as if SCREEN_PROPERTY_SWAP_INTERVAL is set to 0. (Ref# J1380906, J1380642)

New: Orphaned child windows aren't composited by Screen(Ref# J1443297)
Under the following circumstances, orphaned child windows aren't composited by Screen:
  • when an application that owns a root window is terminated
  • when a root window that has child windows is destroyed
  • when a window group that has a root window ancestor is destroyed

Workaround: For controlled scenarios, such as when an application exits successfuly, or when a root window or window group is destroyed, we recommend removing any child window from the root window's hierarchy before destroying the root window or a window group that's underneath it.

New: Rotation of windows doesn't work without a framebuffer (Ref# J1434826)

For display pipelines that don’t support rotation, the rotation of windows doesn’t work if a framebuffer hasn’t yet been created.

Workaround: Ensure that you run applications that trigger the creation of a framebuffer before any rotation is required.

New: YUV windows might not be displayed (Ref# J1387630)
A window that has all of the following characteristics might not be displayed if it's positioned at the limit of the display’s upper scale range:
  1. Its SCREEN_PROPERTY_FORMAT property is of a YUV format
  2. Its SCREEN_PROPERTY_SOURCE_SIZE property has an odd-numbered width or height
  3. It's on its own pipeline

Workaround: Set the window's SCREEN_PROPERTY_SOURCE_SIZE property so that both its width and height are even-numbered.

New: Windows that require scaling may be cropped to fit in the scale range, instead of the framebuffer (Ref# J1387336)

For scaling that's outside the scaling range of a window's pipeline, the window is cropped to fit in the scale range, instead of the framebuffer, if a framebuffer hasn’t yet been created.

Workaround: Ensure that you run applications that trigger the creation of a framebuffer before any scaling is required.

New: Screen sends notifications on all property changes. (Ref# J1485069)

Workaround: Events sent to your application's context event queue may be lost when the number of events to be queued has exceeded the event queue's capacity.

Minimize the number of events that may be lost due by increasing the capacity of your application's context event queue. You can do this by setting the -queue-start-size option in the globals subsection of your configuration file, graphics.conf. See the "Configuring Screen" chapter in the Screen Developer's Guide for more information on how to use this option.

New: Rotation of the display isn't supported. (Ref# J1472710, J1469426)

Nexcom VTC-1010

Blitter configuration is incorrect(Ref# 617436)
The default graphics.conf for the Intel-DRM has the wrong setting for the blitter.

Workaround: Edit graphics.conf and find these lines:

				begin class framebuffer
				display = 2
				pipeline = 1
				format = rgba8888
				usage = gles2
				end class
			

Change the usage line to this:

				usage = gles2blt
			
Use of memory that's not allocated through the Screen API isn't supported (Ref# J1351085)

Changing the SCREEN_PROPERTY_MODE property for a display object at runtime isn't supported.(Ref# J1380642)

Don't call screen_set_display_property_pv() from your application, or use the screencmd) utility while your application is running to change the SCREEN_PROPERTY_MODE property for a display.

It's not recommended to run screen simultaneously with the VGA console (devc-con), the keyboard I/O manager (devc-con-hid), or both (Ref# J1417107)

The hardware isn't designed to allow access to the display hardware by both VGA and GPU simultaneously.

There are a number of known failures from the Khronos GLES conformance tests. (Ref# J1369495)

Behavior in display mirroring is different between VGA and DP port (Ref# J1419516)
When the default-display in graphics.conf is configured to the VGA port, the following behaviors related to display mirroring are observed:
  • When display mirroring is enabled (either by setting the mirroring parameter in graphics.conf or by setting the SCREEN_PROPERTY_MIRROR_MODE with the Screen API), occasional stuttering may be observed
  • Enabling mirroring can only be performed once. That is, if you have display mirroring enabled, then disable it, you won't be able to enable display mirroring again

Note that there are no issues when the default-display in graphics.conf is configured to the DP port.

New: The WFD driver on Intel VTC-1010 doesn't currently support transparency on pipelines. (Ref# J1407281)

i.MX6

Total amount of contiguous memory preallocated to 248MB is disabled (Ref# J608812)
The total amount of contiguous memory that can be preallocated for the i.MX6 GPU is 248 MB, as specified by these lines in graphics.conf:
				# GPU driver contiguous memory pool sizes in MB (2..248)
				# Large values have better performance but longer startup time.
				# Small values have a variety of performance impacts at run time.
				# gpu-contiguousMB   = 248
				gpu-contiguousMB   = 64      # recommended
			

If all 248 MB of contiguous memory is used, you'll start seeing graphics artifacts (due to failed memory allocations). You can enable dynamic memory allocation to get additional memory, but this might create memory corruption (which is why it's disabled by default) and crash random processes or even lock the complete target.

To enable dynamic memory allocation add the following lines to the graphics.conf:

				# Use only the contiguous memory pool (for debugging).
				# true means no virtual memory allocations.
				# false means that additional virtual memory will be allocated when
				# the contiguous pool is full.
				gpu-contiguousOnly = false
			
Display may momentarily go blue, then black when starting, or slaying, an application (Ref# J1312155)
This is expected behavior when the format of a single window, that's on the display, changes between a 16-bit and 32-bit RGB (e.g., when one application uses RGB565, while another uses RGBA8888).

Workaround: Avoid using a mix of windows in 16-bit RGB format (e.g., RGB565) with other formats (e.g., RGBA8888, NV12, etc.), or ensure that multiple windows are visible at all times.

LVDS clock setup doesn't follow Freescale recommendations(Ref# J1338327)

Workaround: None. Displays that don't use the iMX6 on-chip LVDS bridge (e.g., HDMI, parallel, or an off-chip external LVDS bridge on a custom board) are not affected.

Changing the SCREEN_PROPERTY_MODE property for a display object at runtime isn't supported.(Ref# J1380735)

Don't call screen_set_display_property_pv() from your application, or use the screencmd) utility while your application is running to change the SCREEN_PROPERTY_MODE property for a display.

There are a number of known failures from the Khronos GLES conformance tests. (Ref# J1371736)

New: Applications using the Vivante GPU driver that call eglReleaseThread() may crash on subsequent EGL calls. (Ref# J1403875)

New: OpenGL ES applications' call to eglCreateContext() may fail. (Ref# J1382799)

If the filepath specified using the -c option of the screen command is too long, OpenGL ES applications' call to eglCreateContext() may fail.

New: Use of memory that's not allocated through the Screen API isn't supported (Ref# J1351085)

Getting started with the documentation

After you've installed the package, you'll find an extensive set of HTML documentation. On Linux and Windows development hosts, you can read it in the Integrated Development Environment's help system. On Linux, use the qde command to start the IDE; on Windows, use the desktop icon.

For the most up-to-date version of the documentation, go to the Download Center on our website, www.qnx.com.

Instructions for how to build a target image that includes Screen are provided in the BSP User's Guide for your platform. You can find the BSP User's Guide for your platform from the Download area on our website (www.qnx.com).

Technical support

To obtain technical support for any QNX product, visit the Support area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.

For questions about installing and using Screen, see our Foundry27 site, http://community.qnx.com. There are other forums for specific topics, including the QNX Neutrino RTOS, development tools, networking, Board Support Packages, and so on.