The QNX Graphics Framework server
io-display [-fv] [-d device] [-c config_file] [-p priority]
Neutrino
The format of the device string is:
vid=[0x]vendor_id,did=[0x]device_id[,deviceindex=index]
Where:
For PCI devices, you can use the pci utility to display PCI information about installed graphics devices on a machine running Neutrino. |
The io-display manager provides support for direct rendering to graphics devices using the QNX Graphics Framework and OpenGL ES by loading the driver specified by the -d option.
Once io-display has started, applications can use the QNX Graphics Framework library (libgf) and OpenGL ES libraries to acquire a graphics context and render to the device.
QNX Graphics Framework applications must be privileged in order to run, since they directly access the graphics hardware when rendering. This means they either have to be run by root, or by a member of the display group. Applications that are a member of the display group can directly access the graphics hardware, without having supervisor (root) privileges.
There is one restriction however, which currently only applies to x86 systems. Some drivers for older video devices may need to perform accesses to I/O mapped registers when rendering. In this case, the thread performing the rendering will need to have I/O privilege. In order to obtain I/O privilege, the process must run as root. A process with I/O privilege on an x86 system does not have full superuser privileges, however, so the extra requirement to run as root with some graphics devices introduces minimal risk. |
By default, the io-display configuration file is located in /etc/system/config/display.conf, but you can put it in a different location and use the -c option.
This file specifies global options, device-specific options, and display-specific options. The file follows these conventions:
The top-level section is device, which describes a graphics device. It has these options and subsections:
You can also load a hook module by calling PgPHookRegister(). For more information, see the Photon Library Reference.
Here is a sample file:
device { drivername=coral vid=0x10cf did=0x201e deviceindex=0 display { xres=640 yres=480 refresh=60 pixel_format=argb1555 } } device { noautoshutdown=1 drivername=coral vid=0x10cf did=0x201e deviceindex=0 modeopts=/usr/photon/config/coral.conf display { xres=640 yres=480 refresh=60 pixel_format=argb1555 } }
When you want to run both GF/OpenGL ES and Photon applications, you must start io-display before starting the Photon graphics server, io-graphics. In this situation, io-graphics queries io-display for the display's settings rather than its own command-line settings. You can start Photon using the ph script on x86 targets; on other targets you need to start Photon manually.
To start Photon:
By default, Photon runs on the display's main layer. Therefore you should run GF and OpenGL ES applications on a different layer.
Start io-display, and load and initialize the driver for the Fujitsu Coral PA chipset:
io-display -dvid=0x10cf,did=0x201e
The driver, devg-coral.so, is loaded by io-display, and the initial display resolution is 640×480×15 at 60Hz.