Home
Developer Resources
Technical Articles

QNX Technical Articles

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

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

Date of this edition: June 23, 2016

Screen Graphics Subsystem for QNX SDP 6.5 SP1 (201606221450) 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 (201606221450) as "the package", and the Screen Graphics Subsystem as "Screen". Note that 201606221450 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.
  • Screen applications that are developed with QNX SDP 6.5.0 SP1 are not compatible with QNX SDP 6.6.


Note:
  • If you've previously installed a build of Screen, you must uninstall 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. You can restore your host system to support Photon development by uninstalling the package.

  • 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. Using it leads to undefined behavior when run with Screen.
  • 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.
  • Your QNX Neutrino target system can no longer run Photon applications when you rebuild and redeploy your target image after having installed Screen.

This package is supported on the following platforms:

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

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.


Note:

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 Center.


Contents

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

The following are enhancements since the previous released version of Screen:

Improved usability of Screen API and utilities:
  • When calling either screen_post_window() or screen_post_stream(), applications can now indicate that the entire rendering buffer is dirty .
  • The screencmd utility now supports all valid properties for each Screen API object type. It also now accepts case-insensitive property names without requiring them to be necessarily prefixed with "SCREEN_PROPERTY_".
  • The vcapture-demo utility now supports an option to set the deinterlace mode

    As part of the support for the TI Jacinto 6 platform, the vcapture-demo utility now supports the -dmode option.


    Note:

    You must use the -dmode=none option when using the NXP i.MX6 SABRE Smart as your target hardware.


Platform support for TI Jacinto 6 (Revision G)
Note that there may be differences between board revisions. Ensure that you use the specific configuration and graphics.conf, that's specific to your target hardware. (Ref# J1460238)

Platform-specific instructions are provided in the BSP User's Guide for your platform. You can find the BSP User's Guide for your platform in the Download area on our website (www.qnx.com).

Updated documentation (e.g., Screen Developer's Guide, Video Capture Developer's Guide)

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.

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

Which platforms are supported?

Screen for QNX SDP 6.5 SP1 (201606221450) 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
Texas Instrument

Jacinto 6 EVM

Revision G

ARM Dual Cortex A15

SGX544MP2

Imgtec DDK-1.9 DSS

DPI, HDMI

3

DPI: 1280x800

HDMI: 1280x720

Lilliput 10.1" FA1012

LG (I2C Controller)

Parallel tvp5158

Known issues

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

Screen

When calling either screen_post_window() or screen_post_stream(), you can't specify more than 247 dirty regions.

If you provide a count argument that's greater than 247 to either screen_post_window() or screen_post_stream(), some dirty regions may not be redrawn. (Ref# J1467477)

Support for keyboard is not available by default on the following platforms:
  • Nexcom VTC-1010
  • NXP i.MX6
  • TI Jacinto 6 (Revision G)

(Ref# J1513860)

Workaround: Include the keyboard mappings in the buildfile (e.g., imx6-sabresmart-graphics.build) that's included in your BSP by adding the following:

...
[data=copy]
...
/usr/photon/keyboard=${QNX_TARGET}/usr/photon/keyboard
...
			

You can find the BSP and the BSP User's Guide for your platform from the Download area on our website (www.qnx.com).

For more information on how to modify your buildfile, see "Sample Buildfiles" in Building Embedded Systems.

YUV windows might not be displayed.
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

(Ref# J1387630)

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

Windows that require scaling may be cropped to fit in the scale range, instead of the framebuffer.

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. (Ref# J1387336)

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

When the blitter module used for composition onto a framebuffer is either screen-gles1.so or screen-gles2.so, the number of buffers for that framebuffer class must be set to 3 or less.

In your framebuffer's class subsection of your configuration file, graphics.conf, if you set usage to include gles1 and/or gles2, then you must also set buffer-count to a value that's no greater than 3. Otherwise, Screen crashes. For more information on how to set configuration parameters, see the "Configuring Screen" chapter in the Screen Developer's Guide. (Ref# J1472776)

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

The calib-touch utility doesn't support calibrating multiple displays. (Ref# J1495220)

OpenGL ES applications' call to eglCreateContext() may fail.

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

When screen_create_window_group() is called early in the system's bootup sequence, the window group that's generated by Screen may not be unique. (Ref# J1525054)
Workaround: If you're calling screen_create_window_group() early in your system's bootup sequence, use a unique static name in the name argument instead of setting it to NULL.

Nexcom VTC-1010

The attaching of buffers that aren't allocated through Screen API isn't supported. (Ref# J1351085)

Changing the SCREEN_PROPERTY_MODE property for a display object at runtime isn't supported.

Don't do the following to change the SCREEN_PROPERTY_MODE property for a display:

  • call screen_set_display_property_pv() from your application
  • use the screencmd utility while your application is running

(Ref# J1380642)

Don't run screen simultaneously with the VGA console (devc-con), the keyboard I/O manager (devc-con-hid), or both.

The hardware isn't designed to allow access to the display hardware by both VGA and GPU simultaneously. (Ref# J1385305)

Not all Khronos GLES 2.0 conformance tests pass.(Ref# J1369495)

Behavior in display mirroring is different between VGA and DP ports
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. (Ref# J1419516)

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

The SCREEN_PROPERTY_POWER_MODE property supports only SCREEN_POWER_MODE_OFF. (Ref# J1424964)

i.MX6

The display may momentarily go blue, and then black when starting, or slaying, an application.
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). (Ref# J1312155)

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 NXP 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.

Don't do the following to change the SCREEN_PROPERTY_MODE property for a display:

  • call screen_set_display_property_pv() from your application
  • use the screencmd utility while your application is running

(Ref# J1380735)

Not all Khronos GLES 2.0 and GLES 3.0 conformance tests pass. (Ref# J1371736, J1517912)

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

The attaching of buffers that aren't allocated through Screen API isn't supported. (Ref# J1351085)

Jacinto 6

The SCREEN_PROPERTY_POWER_MODE property doesn't support multiple displays. (Ref# J1480030)

Changing the SCREEN_PROPERTY_MODE property for a display object at runtime isn't supported.

Don't do the following to change the SCREEN_PROPERTY_MODE property for a display:

  • call screen_set_display_property_pv() from your application
  • use the screencmd utility while your application is running

(Ref# J1511329)

Fixed issues

Screen

The settings of the SCREEN_PROPERTY_POWER_MODE property now behave as how they're described. (Ref# J1380906)

Orphaned child windows are now composited by Screen. (Ref# J1443297)

Rotation of windows now works without a framebuffer. (Ref# J1434826)

Screen no longer sends notifications on all property changes. (Ref# J1485069)

Screen now sends notification to a window manager, if one exists, when there's a change to a layout-related property.

Screen notifies a window manager, if one exists, of the following property changes:

  • SCREEN_PROPERTY_CLIP_POSITION
  • SCREEN_PROPERTY_CLIP_SIZE
  • SCREEN_PROPERTY_DISPLAY
  • SCREEN_PROPERTY_PIPELINE
  • SCREEN_PROPERTY_POSITION
  • SCREEN_PROPERTY_SHADOW_POSITION
  • SCREEN_PROPERTY_SHADOW_SIZE
  • SCREEN_PROPERTY_SIZE
  • SCREEN_PROPERTY_VISIBLE
  • SCREEN_PROPERTY_ZORDER
(Ref# J1479488)

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.