This appendix contains information about supported hardware capabilities and limitations.
This chapter contains:
The devg-carmine.so driver supports full OpenGL ES hardware acceleration, as long as you enable no more than 2 textures at the same time.
There are two versions of the Carmine chip: ES1 and ES2. Only ES2 chips work with QNX Advanced Graphics. ES1 chips are not supported. Unfortunately, there is no way to determine the chip version in software, and attempting to drive an ES1 chip with the devg-carmine.so driver will cause it to lock up.
The Carmine supports only a subset of the OpenGL ES lighting functionality. If you use any lighting features that are not supported by the Carmine, lighting calculations are performed in software instead. However, the remaining portions of the OpenGL ES pipeline will still be hardware accelerated.
The lighting operations which, if enabled, cause lighting processing to be performed in software include:
- specular lighting (GL_SHININESS has a value other than zero)
- spotlights (a spotlight cutoff angle of ≤ 90 degrees is specified)
- attenuation and positional light: the light position vector must have a W component of 0. This means the light is directional rather than positional (light is at infinity). When the light is at infinity, attenuation processing doesn't take place.
The devg-extreme2.so driver supports full OpenGL ES hardware acceleration, with up to 4 textures simultaneously.
|
The jumper that enables interrupts is not set on Fujitsu Coral cards by default. The Neutrino devg-coral driver will not work unless this jumper is installed. See the Coral hardware documentation for information about installing this jumper. |
GF drawing on Coral hardware has these limitations:
- Only these values are valid for the dash repeat count when setting line dashing with gf_context_set_linedash(): 1, 2, 3, 4, 6, 8, 12, 16, 24, 32.
- The line thickness may be no more than 32 pixels.
- Only butt and bevel joins on polylines are supported.
- Alpha blending using gf_layer_set_blending() is handled differently than is documented in the API. The device copies the alpha map in the gf_alpha_t structure you pass to the function to layer 0. This also applies to the M1 source pixel when in GF_ALPHA_M1_SRC_PIXEL_ALPHA mode.
Therefore, you must ensure that:
- layer 0 is unused for other purposes
- layer 0 is at least as large as the source layer being blended
- Color-space conversion (converting between two surface formats) is not supported.
- The cursor is tied to GF layer 5, and is visible for all layers behind this layer. If you re-order the layers, the cursor will not be visible for layers in front of GF layer 5.
- By default, the maximum number of points per polygon that Coral hardware can draw is around 1000. You can increase the dlsize parameter in the coral.conf configuration file to support more points.
- The documentation for devg-coral.so is incorrect; only 16 ROPs are supported..
In the GF video capture API, gf_vcap_set_brightness(), gf_vcap_set_contrast(), and gf_vcap_set_saturation() are not implemented for Coral hardware. For Coral PA hardware, you can instead use the layer functions gf_layer_set_brightness(), gf_layer_set_contrast(), and gf_layer_set_saturation(). These functions are not implemented for Coral B or Coral P hardware.
The devg-coral.so driver supports full OpenGL ES hardware acceleration, as long as you enable no more than 1 texture.
To prevent falling back to software when using Coral hardware, use the OpenGL ES API as follows:
- Never enable more than one texture unit.
- Never use textures containing alpha values; only specify
GL_RGB (or palette-based textures that don't have alpha) for the texture's internal format.
- Never specify a value other than GL_TRUE as a parameter to glColorMask().
- Never enable the following states:
- GL_ALPHA_TEST
- GL_FOG
- GL_STENCIL_TEST
- GL_COLOR_LOGIC_OP
- Only the following blend mode is supported in hardware:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- The texture minification filter must be GL_NEAREST or GL_LINEAR.
- The same filter must be used for texture minification as for
magnification.
- The texture application mode must be either GL_REPLACE, GL_DECAL, or GL_MODULATE.
- For line and point primitives, don't enable texture mapping or shading.