JAVIER CASTELLAR (javier++at++luna.madrid.sgi.com)
Thu, 25 Aug 1994 23:22:19 -0600
a) Using an OPTIONAL piece of hardware: Sirius Video.
a.1) It can give you a direct path from CIR601 sources up to texture
memory. Mainly it can update textures from video. In
order to use this feature under performer you must use a couple of GL callbacks
to use the full functionality of texdef2d (FAST_DEFINE feature), subtexload
(null input ) as well as a couple of VL (Video Library) calls to stablish the
path from the desired video source, to fix the format (4:2:2, 4:4:4, 4:4:4:4 ,
RGB, RGBA ) and the drain onto texture memory.
a.2) It can give you a direct path from CIR601 sources up to main
memory. Mainly it can update textures from memory. In order to use this
feature under performer you must use a couple of GL callbacks to use the full
functionality of texdef2d (FAST_DEFINE feature), subtexload (null input ) as
well as a couple of VL (Video Library) calls to stablish the path from the
desired video source, to fix the format (4:2:2, 4:4:4, 4:4:4:4 , RGB, RGBA,
YUV, YUVY ) and the drain onto memory using the VME bus.Then from main memory
you can use this info to define textures us fields.
a.3) Use the path from video to memory to load at the same time in hard
disk (you will need a highly stripped hard disk system, remember that our
mahines can support docens of SCSI2 F/W 20MB/s). Then from disk you can create
your own processes to reload it like another video sources.
b) Creating your own movies in memory and use it as above, but using the proper
subtexload parameters on the PreDraw Callback.
Just remember all the real time issues related with this kind of highly couple
parallel processes. You will need in some cases spawn you own processes in
another CPUs sharing data with Performer APP & ISECT processes. People use to
work in this way very well at funcionality level, i mean that it works. You
share data using the same arenas that you create in Performer. You can use
fork() and sproc() at starting stages to create your own user processes.
In order to sustain frame rate levels (25Hz or 30Hz), or even field rates
(50Hz or 60Hz), you will need to make up a good real time design (semaphores
properly allocated, proper barriers, ... proper design). You will need also to
tune some kernel parameters for take a full use of main memory (there is a
couple of variable to let a process to use all the memory), as well us
disabling interrupts on DRAW and CULL cpus, as well us your own procesess if
needed or suitable in function of the hardware used (VME devices, Sirius ...
etc), i am talking about the NOINTR: directives and so on.[Please refer to the
REACT technical reports]
Hope to help.
Javier Castellar
Systems Engineer
javier++at++madrid.sgi.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:50:31 PDT