overview of OpenGL
the OpenGL product
a. Depth- and stencil buffers are only allocated for image-plane visuals.
b. Double buffering is set to True (1) if the X visual supports the X double-buffering extension (DBE).
c. Alpha will only work correctly on 12- and 24-bit TrueColor and DirectColor visuals when the X server does not use
the high-order nibble/byte in the X visual. Also, note that when alpha is present, Buffer Size will be 16 for the 12-bit
visuals and 32 for the 24-bit visuals.
buffer sharing between multiple processes and threads
In the OpenGL implementation, all drawable buffers that are allocated
in virtual memory are not sharable among multiple processes. As an
example, on a HP Visualize fx-5 configuration, the accumulation buffer
for a drawable resides in virtual memory (VM) and therefore, each
OpenGL process rendering to the same drawable through a direct
rendering context, will have its own separate copy of the accumulation
buffer. For more information on hardware and software buffer
configurations for OpenGL devices, see Tables 1-1 through 1-8 in the
Supported Visuals section of this chapter.
True buffer sharing between multiple processes can be accomplished by
utilizing indirect rendering contexts. In this case, rendering on behalf of
all GLX clients is performed by the X server OpenGL daemon process,
and there is only one set of virtual memory buffers per drawable.
Within a single process, multiple threads will share virtual memory
buffers (both rendering and accumulation buffers) by default.
GLX-compliant concurrent rendering into these buffers is supported. It
is the responsibility of the application to synchronize buffer access or
partition the rendering buffer amongst individual threads, if desired.
SIGCHLD and the GRM daemon
The Graphics Resource Manager daemon (grmd) is started when the X11
server is started. In normal operation, an OpenGL application will not
start the daemon, and as a result grmd will not be affected by the
SIGCHLD manipulation that occurs as part of that start-up. However, if
grmd dies for some reason, the graphics libraries will restart grmd
whenever they need shared memory. An example of where this can occur
is during calls to glXCreateContext or glXMakeCurrent.
threads support in November, 1999 11. ACE release Starting with the
HP-UX 11.0 Additional Core Enhancements (ACE) (November, 1999)
release, HP OpenGL will support Level 1b threads. This means HP
OpenGL can be used in a threaded application, but OpenGL graphics