home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / sgi / faq / performer < prev    next >
Encoding:
Internet Message Format  |  2001-07-06  |  88.4 KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!newsfeed.utk.edu!news-hog.berkeley.edu!ucberkeley!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!opentransit.net!newsfeed.mesh.ad.jp!newshub2.rdc1.sfba.home.com!news.home.com!enews.sgi.com!news.tamu.edu!sgi-faq
  2. From: sgi-faq@viz.tamu.edu (The SGI FAQ group)
  3. Newsgroups: comp.sys.sgi.misc,comp.answers,news.answers
  4. Subject: SGI performer Frequently Asked Questions (FAQ)
  5. Supersedes: <performer_993016817@viz.tamu.edu>
  6. Followup-To: comp.sys.sgi.misc
  7. Date: 6 Jul 2001 05:59:48 GMT
  8. Organization: Visualization Lab, Texas A&M University
  9. Lines: 2285
  10. Approved: news-answers-request@mit.edu
  11. Expires: 3 Aug 2001 06:00:15 GMT
  12. Message-ID: <performer_994399215@viz.tamu.edu>
  13. Reply-To: sgi-faq@viz.tamu.edu (The SGI FAQ group)
  14. NNTP-Posting-Host: viz.tamu.edu
  15. NNTP-Posting-Date: 6 Jul 2001 05:59:48 GMT
  16. Originator: sgi-faq@viz.tamu.edu
  17. Xref: senator-bedfellow.mit.edu comp.sys.sgi.misc:57367 comp.answers:46112 news.answers:210664
  18.  
  19. Archive-name: sgi/faq/performer
  20. Last-modified: Wed Oct 20  1:00:04 CDT 1999
  21. Posting-Frequency: Twice monthly
  22. URL: http://www-viz.tamu.edu/~sgi-faq/
  23.  
  24.     SGI performer Frequently Asked Questions (FAQ)
  25.  
  26. This is one of the Silicon Graphics FAQ series, which consists of:
  27.  
  28.     SGI admin FAQ - IRIX system administration
  29.     SGI apps FAQ - Applications and miscellaneous programming
  30.     SGI audio FAQ - Audio applications and programming
  31.     SGI diffs FAQ - Changes to the other FAQs since the last posting
  32.     SGI graphics FAQ - Graphics and user environment customization
  33.     SGI hardware FAQ - Hardware
  34.     SGI impressario FAQ - IRIS Impressario
  35.     SGI inventor FAQ - IRIS Inventor
  36.     SGI misc FAQ - Introduction & miscellaneous information
  37.     SGI movie FAQ - Movies
  38.     SGI performer FAQ - IRIS Performer
  39.     SGI pointer FAQ - Pointer to the other FAQs
  40.     SGI security FAQ - IRIX security
  41.  
  42. Read the misc FAQ for information about the FAQs themselves. Each FAQ is
  43. posted to comp.sys.sgi.misc and to the news.answers and comp.answers
  44. newsgroups (whose purpose is to store FAQs) twice per month. If you
  45. can't find one of the FAQs with your news program, you can get it from
  46.  
  47.     ftp://viz.tamu.edu/pub/sgi/faq/
  48.     ftp://rtfm.mit.edu/pub/usenet/news.answers/sgi/faq/
  49.  
  50. (rtfm.mit.edu is home to many other FAQs and informational documents,
  51. and is a good place to look if you can't find an answer here.) The FAQs
  52. are on the World Wide Web at
  53.  
  54.     http://www-viz.tamu.edu/~sgi-faq/
  55.  
  56. If you can't use FTP or WWW, send mail to mail-server@rtfm.mit.edu with
  57. the word 'help' on a line by itself in the text, and it will send you a
  58. document describing how to get files from rtfm.mit.edu by mail. Send the
  59. command 'send usenet/news.answers/sgi/faq/misc' to get the SGI misc FAQ,
  60. and similarly for the other FAQs. Send the command 'send
  61. usenet/news.answers/internet-services/access-via-email' to get the
  62. "Accessing the Internet by E-Mail FAQ".
  63.  
  64. You may distribute the SGI FAQs freely and we encourage you to do so.
  65. However, you must keep them intact, including headers and this notice,
  66. and you must not charge for or profit from them. Contact us for other
  67. arrangements. We can't be responsible for copies of the SGI FAQs at
  68. sites which we do not control, and copies published on paper or CD-ROM
  69. are certain to be out of date. The contents are accurate as far as we
  70. know, but the usual disclaimers apply. Send additions and changes to
  71. sgi-faq@viz.tamu.edu.
  72.  
  73. Topics covered in this FAQ:
  74. ---------------------------
  75.    -1- ================ General Topics ==================
  76.    -2- What is IRIS Performer?
  77.    -3- Where can I get more technical information about IRIS Performer?
  78.    -4- Where can I get more product information about IRIS Performer?
  79.    -5- The IRIS Performer mailing list
  80.    -6- The IRIS Performer FTP Archives
  81.    -7- The IRIS Performer WWW Pages in Silicon Surf
  82.    -8- The IRIS Performer Technical Report
  83.    -9- How does IRIS Performer relate to IRIS Inventor?
  84.   -10- What version of IRIS Performer should I use?
  85.   -11- What patches should be used with IRIS Performer?
  86.   -12- What version of IRIS Performer am I currently running?
  87.   -13- What are all of the released versions of IRIS Performer?
  88.   -14- Does IRIS Performer use IRIS GL or OpenGL?
  89.   -15- Is there a IRIS Performer file format?
  90.   -16- What database file formats can IRIS Performer read?
  91.   -17- Is there an IRIS Inventor file reader for IRIS Performer?
  92.   -18- What are the .tlf files used by the Performer Town and Village?
  93.   -19- What are the minimum requirements for using IRIS Performer?
  94.   -20- Binary Compatibility on different machines
  95.   -21- Binary Compatibility on different releases
  96.   -22- Guaranteeing Real Time performance
  97.   -23- How do I make GL calls from within a IRIS Performer program?
  98.   -24- How do I overlay graphics on top of my Performer scene?
  99.   -25- What is the difference between phases FREE, FLOAT, and LOCK?
  100.   -26- Use of PFTMPDIR to configure shared memory
  101.   -27- Which rendering primitives does IRIS Performer support?
  102.   -28- How do I do triangle meshes in Performer?
  103.   -29- ================= Known Problems =================
  104.   -30- Video Rate sometimes reported incorrectly
  105.   -31- Problems with Performer Town or Village demos
  106.   -32- Antialiasing
  107.   -33- Coplanar Polygons & pfDecal on certain platforms
  108.   -34- Networked graphics (DGL & GLX)
  109.   -35- Transparency
  110.   -36- Gangdraw and cursor loading
  111.   -37- Frame control on low- and mid-range machines
  112.   -38- Timing on pre-1992 platforms
  113.   -39- 2.0 Warnings from ld when building on IRIX 6.2
  114.   -40- 2.0 Bug OpenGL functions missing when building static executables
  115.   -41- 2.0 Bug Z buffer problems when moving windows on 5.3 EXtreme
  116.   -42- 2.0 Bug Use of more than 512 simultaneous textures
  117.   -43- 2.0 Bug IRIS GL on dual-head systems
  118.   -44- 2.0 Bug Resizing of pfPipeWindows in MP X apps
  119.   -45- 2.0 Bug Applying frustums transformed by pfOrthoXformFrust
  120.   -46- 2.0 Bug pfFlatten with pfCycleBuffer attribute arrays
  121.   -47- 2.0 Bug Sorting lights with pfChanBinSort()
  122.   -48- 2.0 Bug OpenGL disables back material modes
  123.   -49- 2.0 Bug CPU statistics in IRIX 6
  124.   -50- 2.0 Bug pfdLoadFile_flt FLT loader in IRIX 6
  125.   -51- 2.0 Bug hello sample program in IRIX 6
  126.   -52- 2.0 Bug Forked X input handing in IRIX 6.2
  127.   -53- 2.0 Bug Intersections with pfBillboard nodes
  128.   -54- 2.0 Bug Channel fade LOD attributes & mixed gfx configs
  129.   -55- 2.0 Bug libpfui C API incomplete
  130.   -56- 2.0 Bug libpfdb pfdLoadFile_dxf incomplete
  131.   -57- 2.0 Bug libpfdb pfdLoadFile_sgo incomplete
  132.   -58- 2.0 Bug IRIS GL perfly on Indy
  133.   -59- 2.0 Bug pguide/libpf/C/pipewin sample program
  134.   -60- 2.0 Bug pguide/libpf/C/lpstate sample program
  135.   -61- 2.0 Bug pfInitClock() and Video Rate on 250MHz IMPACT
  136.   -62- 1.2 Bug Billboard normals and intersections
  137.   -63- 1.2 Bug Incompatibility with IRIX 6.1 XFS
  138.   -64- 1.2 Bug Billboards with multiple pfGeoSets
  139.   -65- 1.2 Bug Flattening transformation hierarchies
  140.   -66- 1.2 libpf Bug Hang on Exit, 5.2 VGX
  141.   -67- 1.2 libpf Cull with overlapped draw latency
  142.   -68- 1.2 libpf Cull with overlapped draw hang
  143.   -69- 1.2 libpf Transparency Sorting
  144.   -70- 1.2 libpf Multiple EarthSky fog
  145.   -71- 1.2 libpf Bug Limit Phase
  146.   -72- 1.2 libpr Highlighting when using wireframe
  147.   -73- 1.2 libpf APPCULLDRAW does not honor LIMIT/FLOAT/LOCK phases
  148.   -74- 1.2 libpf Phase toggling overlapped cull and draw
  149.   -75- 1.2 libpf pfDataPool warning on exit
  150.   -76- 1.2 libpf Multi-channel stats warning messages
  151.   -77- 1.2 libpf Video warnings on Indy when multiprocessed
  152.   -78- 1.2 stats Frame statistics for lightpoints
  153.   -79- 1.2 stats Pixel fill statistics under 4.0.5 on RealityEngine
  154.   -80- 1.2 libpr Directional pfLightPoints
  155.   -81- 1.2 libpfutil pfuCollide is jerky
  156.   -82- 1.2 libpfutil pfuSaveImage broken
  157.   -83- 1.2 libpfsgi pfLoadDxf loader is incomplete
  158.   -84- 1.2 libpfsgi pfLoadIv loader is incomplete
  159.   -85- 1.2 GLX Overlay text with GLX on 4.0.5
  160.   -86- 1.2 GLX Toggling antialiasing with GLX on 4.0.5 RealityEngine
  161.   -87- 1.2 GLX Toggling antialiasing with GLX on any RealityEngine
  162.   -88- 1.2 GLX on 4.0.5 Indigo, sample programs hang on startup.
  163.   -89- 1.2 samples smallfly drive models broken
  164.   -90- 1.2 samples pickfly drops core under abuse
  165.   -91- 1.2 samples detail example broken on 4.0.5
  166.   -92- 1.2 friends Belvis makefile requires pmake
  167.   -93- 1.2 friends Toon has bad models and textures
  168.   -94- 1.2 docs pfuGetGLXWin wrong on reference page
  169.   -95- 1.2 docs pfuLockDownApp gives the incorrect location
  170.   -96- 1.1 Bug with FP underflow
  171.   -97- 1.1 Bug with Multipipe Onyx
  172.   -98- 1.1 Bug Installing on Indy or Indigo2 XL
  173.   -99- 1.1 Bug Unable to determine Indy graphics type
  174.  -100- 1.1 Bug perfly cannot find libpf.so on Indy running 5.1
  175.  -101- 1.1 Bug perfly FP error messages in 5.0.1
  176.  -102- 1.1 Bug Installation on IRIX 5.2 - missing prerequisites
  177.  -103- 1.0/1.1 Bug intersections with pfSwitch'es
  178.  -104- 1.0/1.1 Bug with pfTexture()
  179.  -105- 1.0/1.1 Bug with pfAntiAlias()
  180.  -106- 1.0/1.1 Bug with pfFlatten()
  181.  -107- 1.0/1.1 Bug with pfSequences
  182.  -108- 1.0/1.1 Bug with pfClosestPtOnPlane()
  183.  -109- 1.0/1.1 Bug on ELAN/XS with wireframe PFGS_QUADS
  184.  -110- 1.0/1.2-IRIX4 Bug Z buffer configuration on 4.0.5 RealityEngine
  185.  -111- 1.0 Bug pfInit(): mmap failed for /dev/zero
  186.  -112- 1.0 Doc Bug in pfMakePolarSeg() man page
  187.  -113- 1.0 Doc Bug in pfDispList() man page
  188.  -114- 1.0 Doc Bug in PFPG (simple.c)
  189.  -115- 1.0 Bug in pfGetTime()
  190.  -116- 1.0 Bug in pfNodeBBox()
  191.  -117- 1.0 Bug in pfInitGfx() with Z-buffer on RealityEngine
  192.  -118- 1.0 Bug in libpfflt combineLODs()
  193.  -119- 1.0 Bug with two-sided material and pfMtlColorMode()
  194.  -120- 1.0 Bug in pfFilePath()
  195.  -121- 1.0 Bug in pfGetCurGState()
  196.  -122- 1.0 Bug in pfGetCurState()
  197.  -123- 1.0 Bug with cloned scenes
  198.  -124- 1.0 Bug intersections in collide.c
  199.  -125- 1.0 Bug with flattened pfLightPoints
  200.  -126- 1.0 Bug intersections with pfSequences
  201.  -127- 1.0 Bug intersections with non-indexed quads
  202.  
  203. ----------------------------------------------------------------------
  204.  
  205. Subject:    -1- ================ General Topics ==================
  206. Date: 12 Dec 95 00:00:01 EST
  207.  
  208. ------------------------------
  209.  
  210. Subject:    -2- What is IRIS Performer?
  211. Date: 12 Dec 95 00:00:01 EST
  212.  
  213.   IRIS Performer provides a powerful and extensible programming
  214.   interface (with ANSI C and C++ bindings) for creating real-time
  215.   visual simulation and other interactive graphics applications.
  216.   IRIS Performer 2.0 supports both the IRIS Graphics Library (IRIS
  217.   GL) and the industry standard OpenGL graphics library; these
  218.   libraries combine with the IRIX operating system and REACT
  219.   extensions to form the foundation of a powerful suite of tools and
  220.   features for creating real-time visual simulation applications on
  221.   Silicon Graphics systems.
  222.  
  223.   IRIS Performer is an integral part of the Onyx/Onyx2 RealityEngine
  224.   & InfiniteReality and Indigo2/Octane Impact graphics systems and
  225.   provides interfaces to advanced features of RealityEngine-class
  226.   graphics.  IRIS Performer is compatible with uniprocessor and
  227.   multiprocessor SGI graphics platforms and attains maximum
  228.   performance on all.  IRIS Performer provides an extensible basis
  229.   for creating real-time 3D graphics applications in the fields of
  230.   visual simulation, entertainment, virtual reality, broadcast video,
  231.   and computer aided design.  IRIS Performer is the flexible,
  232.   intuitive, toolkit-based solution for developers who want to
  233.   optimize performance on Silicon Graphics systems.
  234.  
  235.   IRIS Performer consists of two main libraries, libpf and libpr, and
  236.   four associated libraries, libpfdu, libpfdb, libpfui, and
  237.   libpfutil.
  238.  
  239.   The basis of IRIS Performer is the performance rendering library
  240.   libpr, a low level library providing high speed rendering functions
  241.   based on pfGeoSets, efficient graphics state control using
  242.   pfGeoStates, and other application- neutral functions.
  243.  
  244.   Layered above libpr is libpf, a real-time visual simulation
  245.   environment providing a high-performance multi-processing database
  246.   rendering system that takes best advantage of IRIS symmetric
  247.   multiprocessing CPU hardware.
  248.  
  249.   The database utility library libpfdu provides powerful functions
  250.   for defining both geometric and appearance attributes of three
  251.   dimensional objects, encourages sharing of state and materials and
  252.   generates efficient triangle strips from independent polygonal
  253.   input.
  254.  
  255.   The database library libpfdb uses the facilities of libpfdu, libpf,
  256.   and libpr to import database files in many popular industry
  257.   standard database formats.  These loaders also serve as a guide to
  258.   developers creating new database importers.
  259.  
  260.   libpfui contains user interface building blocks for creating
  261.   manipulators common to many interactive applications. This library
  262.   has both a C and C++ API and is GL independent.
  263.  
  264.   Completing the suite of libraries is libpfutil, the IRIS Performer
  265.   utility library. It provides a collection of important convenience
  266.   routines implementing such diverse tasks as smoke effects,
  267.   MultiChannel Option support, graphical user interface tools, X and
  268.   IRIS GL event collection and management, and traversal functions.
  269.  
  270.   For aid in application development, IRIS Performer includes sample
  271.   application source code ranging from simple programs to illustrate
  272.   particular features to the comprehensive, GUI-driven file viewer
  273.   perfly.
  274.  
  275.   In addition to these SGI-developed tools, IRIS Performer also
  276.   includes a very large repository of sample code, databases, games,
  277.   and movies contributed by the Friends of Performer: companies and
  278.   individuals with services of general interest to the IRIS Performer
  279.   community.  We encourage you to sample their wares.
  280.  
  281. ------------------------------
  282.  
  283. Subject:    -3- Where can I get more technical information about IRIS
  284.                 Performer?
  285. Date: 12 Dec 95 00:00:01 EST
  286.  
  287.   The three best resources for additional information are:
  288.   
  289.     - The IRIS Performer mailing list
  290.     - The IRIS Performer FTP Archives
  291.     - The Performer WWW pages in Silicon Surf
  292.     - The IRIS Performer Technical Report
  293.  
  294.   See below for further information.
  295.  
  296. ------------------------------
  297.  
  298. Subject:    -4- Where can I get more product information about IRIS
  299.                 Performer?
  300. Date: 12 Dec 95 00:00:01 EST
  301.  
  302.   For product information about IRIS Performer or SGI Visual
  303.   Simulation issues contact Ralph Humphries (ralphh@asd.sgi.com).  To
  304.   learn about SGI Virtual Reality solutions contact Joshua Mogal
  305.   (mogal@asd.sgi.com).  To just give in and buy a copy call SGI
  306.   Direct at 1-800-800-7441 (product SC4-PERF-2.0), or to have both a
  307.   demonstration and a presentation call your local SGI sales office.
  308.  
  309.   Brochure-style information about IRIS Performer is also available
  310.   from the Performer WWW pages in Silicon Surf (see below)
  311.  
  312. ------------------------------
  313.  
  314. Subject:    -5- The IRIS Performer mailing list
  315. Date: 12 Dec 95 00:00:01 EST
  316.  
  317.   The IRIS Performer mailing list is a resource for developers who
  318.   are using IRIS Performer to maximize the performance of their
  319.   graphics applications on Silicon Graphics hardware.  The list is an
  320.   unmoderated, free-form discussion of IRIS Performer with issues
  321.   both technical and non-technical; and provides feedback to Silicon
  322.   Graphics about the product.  Much like the comp.sys.sgi.*
  323.   newsgroups, it is not an official support channel but is monitored
  324.   by the IRIS Performer development team, so it's an excellent source
  325.   of early information about upcoming events and product features, as
  326.   well as a venue for asking questions and having them answered.
  327.  
  328.   To become a subscriber to the IRIS Performer mailing list you must
  329.   send email to:
  330.  
  331.     info-performer-request@sgi.com
  332.  
  333.   New subscribers are added "by hand".  Once your request is processed 
  334.   you will recieve submission/posting instructions, some guidelines, 
  335.   and a current copy of the Performer Frequently-Asked-Questions (FAQ) 
  336.   list.
  337.  
  338.   The mailing list has become rather large and carries several
  339.   hundred messages per month.  A performer newsgroup with a gateway
  340.   to the mailing list may be created if there is enough interest.
  341.  
  342.   Mailing list archives are available in the Performer FTP area (see
  343.   below) in ftp://sgigate.sgi.com/pub/Performer/monthly-archives/
  344.  
  345. ------------------------------
  346.  
  347. Subject:    -6- The IRIS Performer FTP Archives
  348. Date: 12 Dec 95 00:00:01 EST
  349.  
  350.   An archive of Performer-related material is available via anonymous
  351.   FTP:  ftp://sgigate.sgi.com/pub/Performer
  352.  
  353.   Current Contents:
  354.  
  355.   README               - Overview file
  356.   FAQ                  - The Performer FAQ
  357.   INFO-PERFORMER       - information about the Performer mailing list
  358.   src/                 - Sample source code & misc patches
  359.   docs/                - IRIS Performer docs including SIGGRAPH '94 paper
  360.   selected-topics/     - directory of info, Q&A, etc from mailing list
  361.   monthly-archives/    - raw archives (monthly) of the mailing list
  362.   CortaillodCentre/    - goodies from SGI's Cortaillod Office
  363.   RealityCentre/       - goodies from SGI's RealityCentre in the UK
  364.   
  365. ------------------------------
  366.  
  367. Subject:    -7- The IRIS Performer WWW Pages in Silicon Surf
  368. Date: 12 Dec 95 00:00:01 EST
  369.  
  370.   Silicon Surf (http://www.sgi.com/) contains an archive of
  371.   Performer-related technical and promotional material in the
  372.   _Extreme Tech_ section.
  373.  
  374.   http://www.sgi.com/Technology/Performer contains links
  375.   to further information regarding:
  376.  
  377.   - What is IRIS Performer ? 
  378.   - IRIS Performer 2.0 Technical Information 
  379.   - IRIS Performer 2.0 Product Information 
  380.   - IRIS Performer Friends, Goodies, & Free Stuff! 
  381.   - The IRIS Performer Mailing List 
  382.   - The IRIS Performer Anonymous FTP Archives  
  383.   - The IRIS Performer Frequently Asked Questions (FAQ). 
  384.  
  385. ------------------------------
  386.  
  387. Subject:    -8- The IRIS Performer Technical Report
  388. Date: 12 Dec 95 00:00:01 EST
  389.  
  390.   The IRIS Performer 2.0 Technical Report (IRIS-PERF-TR-10/95) is
  391.   available in hardcopy from your local Silicon Graphics sales
  392.   office.  An electronic copy (Postscript format) is also available
  393.   via FTP from:
  394.  
  395.   ftp://sgigate.sgi.com/pub/Performer/docs/pf2.0techreport/
  396.  
  397. ------------------------------
  398.  
  399. Subject:    -9- How does IRIS Performer relate to IRIS Inventor?
  400. Date: 26 Jun 93 00:00:01 EST
  401.  
  402.   The short answer is, Performer was designed for vis-sim, while
  403.   Inventor was designed to be more general purpose.  
  404.  
  405.   IRIS Performer is for developers who need to extract maximum
  406.   performance from SGI machines for visual simulation, virtual
  407.   reality, game development, and high-end CAD systems.  Often these
  408.   applications need multi-processor Onyx systems with multiple
  409.   RealityEngine pipelines with a high degree of parallelism and
  410.   running at fixed frame rates.
  411.  
  412.   Inventor is designed for maximum programmer productivity when
  413.   writing other kinds of 3D applications, like modelling, animation,
  414.   visualization, etc.
  415.  
  416.   Both toolkits are general purpose enough that they could be extended
  417.   into the domain of the other, but the question you should consider is
  418.   "what is the *fundamental* goal of my graphics development?" If it's
  419.   portability to non-SGI systems, easy X-window system integration, or
  420.   handy graphic widgets, IRIS Inventor is for you.  If it's brochure-
  421.   level performance in advanced graphic applications for the specific
  422.   domains listed above, then IRIS Performer would be the likely tool.
  423.  
  424. ------------------------------
  425.  
  426. Subject:   -10- What version of IRIS Performer should I use?
  427. Date: 16 Oct 97 00:00:01 EST
  428.  
  429.   The short answer is that IRIS Performer 2.0 is the latest
  430.   all-platform release and 2.1 is the InfiniteReality (all flavors -
  431.   Onyx, Onyx2, iR Reality) release.  If you are doing development for
  432.   an application targeted primarily at an InfiniteReality graphics
  433.   platform using InfiniteReality features, you should buy 2.1.  You
  434.   can run 2.1 on any platform running IRIX 6.2 or later, but its only
  435.   benefit over 2.0 was features for the InfiniteReality graphics
  436.   platform.
  437.  
  438.   IRIS Performer also creates and ships binary compatible bug-fix
  439.   upgrades for the execution environment of the main releases.  These
  440.   maintenance releases have a third field in their number string and
  441.   are binary compatible with the base release.  These upgraded
  442.   execution environments include the optimized DSOs and demo
  443.   executables and are shipped with IRIX releases and made available
  444.   for older IRIX releases through patches.  The following table lists
  445.   the latest versions of our releases and the version of IRIX that
  446.   they shipped with and the corresponding patch number.
  447.  
  448.   Performer Maintenance Releases:
  449.   
  450.     performer_eoe   shipped in IRIX  available in Patch  for IRIX Releases
  451.     -----------------------------------------------------------------------
  452. *** 2.0.4/2.1.2(*)    6.4        1696         6.2 and later
  453.     2.0.3/2.1.1(*)    6.3    
  454.     2.0.2                1347         6.2 and later
  455.     2.0.1        6.2
  456.  
  457.   
  458.   (*) The 2.1.X upgrades are included as 2.1 compatibility subsystems 
  459.     inside the corresponding 2.0.X version.  This is done to allow upgrades
  460.     for both releases to ship inside IRIX.
  461.   (***) this is the latest maintenance version check it out!
  462.  
  463.   All InfiniteReality systems (Onyx, Onyx2, ir Reality) running IRIX
  464.   6.2 or later should use IRIS Performer 2.1 (eoe and dev).  Note
  465.   that Performer 2.1 was originally only officially supported on Onyx
  466.   InfiniteReality systems and is only of benefit on those system or
  467.   for doing development for those systems.  Other systems and
  468.   projects not targeted at InfiniteReality should use 2.0 eoe and 2.0
  469.   dev,  plus the latest eoe upgrade or patch as indicated above.
  470.  
  471.   Patches available for IRIS Performer development subsystems: (also
  472.   see later section on patches)
  473.  
  474.   There have are 2 patches available for the Performer 2.0
  475.   development subsystems (sample source code, header files, debug and
  476.   static libraries) that correspond to the 2.0.2 eoe maintenance
  477.   release:
  478.  
  479.   patch 1392 IRIX 6.2 and later
  480.   patch 1414 for IRIX 5.3 (contains dev and eoe)
  481.  
  482.   These patches are for the 2.0 development subsystems _only_.  Do
  483.   not attempt to install them if running any other base release for
  484.   development.
  485.  
  486. ------------------------------
  487.  
  488. Subject:   -11- What patches should be used with IRIS Performer?
  489. Date: Wed Sep 22 16:26:21 CDT 1999
  490.  
  491.   performer_eoe:
  492.  
  493.   6.4:      No patches required for performer_eoe 2.0.4/2.1.2
  494.   6.3:      Patch 1696 - updates Performer 2.0, 2.0.1, 2.0.3/2.1.1 
  495.         to the 2.0.4/2.1.2 EOE shipped in IRIX 6.4
  496.   6.2:      Patch 1696 - updates Performer 2.0 and 2.0.1,
  497.         to the 2.0.4/2.1.2 EOE shipped in IRIX 6.4
  498.   5.3:      Patch 1414 - updates Performer 2.0 eoe & dev -> 2.0.2.
  499.   
  500.   All versions of performer_eoe for 2.0[.X] are binary compatible.
  501.   All versions of performer_eoe for 2.1[.X] are binary compatible.
  502.   Patch 1696 updates all performer_eoe 2.0.x to 2.0.4 and all 2.1 to 2.1.2
  503.   Patch 1696 replaces patch 1347.
  504.  
  505.   performer_dev:
  506.  
  507.   All performer_dev 2.0 should be upgraded to at least performer_dev 2.0.2
  508.   for IRIX 6.2 and later IRIX releases.
  509.  
  510.   6.4:      Patch 1392 - updates Performer 2.0 DEV   -> 2.0.2 DEV
  511.   6.3:      Patch 1392 - updates Performer 2.0 DEV   -> 2.0.2 DEV
  512.   6.2:      Patch 1392 - updates Performer 2.0 DEV   -> 2.0.2 DEV
  513.   5.3:      Patch 1414 - updates Performer 2.0 eoe & dev -> 2.0.2.
  514.       
  515.   Patch 1392 IS for the 2.0 development subsystems _only_.
  516.   Do not attempt to install it if running any other base release
  517.   for development.
  518.  
  519.   performer_eoe 2.0.2 and 2.0.4 are both binary compatible with
  520.   performer_dev 2.0[.X]
  521.  
  522.   All of the patches require a base subsystem from the IRIS Performer CD or
  523.   from IRIX to be loaded first.
  524.   Customers with SupportFolio online access can download patches from:
  525.  
  526.     http://www.sgi.com/support/patch_intro.html
  527.  
  528. ------------------------------
  529.  
  530. Subject:   -12- What version of IRIS Performer am I currently running?
  531. Date: 16 Oct 1997 00:00:01 EST
  532.  
  533.   To find out what release of IRIS Performer is currently installed
  534.   on the system do:
  535.  
  536.   % versions | grep performer
  537.  
  538.   and you will see a list of all IRIS Performer subsystems that are
  539.   currently installed.  Note that you might see execution
  540.   environments and compatibility DSOs for older releases of IRIS
  541.   Performer -- this is what allows you to run any IRIS Performer
  542.   executable, regardless of the development release you are currently
  543.   using.
  544.  
  545.   To find out which version a given IRIS Performer DSO library is do:
  546.  
  547.   % elfdump -L lib.so | fgrep IVERSION
  548.  
  549.   and you will see the DSO version number of the library.  Note: DSO
  550.   version numbers are NOT the same as IRIS Performer product release
  551.   numbers.  DSO numbers are X.Y.Z where the X must change with each
  552.   change in binary compatibility, where the Y changes to signify a
  553.   binary compatible version, and the .Z is an additional tag.  The
  554.   mapping of IRIS Performer releases to DSO numbers is:
  555.  
  556.   IRIS Performer release      DSO lib version
  557.   -------------------------------------------
  558.         1.0                     sgi1.0 
  559.         2.0                     sgi2.0 
  560.         2.0.1                   sgi2.1
  561.         2.0.2                   sgi2.2 
  562.         2.0.3                   sgi2.3 
  563.         2.0.4                   sgi2.4
  564.         2.1                     sgi3.0 
  565.         2.1.1                   sgi3.1 
  566.         2.1.2                   sgi3.2
  567.  
  568.   Each release of IRIS Performer includes the versioned DSO libraries
  569.   from previous releases for each binary compatible group.  Upon
  570.   program startup, rld will find the proper version of the IRIS
  571.   Performer library for the current executable.  These DSOs are
  572.   installed under /usr/lib/ and /usr/lib/Performer.
  573.  
  574.   ex:
  575.       /usr/lib/libpf_ogl.so.2 
  576.       /usr/lib/libpf_ogl.so.3
  577.       /usr/lib/libpf_ogl.so.4
  578.  
  579.       % elfdump -L /usr/lib/libpf_ogl.so.2 | fgrep IVERSION
  580.           [34]    IVERSION sgi2.4
  581.  
  582.   To find out which version a dynamically linked IRIS Performer
  583.   executable was made with do:
  584.  
  585.   % elfdump -L progname
  586.  
  587.   and you will see a list of the DSOs required by the program and
  588.   their DSO version number.
  589.  
  590. ------------------------------
  591.  
  592. Subject:   -13- What are all of the released versions of IRIS Performer?
  593. Date: 16 Oct 1997 00:00:01 EST
  594.  
  595.   Performer 2.0.4:  performer_eoe 2.0 bug fix upgrade, shipped with IRIX 6.4
  596.                     [equivalent updates in patch 1696 for 6.2 and later]
  597.  
  598.   Performer 2.1.2:  performer_eoe 2.1 bug fix upgrade, shipped as 
  599.                     compatibility libs in 2.0.4 in IRIX 6.4 and patch 1696
  600.             
  601.   Performer 2.0.3:  performer_eoe  2.0 bug fix upgrade, shipped with IRIX 6.3
  602.  
  603.   Performer 2.1.1:  performer_eoe 2.1 bug fix upgrade, shipped as 
  604.                     compatibility libs in 2.0.3 in IRIX 6.3
  605.              
  606.   Performer 2.1:    InfiniteReality release, for all InfiniteReality systems 
  607.                     running IRIX 6.2 or later, (eoe and dev)
  608.  
  609.   Performer 2.0.2:  bug fix upgrade for Performer 2.0.1/2.0 eoe and dev,
  610.                     shipped in patches 1347(eoe)+1392(dev) (for IRIX 6.x) or
  611.                     patch 1414 (for IRIX 5.x) 
  612.  
  613.   Performer 2.0.1:  bug fix upgrade for 2.0 EOE update only, shipped in 
  614.                     IRIX 6.2
  615.   
  616.   Performer 2.0:    All-platform release for IRIX 5.3 and later releases
  617.  
  618.   IRIS Performer 1.2/IRIX5:  (obsolete) For IRIX 5.2, 5.3, 6.0.1, 6.1
  619.   IRIS Performer 1.2/IRIX4:  (obsolete) For IRIX 4.0.5(A-J) only
  620.   IRIS Performer 1.1:        (obsolete) For IRIX 5.x only
  621.   IRIS Performer 1.0:        (obsolete) For IRIX 4.x only
  622.  
  623.   Patch 1696:  performer_eoe updates Performer on IRIX 6.2 and 6.3 to
  624.            the 2.0.4/2.1.2 shipped in IRIX 6.4.  
  625.                It updates 2.0.1, 2.0.2, 2.0.3 eoe to revs equiv to 2.0.4.
  626.            It updates 2.1, 2.1.1 eoe to revs equiv to 2.1.2.
  627.                Replaces 1347.
  628.   Patch 1414:  performer 2.0 eoe & dev patch for IRIX 5.3 only
  629.   Patch 1392:  performer_dev 2.0 patch for IRIX 6.2, 6.3, 6.4.
  630.   Patch 1347:  performer_eoe 2.0.1 patch for IRIX 6.2 only
  631.  
  632.   Historical/Background information:
  633.  
  634.   Note that the above list is included only for completeness' sake.
  635.   Also note that you might not want "highest numbered" version of
  636.   Performer, you want the the highest maintenance rev of your main
  637.   release (2.1.X for InfiniteReality and 2.0 otherwise). Note that
  638.   maintenance releases have been done for both 2.0 and 2.1
  639.   simultaneously.
  640.  
  641.   Systems running IRIX 6.2 or later should load the performer_eoe
  642.   IRIX cd, and performer_dev from the Performer 2.0 CD.  Then load
  643.   the relevant patches as described below.
  644.  
  645.   The N32 and N64 libraries in Performer 2.0 are not intended for
  646.   systems running IRIX 6.1.  If you require N32 or N64 functionality,
  647.   you need to upgrade to 6.2 (or above) and use 2.0.1 (or above).
  648.  
  649.   No further releases of Performer are planned for IRIX 4.x or 5.x.
  650.  
  651.   Performer 1.2 was shipped for both 4.0.5 and 5.2 systems.  If you
  652.   are using IRIS Performer 1.2, only install that version that is
  653.   appropriate for your machine.  The IRIS Performer version is
  654.   indicated by the "IRIX4" or "IRIX5" string in each product name.
  655.   IRIX4 products should only be installed on 4.0.5 systems.   IRIX5
  656.   products can be installed on 5.2, 5.3, 6.0.1, and 6.1 systems.
  657.  
  658.   When a choice is possible between using Performer 1.2 with IRIX 5.x
  659.   or IRIX 4.0.5, IRIX 5.x is highly preferable.  IRIX 5.3 is the
  660.   current operating system release and contains many bug fixes and
  661.   enhancements utilized by IRIS Performer.   IRIS Performer 1.2/IRIX4
  662.   was intended only for users who are unable to upgrade to IRIX 5.x.
  663.  
  664. ------------------------------
  665.  
  666. Subject:   -14- Does IRIS Performer use IRIS GL or OpenGL?
  667. Date: 12 Dec 95 00:00:01 EST
  668.  
  669.   Performer 2.1 is OpenGL only, having bindings for O32 (32-bit)
  670.   OpenGL, N32 (32-bit) OpenGL, and N64 (64-bit) OpenGL.
  671.  
  672.   IRIS Performer 2.0, 2.0.1, "2.0.2", 2.0.3, and 2.0.4 contain
  673.   bindings for O32 IRIS GL, O32 OpenGL, N32 OpenGL, and N64 OpenGL.
  674.  
  675.   IRIS Performer 1.0, 1.1, and 1.2 use IRIS GL (32-bit).
  676.  
  677. ------------------------------
  678.  
  679. Subject:   -15- Is there a IRIS Performer file format?
  680. Date: 26 Oct 93 00:00:01 EST
  681.  
  682.   Yes.  Performer "2.0.2", 2.0.3, 2.0.4, and 2.1 now include pfb (a
  683.   fast-loading binary database format) support in libpfpfb.  It also
  684.   adds support of "pfa" format, a slow-loading ascii version of pfb.
  685.  
  686.   The 'pfconv' program can be used to convert other file formats to
  687.   pfb.  
  688.  
  689.   Prior releases do not have a Performer-specific file format.
  690.  
  691. ------------------------------
  692.  
  693. Subject:   -16- What database file formats can IRIS Performer read?
  694. Date: Thu Sep 30 16:55:07 CDT 1999
  695.  
  696.   Performer "2.0.2", 2.0.3, 2.0.4, and 2.1 add support of the
  697.   following two formats, in addition to those available in Performer
  698.   2.0:
  699.  
  700.      pfa:    IRIS Performer ASCII format developed by Rob Mace
  701.      pfb:    IRIS Performer BINARY format (very fast) developed by Rob Mace
  702.  
  703.   IRIS Performer 2.0 and 2.0.1 contain direct import capabilities for:
  704.  
  705.      3ds:    AutoDesk 3DStudio binary data 
  706.      bin:    Minor SGI format used by powerflip 
  707.      bpoly:  Side Effects Software PRISMS binary 
  708.      byu:    Brigham Young University CAD/FEA data 
  709.      dwb:    Coryphaeus Software Designer's Workbench 
  710.      dxf:    AutoDesk AutoCAD ASCII format 
  711.      flt11:  MultiGen public domain Flight v11 format 
  712.      flt14:  MultiGen OpenFlight v14 format 
  713.      gds:    McDonnell-Douglas GDS things data 
  714.      gfo:    Minor SGI format (radiosity output) 
  715.      im:     Minor SGI format (IRIS Performer example) 
  716.      irtp:   AAI/Graphicon Interactive Real-Time PHIGS 
  717.      iv:     SGI OpenInventor / VRML 1.0 
  718.      lsa:    Lightscape radiosity solutions (ASCII) 
  719.      lsb:    Lightscape radiosity solutions (binary) 
  720.      m:      University of Washington mesh data 
  721.      medit:  Medit Productions medit modeling tool 
  722.      nff:    Eric Haines' ray tracing test data format 
  723.      obj:    Wavefront Technologies data format 
  724.      post:   Minor SGI format (example gridded terrain loader) 
  725.      phd:    Minor SGI format (polyhedra) 
  726.      poly:   Side Effects Software PRISMS ASCII data 
  727.      pts:    University of Washington point data 
  728.      ptu:    Minor SGI format (IRIS Performer example) 
  729.      s1k:    US ARMY SIMNET databases (Texas Instruments) 
  730.      sgf:    US NAVY standard graphics format 
  731.      sgo:    Minor SGI format 
  732.      spf:    US NAVY simple polygon format 
  733.      sponge: Sierpinski sponge 3D fractal generator 
  734.      star:   Yale University compact star chart data 
  735.      stla:   3D Structures Stereolithography (ASCII) 
  736.      stlb:   3D Structures Stereolithography (binary) 
  737.      sv:     Format of John Kichury's i3dm modeler 
  738.      tri:    University of Minnesota Geometry Center data 
  739.      unc:    University of North Carolina data 
  740.  
  741.   Several other file formats will be available via translators:
  742.  
  743.   via Acuris Corporation translators (to OpenInventor):
  744.     iges        Old standard computer aided design interchange format
  745.     alias       Alias Research animation system data
  746.     3ds         AutoDesk 3DStudio
  747.     obj         Wavefront Technologies OBJ format
  748.     dxf         AutoDesk AutoCAD format
  749.     softimage   Microsoft/Softimage animation system data
  750.  
  751.   via Clarus AB translators:
  752.     step        New standard computer aided design interchange format
  753.     vertigo     Vertigo animation system data
  754.  
  755.   via ViewPoint, http://www.viewpoint.com/, translators (to OpenInventor):
  756.     3D Studio, BRender, Alias polyset, CAD-3D, CADL, DXF, Imagine,
  757.     Inventor, LightWave objects and scenes, MovieBYU, Haines NFF,
  758.     Sense8 NFF, POV-Ray, Pro/ENGINEER, Prisms, RAW, RenderWare,
  759.     Sculpt, SGI spin, Soft F/X, stereolithography, StyleGuide,
  760.     Swivel, GDS "things", trueSpace, Vertigo, Vista DEM, VideoScape
  761.     and Wavefront formats.
  762.  
  763.   IRIS Performer 1.2 includes loading utilities and file loaders for:
  764.  
  765.       - The SGI .bin, .sgo, .gfo, .poly, and .ptu formats
  766.       - IRIS Inventor's .iv format.
  767.       - Coryphaeus' Software .dwb format.
  768.       - Software Systems (MultiGen Inc) Version 11, 13, and 14 .flt
  769.       - The SuperViewer .sv format used in I3DM
  770.       - Lightscape Graphics Software's .lsa and .lsb formats
  771.       - Autodesk's AutoCAD .dxf format
  772.       - Miscellaneous formats (.gfo, .irtp, .stla, .stlb).
  773.  
  774.   For source code to loaders for MultiGen .flt versions greater than
  775.   11, contact MultiGen, Inc at (408) 556-2600.
  776.  
  777.   IRIS Performer 1.0 and 1.1 include database loaders for MultiGen v11
  778.   "flt", SGI "bin", and SGI "obj" formats.
  779.  
  780. ------------------------------
  781.  
  782. Subject:   -17- Is there an IRIS Inventor file reader for IRIS
  783.                 Performer?
  784. Date: 12 Dec 95 00:00:01 EST
  785.  
  786.   Yes.  IRIS Performer 2.x ships with a fully-functional Open
  787.   Inventor 2.0 file loader.
  788.  
  789.   IRIS Performer 1.2 ships with a minimal .iv reader that will read a
  790.   subset of the IRIS Inventor 1.0 format.
  791.  
  792.   A port of the more robust 2.x reader for Open Inventor files is
  793.   also available for Performer 1.2, in the Performer FTP Archives:
  794.  
  795.     ftp://sgigate.sgi.com/pub/Performer/src/pfiv1.6.tar.Z
  796.  
  797.   No Inventor file reader exists for Performer 1.0 or 1.1.
  798.  
  799. ------------------------------
  800.  
  801. Subject:   -18- What are the .tlf files used by the Performer Town and
  802.                 Village?
  803. Date: 8 Apr 94 00:00:01 EST
  804.  
  805.   They are encrypted .flt files of the Town and Village database.
  806.   Only the "demo" version of perfly shipped with RealityEngine
  807.   systems in demos.sw.visualization can read these files.
  808.  
  809.   Unencrypted versions of the Town and Village databases are included
  810.   in the performer_friends.sw.town subsystem of Performer 1.2 and 2.0.
  811.  
  812. ------------------------------
  813.  
  814. Subject:   -19- What are the minimum requirements for using IRIS
  815.                 Performer?
  816. Date: 12 Dec 95 00:00:01 EST
  817.  
  818.   IRIS Performer 2.0 is the all platform release and requires IRIX 5.3 
  819.     or later IRIX releases.
  820.     Binary compatible upgrade patches are available and recommended.
  821.  
  822.   IRIS Performer 2.1 requires IRIX 6.2 or a later IRIX release.
  823.     IRIS Performer 2.1 is intended for running on or developing for the 
  824.     InfiniteReality graphics platform.
  825.   
  826.   IRIS Performer 2.0.4 (eoe) requires IRIX 6.2 or a later IRIX release
  827.     and shipped in IRIX 6.4 and IRIS Performer patch 1696
  828.   IRIS Performer 2.0.3 (eoe) requires IRIX 6.2 or a later IRIX release
  829.     and is shipped in IRIX 6.3.
  830.   IRIS Performer 2.0.2 (eoe) requires IRIX 6.2 and later and is
  831.     shipped in IRIX 6.2 and was shipped in IRIS Performer patch
  832.     1392 and has now been obsoleted by IRIS Performer 2.0.4 in patch 1696.
  833.   IRIS Performer 2.0.1 (eoe) requires IRIX 6.2 or a later IRIX release
  834.     was shipped in IRIX 6.2.
  835.   
  836.  
  837.   Patch 1347 (eoe 2.0.2) requires IRIX 6.2 or later IRIX releases
  838.     and is obsoleted by patch 1396.
  839.   Patch 1396 (eoe pf2.0.4) requires IRIX 6.2 or later IRIX releases
  840.   Patch 1392 (dev pf2.0.2) requires IRIX 6.2 or later IRIX releases
  841.   Patch 1414 (eoe+dev pf2.0.2 for IRIX 5.3) is only for IRIX 5.3.
  842.   
  843.   IRIS Performer 1.2/IRIX5 requires IRIX 5.2 or later IRIX release.
  844.   IRIS Performer 1.2/IRIX4 requires IRIX 4.0.5.  Because IRIX 4.0.5F
  845.       added several new Graphics Library (GL) calls to support
  846.       RealityEngine features, any application that uses GL routines or
  847.       tokens found only in 4.0.5F and later, will not run properly under
  848.       4.0.5C and earlier releases.
  849.  
  850. ------------------------------
  851.  
  852. Subject:   -20- Binary Compatibility on different machines
  853. Date: 12 Dec 95 00:00:01 EST
  854.  
  855.   Applications compiled with IRIS Performer 2.0 using IRIX 5.3 will
  856.   run unmodified across all SGI platforms.  For best performance, use
  857.   IRIS GL with RealityEngine and other pre-Impact systems and use
  858.   OpenGL for Impact and post-Impact graphics hardware.
  859.   OpenGL-oriented systems provide the IGLOO (Iris GL on OpenGL)
  860.   portability layer to execute IRIS GL applications, but it is not
  861.   the maximum performance route.  Performance oriented developers are
  862.   advised to generate both IRIS GL and OpenGL executables, by linking
  863.   with the API-compatible IRIS Performer 2.0 IRIS GL and OpenGL
  864.   libraries.  In this way, you can assure optimum performance across
  865.   present and future graphics systems. For OpenGL development on
  866.   RealityEngine with IRIX 5.3, patch 154 (or a superseding patch) is
  867.   recommended for performance and features.
  868.  
  869.   IRIS Performer 1.2/IRIX5 contains a single version of libpr for all
  870.   machines.  Applications built with Performer 1.2 for Irix 5.2 are
  871.   fully compatible across machines and can run on any graphics type
  872.   without relinking.
  873.  
  874.   In IRIS Performer 1.0, 1.1, and 1.2/IRIX4, libpr is platform-
  875.   specific with one of two versions installed depending on whether
  876.   the machines is a RealityEngine or not.  Binaries linked on
  877.   non-RealityEngine machines will run on a RealityEngine, but not all
  878.   features will be available.
  879.  
  880. ------------------------------
  881.  
  882. Subject:   -21- Binary Compatibility on different releases
  883. Date: 17 Oct 97 00:00:01 EST
  884.  
  885.   o Compatibility issues with previous Performer releases:
  886.  
  887.   IRIS Performer release have a number of 3 fields: Major.Minor.Maint
  888.   Maintenance releases are binary compatible with all versions of
  889.   the same Major.Minor base release.  For example, 2.0.1, 2.0.2, 2.0.3
  890.   and 2.0.4 are all binary compatible with each other and are
  891.   all binarcy compatible with their base release, 2.0.  Maintenance
  892.   releases contain bug fixes and the highest maintenance number will
  893.   be the most recent release.  Different Major.Minor releases are not
  894.   binary compatible; ie: IRIS Performer 2.0 is not binary compatible
  895.   with IRIS Performer 2.1.  For this reason, IRIS Performer releases
  896.   include compatibility libraries from previous releases (properly
  897.   versioned and suffixed for the IRIX environment) so that old
  898.   IRIS Performer applications will continue to run without re-linking.
  899.   
  900.   Performer compatibility issues with IRIX 5.3:
  901.  
  902.   Applications created with IRIS Performer 2.0 using IRIX 5.3 also
  903.   run under IRIX 6.1 and later IRIX releases in 32-bit mode.  The
  904.   32-bit applications created using IRIX 5.3 will not make use of
  905.   64-bit address space and other MIPS III/IV features provided by the
  906.   IRIS Performer N32 and N64 development environment under IRIX 6.2
  907.   and later operating system releases.
  908.  
  909.   Note that applications built on an IRIX 6.1 or 6.2 systems are not
  910.   guaranteed to run properly on 5.3 systems, due to changes in
  911.   structures used by system libraries. (This is true even for
  912.   applications that do not use IRIS Performer-- applications built on
  913.   later versions of IRIX may not run on earlier ones).  Therefore to
  914.   produce an O32 executable that will run on all SGI systems 5.3 and
  915.   later, the compiling must be done on an IRIX 5.3 system.
  916.  
  917.   Performer compatibility issues with IRIX 6.1:
  918.  
  919.   Applications created with IRIS Performer 2.0 under IRIX 6.1 can be
  920.   compiled and linked for 32-bit IRIX 5.3-style execution (known as
  921.   Old 32-bit mode, or O32) only.  IRIS Performer programs built for
  922.   the two new executable types (N32 and N64) are not operable on
  923.   pre-6.2 systems -- specifically, they will not run on IRIX 5.3 or
  924.   6.1 systems.
  925.  
  926.   O32 IRIS Performer programs will run on IRIX 6.1. However, the
  927.   OpenGL development environment of IRIX 6.1 is not as full featured
  928.   as the 32-bit OpenGL of IRIX 5.3 or IRIX 6.2. This can cause both
  929.   low-performance and lack-of-feature problems for developers
  930.   creating OpenGL applications. For this reason, developers are
  931.   advised to build only IRIS GL applications on IRIX 6.1 systems or
  932.   to upgrade to IRIX 6.2 for access to its enhanced 32-bit and 64-bit
  933.   OpenGL development environment.
  934.  
  935.   Performer compatibility issues with IRIX 6.2:
  936.  
  937.   IRIS Performer 2.0 and 2.1 are compatible with IRIX 6.2 and later 
  938.   IRIX relases.  Applications can be developed for all three execution 
  939.   modes: O32, N32, and N64.
  940.   The IRIX 6.2 32-bit and 64-bit OpenGL implementations have the
  941.   RealityEngine feature extensions and performance enhancements found
  942.   in IRIX 5.3. For this reason, developers are urged to use IRIX 6.2
  943.   or later rather than IRIX 6.1 for OpenGL development. As mentioned
  944.   above, IRIS Performer applications built in either N32 or N64 mode
  945.   will not run on IRIX 5.3 or 6.1 systems, and, in general,
  946.   applications should not be run on earlier versions of IRIX than the
  947.   machine on which they are compiled.
  948.  
  949.   Applications using Performer 1.2/IRIX5 are binary compatible with
  950.   machines running Irix 5.2, 5.3, 6.0, and later IRIX releases
  951.   without relinking.
  952.  
  953.   IRIS Performer 1.0 requires IRIX 4.0.5 or later.  Because IRIX
  954.   4.0.5F added several new GL calls to support RealityEngine
  955.   features, an application that uses GL routines or tokens found only
  956.   in 4.0.5F and later does not run properly under 4.0.5, 4.0.5B, or
  957.   4.0.5C.  When run on these earlier IRIX releases, an IRIS Performer
  958.   1.0 application making calls to GL functions or using GL tokens
  959.   that are undefined in the run-time environment cause run-time
  960.   errors or undefined behavior.
  961.  
  962.   An IRIS Performer 1.0 binary compiled and linked under IRIX
  963.   releases earlier than 4.0.5F will run under IRIX 4.0.5F and later,
  964.   but some RealityEngine features are not directly accessible to the
  965.   application.  An application can still access RealityEngine
  966.   features supported automatically or explicitly through IRIS
  967.   Performer when linked with IRIS Performer shared libraries.
  968.  
  969.   Running a IRIS Performer application built with IRIX 4.0.5 on IRIX
  970.   5.X is not recommended.  In particular, multiprocess applications
  971.   cannot take advantage of all processors.  Also, because IRIX 4.0.5's
  972.   relaxed shared memory accounting was replaced by a despotic and
  973.   stricter regime under IRIX 5.2, a Performer application built on
  974.   4.0.5 will need a much larger amount of swap space to be allocated up
  975.   front unless PFTMPDIR is used to specify a memory mapped file.
  976.  
  977.  
  978. ------------------------------
  979.  
  980. Subject:   -22- Guaranteeing Real Time performance
  981. Date: 8 Apr 94 00:00:01 EST
  982.  
  983.   - Run as root so that Performer can lock your process to
  984.     a particular CPU (if using pfuLockCPU) and give it a
  985.     non-degrading priority.
  986.  
  987.   - Be sure to kill any clocks, gr_osview, or other tools that may
  988.     wake up and draw themselves, so as to avoid graphics context
  989.     switches.
  990.  
  991.   - When multiprocessing, make sure the executable is on a local file
  992.     system.
  993.  
  994.   - There is a new real-time kernel directive for Onyx/Challenge
  995.     processors for directing system interrupts away from real-time
  996.     processors.
  997.  
  998.     In the file /var/sysgen/system/irix.sm, Search for NOINTR and
  999.     below the comment explaining NOINTR, add the line
  1000.  
  1001.     NOINTR: 1 2 3 4 ..etc..
  1002.  
  1003.     where you list the CPUs that you intend to do real-time
  1004.     processing on.  Then reboot.  This can be done on 5.2+
  1005.     Onyx/Challenge systems but wasn't covered in the base IRIX5
  1006.     documentation.  Be sure -not- to specify CPU 0, as you will want
  1007.     it to be available for necessary interrupts.
  1008.  
  1009.   - With IRIS GL, real-time performance can only be guaranteed if you
  1010.     have one window rendering at a time, per pipe.
  1011.  
  1012.     If more than one application is rendering to the same hardware
  1013.     pipeline, the (hardware) graphics pipe has to switch back & forth
  1014.     between each GL window's context several hundred times per
  1015.     second.  This is horribly inefficient and the graphics pipe will
  1016.     instruct the "other" process to block while its context is
  1017.     switched out.
  1018.  
  1019.   - Since having other (cpu-based) applications running can also
  1020.     effect real-time performance, it's sometimes desirable to
  1021.     minimize the number of daemons and other processes.  If you have
  1022.     problems achieving real-time behavior, try the pfuLockCPU in
  1023.     libpfutil.  You might also try turning off the desktop support
  1024.     and other daemons that are not crucial to your application,
  1025.     e.g.:
  1026.  
  1027.        % touch ~/.disableDesktop
  1028.        or
  1029.        % mkdir ~/.desktop-<machinename>
  1030.        % touch ~/.desktop-<machinename>/nodesktop
  1031.  
  1032.     and for total removal do:
  1033.  
  1034.        % chkconfig desktop off
  1035.        % chkconfig objectserver off
  1036.        % chkconfig directoryserver off
  1037.        % chkconfig fontserver off
  1038.        % chkconfig soundscheme off
  1039.      
  1040. ------------------------------
  1041.  
  1042. Subject:   -23- How do I make GL calls from within a IRIS Performer
  1043.                 program?
  1044. Date: 26 Oct 93 00:00:01 EST
  1045.  
  1046.   GL calls can only be made from a process that has a GL context.  In
  1047.   multi-process Performer applications only the draw process has GL
  1048.   context, so you must make your GL calls in a function called in the
  1049.   draw process.
  1050.  
  1051.   The pipe initialization callback, draw function callback, and node
  1052.   draw callbacks are all executed in the draw process.
  1053.  
  1054.   In an application that only will ever run single-process, GL calls
  1055.   can be made from anywhere in the program, but this is considered a
  1056.   dangerous practice.
  1057.  
  1058.   To set up a pipe initialization callback, see the pfInitPipe()
  1059.   manpage.  To set up a draw function callback, see the
  1060.   pfChanDrawFunc() manpage.  To set up a node draw callback, see the
  1061.   pfNodeTravFuncs() manpage.
  1062.  
  1063. ------------------------------
  1064.  
  1065. Subject:   -24- How do I overlay graphics on top of my Performer scene?
  1066. Date: 06 Oct 93 00:00:01 EST
  1067.  
  1068.   Typically this is done to implement a heads-up display (HUD).
  1069.  
  1070.   In the draw function callback, the basic algorithm is:
  1071.  
  1072.       save state with pfPushState()
  1073.       disable textures, fog, & lighting with pfBasicState()
  1074.       save & clear projection matrix
  1075.       ortho2()
  1076.       save & clear modelling matrix
  1077.       draw()
  1078.       restore modelling matrix
  1079.       restore projection matrix
  1080.       restore state with pfPopState()
  1081.  
  1082.   Or, you can draw your static info in the overlay planes and only
  1083.   redraw it when the window receives a REDRAW event (moved, resized,
  1084.   etc.).  Changing between drawing to the overlays and drawing to
  1085.   regular bitplanes takes a big hit.
  1086.  
  1087.   For things that need to be updated real-time, draw() would consist
  1088.   of:
  1089.  
  1090.           zfunction(ZF_ALWAYS);
  1091.           zwritemask(0x0);
  1092.       draw HUD stuff
  1093.           zfunction(ZF_LEQUAL);
  1094.           zwritemask(0xffffffff);
  1095.  
  1096. ------------------------------
  1097.  
  1098. Subject:   -25- What is the difference between phases FREE, FLOAT, and
  1099.                 LOCK?
  1100. Date: 26 Oct 93 00:00:01 EST
  1101.  
  1102.   PFPHASE_FREE_RUN wakes the application and draw processes up on the
  1103.   next video field boundary after the draw finishes. i.e. it's
  1104.   Performer's version of the usual run as-fast-as-I-can or
  1105.   as-slow-as-I-must mode that most simple graphics programs use.
  1106.  
  1107.   PFPHASE_FLOAT wakes the application up only on frame boundaries,
  1108.   i.e.  time = n*(1/frame_rate).  However, the draw process "floats"
  1109.   with respect to the frame rate and wakes up on the next possible
  1110.   field boundary and then does a swapbuffers() when it's done,
  1111.   regardless of whether it finished drawing in time for the desired
  1112.   frame rate.  Hence you see every frame that's drawn to the
  1113.   backbuffer, but it may not appear at exactly the time for which it
  1114.   was planned.  If you never frame extend, it behaves like
  1115.   PFPHASE_FIXED.  Latency is variable.
  1116.  
  1117.   PFPHASE_LOCK wakes the application and draw up only on frame
  1118.   boundaries and only swaps on frame boundaries.  The advantage is
  1119.   that each new image always appears at precisely the time for which
  1120.   it was rendered.  The disadvantage is that if the draw runs even
  1121.   slightly over a frame time, you skip that entire frame and are
  1122.   stuck with an outdated picture for a frame.  Latency is fixed.
  1123.  
  1124.   For more information see the pfPhase() man page or section 7.1.2 of
  1125.   the PFPG.
  1126.  
  1127. ------------------------------
  1128.  
  1129. Subject:   -26- Use of PFTMPDIR to configure shared memory
  1130. Date: 12 Dec 95 00:00:01 EST
  1131.  
  1132.   IRIS Performer requires shared memory and uses a memory-mapped
  1133.   file, the location of which depends on the value of the PFTMPDIR
  1134.   environment variable:
  1135.  
  1136.   If PFTMPDIR is not set, Performer uses /dev/zero as the default.
  1137.   Running an application in this configuration:
  1138.  
  1139.     - Uses swap space 
  1140.     - Does not require disk space until main memory is exhausted 
  1141.     - Is faster than using a regular memory mapped file via PFTMPDIR 
  1142.     - Causes IRIX to kill the process(es) and log an error to the
  1143.       console if the application runs out of space for shared memory in
  1144.       the swap partition.
  1145.  
  1146.   If PFTMPDIR is set, Performer creates files in the specified
  1147.   directory. Running an application in this configuration:
  1148.  
  1149.     - Requires disk space even before main memory is exhausted 
  1150.     - Is slower than /dev/zero because it touches the disk 
  1151.     - Produces appropriately sized core dump files with no limit set by
  1152.       IRIS Performer
  1153.     - Might cause a core dump from a segmentation violation inside
  1154.       pfMalloc if the application runs out of space for shared memory
  1155.       in the file system containing PFTMPDIR
  1156.     - PFTMPDIR should be set only to a directory on a local file system.
  1157.  
  1158. ------------------------------
  1159.  
  1160. Subject:   -27- Which rendering primitives does IRIS Performer support?
  1161. Date: 12 Dec 95 00:00:01 EST
  1162.  
  1163.   Points (PFGS_POINTS), 
  1164.   Independent line segments (PFGS_LINES), 
  1165.   Connected line strips (PFGS_LINESTRIPS), 
  1166.   Flat connected line strips (PFGS_FLAT_LINESTRIPS), 
  1167.   Independent Triangles (PFGS_TRIS), 
  1168.   Independent quadrilaterals (PFGS_QUADS),
  1169.   Connected triangle strips (PFGS_TRISTRIPS),
  1170.   Flat Connected triangle strips (PFGS_FLAT_TRISTRIPS),
  1171.   Independent n-sided polygons (PFGS_POLYS).
  1172.  
  1173.   See the pfGeoSet(3pf) man page for more information.
  1174.  
  1175. ------------------------------
  1176.  
  1177. Subject:   -28- How do I do triangle meshes in Performer?
  1178. Date: 12 Dec 95 00:00:01 EST
  1179.  
  1180.   You must change your triangle meshes to triangle strips by hand.
  1181.   In Performer 2.0, pfdMeshGSet (pfuMeshGSet in 1.2) does this for
  1182.   you.
  1183.  
  1184. ------------------------------
  1185.  
  1186. Subject:   -29- ================= Known Problems =================
  1187. Date: 8 Apr 94 00:00:01 EST
  1188.  
  1189. ------------------------------
  1190.  
  1191. Subject:   -30- Video Rate sometimes reported incorrectly
  1192. Date: 12 Dec 95 00:00:01 EST
  1193.  
  1194.   The video rate used by IRIS Performer for frame rate control is
  1195.   computed at application startup on some machines and is not always
  1196.   exactly correct. If this is a problem, the video rate can be set
  1197.   with pfVideoRate.
  1198.  
  1199. ------------------------------
  1200.  
  1201. Subject:   -31- Problems with Performer Town or Village demos
  1202. Date: 12 Dec 95 00:00:01 EST
  1203.  
  1204.   - IRIX 5.0:  It was reported that perfly would cause an Onyx RE or
  1205.     VTX to hang.  This was fixed in 5.0.1.
  1206.  
  1207.   - IRIX 5.0.1:  perfly would generate floating point exceptions due
  1208.     to a bug in the font manager library (libfm).  This was fixed in
  1209.     5.1.
  1210.  
  1211.   - IRIX 5.2/5.3 Kernel Panic:  Certain IRIX patches were
  1212.     incompatible with Performer and would cause the Town or Village
  1213.     demos to panic the system if run as root.  The error message
  1214.     was:
  1215.  
  1216.         PANIC: CPU 3: Stack Extension Page is inconsistent
  1217.         Double PANIC: CPU 0: Stack Extension Page is inconsistent 111
  1218.         at block 0
  1219.  
  1220.     In IRIX 5.2, the crash occurs with patches 125 and 139.
  1221.     In IRIX 5.3, the crash occurs with patch 158.
  1222.  
  1223.   - Jerky forward motion.  This is caused by an uneven frame rate.
  1224.     The Performer town demo is fill limited and typically can not
  1225.     maintain a steady 30Hz.
  1226.  
  1227.     This can also occur if perfly is not being run as root.  When run
  1228.     by root, Performer applications will set nondegradable priorities
  1229.     for their processes to improve the consistency of the run-time
  1230.     behavior.
  1231.  
  1232.     This same problem is also caused by the user having another
  1233.     GL-based application (like gr_osview) running at the same time.
  1234.  
  1235.   - Ghosting.  A true FAQ is why multiple images of objects like
  1236.     trees, house edges, the horizon, etc. are seen as the viewer
  1237.     turns.  This is a form of "temporal aliasing" and is an attribute
  1238.     of having a frame rate which is less than the video refresh
  1239.     rate.
  1240.  
  1241.     The problem is that a single image is scanned out onto the
  1242.     monitor several times before being changed.  The repetition of a
  1243.     frame means that the image is temporally inaccurate for motion.
  1244.     Real moving objects do not stay in one place for a couple frame
  1245.     times and then move.
  1246.  
  1247.     What's actually happening is that your eye is following an
  1248.     object, moving with the same angular velocity, which keeps the
  1249.     image stationary on the retina.  Between two video refreshes of
  1250.     the same frame, your eye has moved, but the image on the screen
  1251.     has not.  Consequently the image of the second frame appears at a
  1252.     different location on the retina, and you see a "ghost" image.
  1253.  
  1254.     So a simulation running at 20Hz update on a display refreshing at
  1255.     60Hz, the object will appear tripled.  On large objects such as
  1256.     horizon silhouette, the effect manifests itself as multiple
  1257.     edges.
  1258.  
  1259. ------------------------------
  1260.  
  1261. Subject:   -32- Antialiasing
  1262. Date: 8 Apr 94 00:00:01 EST
  1263.  
  1264.   When it is not multisampling, pfAntialias can significantly degrade
  1265.   performance.  Specifically, on non-RealityEngine systems, use
  1266.   pfAntialias only for lines and points.
  1267.  
  1268. ------------------------------
  1269.  
  1270. Subject:   -33- Coplanar Polygons & pfDecal on certain platforms
  1271. Date: 8 Apr 94 00:00:01 EST
  1272.  
  1273.   pfDecal works only on machines that support the stencil or
  1274.   displacepolygon command.  The default decaling mode for PFDECAL_BASE
  1275.   now uses displacepolygon instead of stencil.  This can significantly
  1276.   improve rendering performance but can result in visual anomalies
  1277.   where layer polygons incorrectly "poke" through other geometry.  If
  1278.   you wish the old behavior then specify the PFDECAL_BASE_HIGH_QUALITY
  1279.   token.
  1280.  
  1281. ------------------------------
  1282.  
  1283. Subject:   -34- Networked graphics (DGL & GLX)
  1284. Date: 12 Dec 95 00:00:01 EST
  1285.  
  1286.   libpf-based applications in IRIS Performer 1.0, 1.1, 1.2, and 2.0
  1287.   do not support applications that use networked GL (DGL).  However,
  1288.   applications using libpr only can use DGL.
  1289.  
  1290.   This bug/problem is a side-effect of having vertical retrace
  1291.   counter control, which is only available on VGX, VGXT, VTX, Reality
  1292.   Engine, Reality Engine 2, Elan, and Extreme graphics systems.
  1293.  
  1294.   OpenGL-based Performer 2.0 applications display properly to remote
  1295.   systems via the GLX X server extension.
  1296.  
  1297. ------------------------------
  1298.  
  1299. Subject:   -35- Transparency
  1300. Date: 12 Dec 95 00:00:01 EST
  1301.  
  1302.   pfTransparency works only on machines that support either
  1303.   blendfunction or multisampling.
  1304.  
  1305.   Sometimes users report that their transparency seems quantized.  This
  1306.   is not a bug -- Performer defaults to using Multisample transparency
  1307.   (msalpha) when multisampling is enabled, instead of using the
  1308.   "standard" (blendfunction) transparency mechanism.
  1309.  
  1310.   Multisample transparency is faster but has much less resolution, and
  1311.   so less quality.  Standard transparency using blendfunction is
  1312.   slower, but the quality is very good.
  1313.  
  1314.   To force Performer to use higher-quality (but slower) transparency
  1315.   when multisampling,
  1316.  
  1317.   1.0/1.1:  pfGStateMode (gstate, PFSTATE_TRANSPARENCY, 2);
  1318.   1.2/2.0:  pfGStateMode (gstate, PFSTATE_TRANSPARENCY, PFTR_HIGH_QUALITY);
  1319.                                                     aka PFTR_BLEND_ALPHA
  1320.  
  1321.   In 1.0/1.1 the BLEND_ALPHA token was not exposed, but just use '2'.
  1322.   Be sure to revisit this code when you port to 1.2, as the token has
  1323.   changed.
  1324.  
  1325.   See the pfTransparency(3pf) man page for more details.
  1326.  
  1327. ------------------------------
  1328.  
  1329. Subject:   -36- Gangdraw and cursor loading
  1330. Date: 12 Dec 95 00:00:01 EST
  1331.  
  1332.   Loading the cursor with ganged swapbuffers (external swapready
  1333.   wire) hangs graphics. Workaround: don't load the cursor and use a
  1334.   full screen window when using ganged swapbuffers.
  1335.  
  1336. ------------------------------
  1337.  
  1338. Subject:   -37- Frame control on low- and mid-range machines
  1339. Date: 8 Apr 94 00:00:01 EST
  1340.  
  1341.   Frame control on low- and mid-range machines: Currently, the video
  1342.   clock (pfInitVClock, pfGetVClock, pfVClockSync) is supported only
  1343.   on systems with VGX, VGXT, RealityEngine, RealityEngine2, Elan, XS,
  1344.   Extreme, and Impact graphics hardware. On other systems,
  1345.   pfVClockSync returns immediately. Because libpf normally uses
  1346.   pfVClockSync for frame rate control, frame control is not rigorous
  1347.   on other platforms.
  1348.  
  1349. ------------------------------
  1350.  
  1351. Subject:   -38- Timing on pre-1992 platforms
  1352. Date: 8 Apr 94 00:00:01 EST
  1353.  
  1354.   Several libpf functions require high-resolution timing information.
  1355.   On most recent machines (Indy, Indigo, Indigo2, 4D/35 and Onyx) and
  1356.   PowerSeries or Crimson machines with IO3 boards, IRIS Performer
  1357.   uses special hardware counters with sub-microsecond resolution.
  1358.   (The IO3 board was standard on Crimson and later 4D/300 and 4D/400
  1359.   machines. You can check for it with the hinv(1M) command.)
  1360.  
  1361.   On older platforms, for example, those with IO2 boards, the
  1362.   time-of-day clock is used, which, by default, has a 10 ms
  1363.   resolution. This resolution is inadequate for many libpf functions,
  1364.   including animation sequences (pfSequence), graphics load
  1365.   computation (pfChanStress), and the display of accurate channel
  1366.   statistics (pfDrawChanStats). On these machines, you may want to
  1367.   enable fast timers using systune(1M) to set the fasthz variable.
  1368.   See the man page for timers for more information. Frame rate
  1369.   control is poor on machines that lack both a fast clock and the
  1370.   video clock used by pfVClockSync.
  1371.  
  1372. ------------------------------
  1373.  
  1374. Subject:   -39- 2.0 Warnings from ld when building on IRIX 6.2
  1375. Date: 12 Dec 95 00:00:01 EST
  1376.  
  1377.   When building executables on IRIX 6.2 and linking directly using ld
  1378.   rather than implicitly via CC, an alarming number of warnings about
  1379.   tables that are defined in multiple .so's may be printed. These are
  1380.   harmless but the appropriate compiler option to disable the warning
  1381.   has not yet been identified.  The problem does not occur when
  1382.   linking with CC, which is identical in function and serves as an
  1383.   effective workaround.
  1384.  
  1385. ------------------------------
  1386.  
  1387. Subject:   -40- 2.0 Bug OpenGL functions missing when building static
  1388.                 executables
  1389. Date: 12 Dec 95 00:00:01 EST
  1390.  
  1391.   When building static OpenGL executables in IRIX 5.3 installed it
  1392.   may be necessary to specify the "-ignore_unresolved" option to ld
  1393.   since not all OpenGL extensions used in Performer are available on
  1394.   all platforms and OS versions.  You may see warnings for the
  1395.   unresolved symbols of OpenGL extensions that are not present on the
  1396.   current system, but the executable will still successfully link.
  1397.  
  1398. ------------------------------
  1399.  
  1400. Subject:   -41- 2.0 Bug Z buffer problems when moving windows on 5.3
  1401.                 EXtreme
  1402. Date: 12 Dec 95 00:00:01 EST
  1403.  
  1404.   When moving a window on Extreme graphics under IRIX 5.3, in some
  1405.   clear modes the Z-buffer may not be updated properly until a full
  1406.   czclear() operation is performed.
  1407.  
  1408. ------------------------------
  1409.  
  1410. Subject:   -42- 2.0 Bug Use of more than 512 simultaneous textures
  1411. Date: 12 Dec 95 00:00:01 EST
  1412.  
  1413.   When more than 512 textures are used in either IRIS GL or OpenGL
  1414.   the hardware and or host-side software may become confused and in
  1415.   some cases, may falter completely and terminate the application.
  1416.   This is a graphics library limitation.
  1417.  
  1418. ------------------------------
  1419.  
  1420. Subject:   -43- 2.0 Bug IRIS GL on dual-head systems
  1421. Date: 12 Dec 95 00:00:01 EST
  1422.  
  1423.   IRIS GL based Performer executables encounter difficulties when
  1424.   executing on dual-head Indigo systems.  This problem is not present
  1425.   in OpenGL applications.
  1426.  
  1427. ------------------------------
  1428.  
  1429. Subject:   -44- 2.0 Bug Resizing of pfPipeWindows in MP X apps
  1430. Date: 12 Dec 95 00:00:01 EST
  1431.  
  1432.   Dynamic resizing of pfPipeWindows when multi-processed and using X
  1433.   windows (IRIS GLX or OpenGL/X) when an alternate framebuffer
  1434.   configuration window is selected (such as the fill statistics
  1435.   window in OpenGL/X perfly) can cause channel viewports to be
  1436.   confused when the alternate framebuffer configuration window is
  1437.   de-selected (such as disabling the fill statistics in perfly when
  1438.   running with X windows).
  1439.  
  1440. ------------------------------
  1441.  
  1442. Subject:   -45- 2.0 Bug Applying frustums transformed by
  1443.                 pfOrthoXformFrust
  1444. Date: 12 Dec 95 00:00:01 EST
  1445.  
  1446.   pfApplyFrust() does not properly apply a frustum which has been
  1447.   transformed with pfOrthoXformFrust().  Instead, the canonical
  1448.   frustum whose eye is at the origin and is looking down the +Y axis,
  1449.   is applied.
  1450.  
  1451. ------------------------------
  1452.  
  1453. Subject:   -46- 2.0 Bug pfFlatten with pfCycleBuffer attribute arrays
  1454. Date: 12 Dec 95 00:00:01 EST
  1455.  
  1456.   pfFlatten() is broken for pfGeoSets with pfCycleBuffer attribute
  1457.   arrays. A core dump is likely.
  1458.  
  1459. ------------------------------
  1460.  
  1461. Subject:   -47- 2.0 Bug Sorting lights with pfChanBinSort()
  1462. Date: 12 Dec 95 00:00:01 EST
  1463.  
  1464.   The PFSTATE_LIGHTS sorting key for the PFSORT_BY_STATE mode of
  1465.   pfChanBinSort() is not yet implemented.
  1466.  
  1467. ------------------------------
  1468.  
  1469. Subject:   -48- 2.0 Bug OpenGL disables back material modes
  1470. Date: 12 Dec 95 00:00:01 EST
  1471.  
  1472.   Although Performer supports it, OpenGL does not support different
  1473.   material color modes for front and back materials. When Performer
  1474.   encounters this case, it disables the material color mode for the
  1475.   back material.
  1476.  
  1477. ------------------------------
  1478.  
  1479. Subject:   -49- 2.0 Bug CPU statistics in IRIX 6
  1480. Date: 12 Dec 95 00:00:01 EST
  1481.  
  1482.   Statistics: The PFSTATSHW_CPU pfStats statistics class for
  1483.   accumulation of statistics on CPU usage are not yet implemented for
  1484.   IRIX6 operation (64bit or 32bit).
  1485.  
  1486. ------------------------------
  1487.  
  1488. Subject:   -50- 2.0 Bug pfdLoadFile_flt FLT loader in IRIX 6
  1489. Date: 12 Dec 95 00:00:01 EST
  1490.  
  1491.   The FLT loader under 64bit operation may core dump.
  1492.  
  1493. ------------------------------
  1494.  
  1495. Subject:   -51- 2.0 Bug hello sample program in IRIX 6
  1496. Date: 12 Dec 95 00:00:01 EST
  1497.  
  1498.   The src/pguide/libpf/C/hello sample program may core dump under
  1499.   64bit operation.
  1500.  
  1501. ------------------------------
  1502.  
  1503. Subject:   -52- 2.0 Bug Forked X input handing in IRIX 6.2
  1504. Date: 12 Dec 95 00:00:01 EST
  1505.  
  1506.   On beta versions of 6.2 some problems were experienced with
  1507.   handling X input in an additional forked process.  For this reason,
  1508.   the perfly sample application has a conditional compilation
  1509.   construct to use the non-forked X input handling option of the
  1510.   libpfutil X input handling utilities when compiled under IRIX6. You
  1511.   may find this to not be necessary.
  1512.  
  1513. ------------------------------
  1514.  
  1515. Subject:   -53- 2.0 Bug Intersections with pfBillboard nodes
  1516. Date: 12 Dec 95 00:00:01 EST
  1517.  
  1518.   Intersection testing of line segments (pfNodeIsectSegs) against
  1519.   geometry in pfBillboard nodes is not yet implemented; only the
  1520.   bounding sphere of the entire pfBillboard is available.
  1521.  
  1522. ------------------------------
  1523.  
  1524. Subject:   -54- 2.0 Bug Channel fade LOD attributes & mixed gfx configs
  1525. Date: 12 Dec 95 00:00:01 EST
  1526.  
  1527.   Channel fade LOD attributes are set in the application process. The
  1528.   existence of multisample, required for fade LOD, is tested at the
  1529.   time that the attributes are set with pfChanLODAttr. This test for
  1530.   multisample uses the application process window system connection
  1531.   (pfOpenWSConnection) or else the DISPLAY environment variable to
  1532.   select a screen for determining graphics configuration, instead of
  1533.   testing the current window of the pfChannel. In a multipipe
  1534.   environment where one graphics pipeline has multisample and one
  1535.   does not, the application process needs to have a window system
  1536.   connection or DISPLAY that points to the pipeline with multisample,
  1537.   in which case the non-multisample pfChannels will try to use fade
  1538.   LOD. In a multi-window environment, windows without multisample on
  1539.   a system with multisample will try to use fade LOD.
  1540.  
  1541. ------------------------------
  1542.  
  1543. Subject:   -55- 2.0 Bug libpfui C API incomplete
  1544. Date: 12 Dec 95 00:00:01 EST
  1545.  
  1546.   Libpfui has both a C API and a C++ API. The C API is actually
  1547.   wrappers around the C++ API and is not complete.
  1548.  
  1549. ------------------------------
  1550.  
  1551. Subject:   -56- 2.0 Bug libpfdb pfdLoadFile_dxf incomplete
  1552. Date: 12 Dec 95 00:00:01 EST
  1553.  
  1554.   The DXF loader does not fully support the format.
  1555.  
  1556. ------------------------------
  1557.  
  1558. Subject:   -57- 2.0 Bug libpfdb pfdLoadFile_sgo incomplete
  1559. Date: 12 Dec 95 00:00:01 EST
  1560.  
  1561.   The SGO loader does not support triangle strips
  1562.  
  1563. ------------------------------
  1564.  
  1565. Subject:   -58- 2.0 Bug IRIS GL perfly on Indy
  1566. Date: 12 Dec 95 00:00:01 EST
  1567.  
  1568.   The background of the GUI panel is influenced by the loaded
  1569.   database.  Additionally, fill statistics are not supported on Indy
  1570.   under IRIS GL and will cause flashing and error messages to
  1571.   stderr.
  1572.  
  1573. ------------------------------
  1574.  
  1575. Subject:   -59- 2.0 Bug pguide/libpf/C/pipewin sample program
  1576. Date: 12 Dec 95 00:00:01 EST
  1577.  
  1578.   The overlay text is only drawn in IRIS GL and does not get properly
  1579.   redrawn when the window size is changed.
  1580.  
  1581. ------------------------------
  1582.  
  1583. Subject:   -60- 2.0 Bug pguide/libpf/C/lpstate sample program
  1584. Date: 12 Dec 95 00:00:01 EST
  1585.  
  1586.   The lpstate.c example for demonstrating pfLPointStates uses
  1587.   sophisticated texturing capabilities that may not yet work on the
  1588.   IMPACT, Extreme, or Indy graphics platforms.
  1589.  
  1590. ------------------------------
  1591.  
  1592. Subject:   -61- 2.0 Bug pfInitClock() and Video Rate on 250MHz IMPACT
  1593. Date: 12 Dec 95 00:00:01 EST
  1594.  
  1595.   The clock period determined by pfInitClock() on 250MHz IMPACT
  1596.   systems is apparently inconsistent with the true clock period.  It
  1597.   seems that the actual clock period is that of a 200MHz system.
  1598.   Consequently, pfGetTime() will return a time that is .8 (200/250)
  1599.   that of the true time.  
  1600.  
  1601.   Among other things, this invalidates the calculations done by
  1602.   Performer to determine the current video rate.
  1603.  
  1604.   As a workaround, you can specify an alternate clock period with the
  1605.   PFCLOCKPERIOD environment variable.  If set, PFCLOCKPERIOD
  1606.   specifies the clock period, in picoseconds, to be used by
  1607.   pfInitClock().  For proper behavior on 250MHz IMPACT systems, use
  1608.   40000 for the period.
  1609.  
  1610. ------------------------------
  1611.  
  1612. Subject:   -62- 1.2 Bug Billboard normals and intersections
  1613. Date: 8 Apr 94 00:00:01 EST
  1614.  
  1615.   During rendering, pfBillboard normals are not affected by the
  1616.   transformation applied to make the geometry follow the eye.
  1617.   Intersection testing of line segments (pfSegsIsectNode) against the
  1618.   pfGeoSet's geometry and bounding box are not yet implemented; only
  1619.   the bounding sphere of the entire pfBillboard is available.
  1620.  
  1621. ------------------------------
  1622.  
  1623. Subject:   -63- 1.2 Bug Incompatibility with IRIX 6.1 XFS
  1624. Date: 20 Nov 95 00:00:01 EST
  1625.  
  1626.   Performer 1.2 contains a bug that prevents the use of an IRIX 6.1
  1627.   XFS filesystem (the replacement for the older EFS) for Performer
  1628.   shared memory and semaphores.  There are a number of workarounds:
  1629.  
  1630.     1) Use an EFS root filesystem
  1631.  
  1632.     2) set PFTMPDIR to an EFS file system
  1633.  
  1634.     3) reorder the device types in the kernel configuration
  1635.     files and build a new kernel.
  1636.  
  1637.   This problem is fixed in Performer 2.0.
  1638.  
  1639. ------------------------------
  1640.  
  1641. Subject:   -64- 1.2 Bug Billboards with multiple pfGeoSets
  1642. Date: 8 Apr 94 00:00:01 EST
  1643.  
  1644.   Using pfBillboards with more than one pfGeoSet sometimes causes a
  1645.   segmentation violation during the first cull traversal.  Workaround:
  1646.   use only a single pfGeoSet per pfBillboard at some cost in
  1647.   performance.
  1648.  
  1649. ------------------------------
  1650.  
  1651. Subject:   -65- 1.2 Bug Flattening transformation hierarchies
  1652. Date: 8 Apr 94 00:00:01 EST
  1653.  
  1654.   pfFlatten does not work properly on pfGeodes that share pfGeoSets
  1655.   with other pfGeodes.
  1656.  
  1657. ------------------------------
  1658.  
  1659. Subject:   -66- 1.2 libpf Bug Hang on Exit, 5.2 VGX
  1660. Date: 8 Apr 94 00:00:01 EST
  1661.  
  1662.   On VGXT running 5.2, calling pfExit when the phase is PFPHASE_LOCK or
  1663.   PFPHASE_FLOAT can leave an inactive window and DRAW process.
  1664.   Workaround: switch to PFPHASE_FLOAT or PFPHASE_FREE before exiting or
  1665.   kill -9 <pid> afterwards.
  1666.  
  1667. ------------------------------
  1668.  
  1669. Subject:   -67- 1.2 libpf Cull with overlapped draw latency
  1670. Date: 8 Apr 94 00:00:01 EST
  1671.  
  1672.   When running PFPHASE_LIMIT or PFPHASE_FREE, the draw can start late
  1673.   resulting in higher latency.
  1674.  
  1675. ------------------------------
  1676.  
  1677. Subject:   -68- 1.2 libpf Cull with overlapped draw hang
  1678. Date: 8 Apr 94 00:00:01 EST
  1679.  
  1680.   When running PFPHASE_LIMIT or PFPHASE_FREE, with processes locked and
  1681.   non-degrading priorities, it is possible to lock out the X server and
  1682.   hang the system.
  1683.  
  1684. ------------------------------
  1685.  
  1686. Subject:   -69- 1.2 libpf Transparency Sorting
  1687. Date: 8 Apr 94 00:00:01 EST
  1688.  
  1689.   When the PFCULL_SORT mode of pfChanTravMode is set, transparent
  1690.   objects are drawn after all opaque geometry.  However, transparent
  1691.   objects are not sorted back to front among themselves, so visual
  1692.   anomalies can result when using blended transparency.  Workaround:
  1693.   use multisample transparency (PFTR_MS_ALPHA), if available.
  1694.  
  1695. ------------------------------
  1696.  
  1697. Subject:   -70- 1.2 libpf Multiple EarthSky fog
  1698. Date: 8 Apr 94 00:00:01 EST
  1699.  
  1700.   When using multiple pipes which share pfEarthSky fog set by
  1701.   pfESkyFog, the fog may appear to change densities and flash.
  1702.   Workaround: to guarantee that pfClearChan is not called
  1703.   simultaneously by more than one pipe.  This may be accomplished with
  1704.   a hardware spin lock (see usnewlock)
  1705.  
  1706. ------------------------------
  1707.  
  1708. Subject:   -71- 1.2 libpf Bug Limit Phase
  1709. Date: 8 Apr 94 00:00:01 EST
  1710.  
  1711.   The PFPHASE_LIMIT mode of pfPhase only works when the draw stage is
  1712.   configured as a separate process.  For example, the PFMP_APP_CULLDRAW
  1713.   mode to pfMultiprocess specifies that the cull and draw stages are
  1714.   combined into a single process and so will not be affected by a LIMIT
  1715.   phase.
  1716.  
  1717. ------------------------------
  1718.  
  1719. Subject:   -72- 1.2 libpr Highlighting when using wireframe
  1720. Date: 8 Apr 94 00:00:01 EST
  1721.  
  1722.   Using highlighting when in wireframe mode can cause random,
  1723.   flickering, or otherwise misbehaved polygons.
  1724.  
  1725. ------------------------------
  1726.  
  1727. Subject:   -73- 1.2 libpf APPCULLDRAW does not honor LIMIT/FLOAT/LOCK
  1728.                 phases
  1729. Date: 8 Apr 94 00:00:01 EST
  1730.  
  1731.   When in PFMP_APPCULLDRAW mode, both FREE_RUN and LIMIT act the same;
  1732.   as do FLOAT and LOCK.
  1733.  
  1734. ------------------------------
  1735.  
  1736. Subject:   -74- 1.2 libpf Phase toggling overlapped cull and draw
  1737. Date: 8 Apr 94 00:00:01 EST
  1738.  
  1739.   When running in the PFMP_CULLoDRAW multiprocessing mode, changing the
  1740.   phase from PFPHASE_LOCK or PFPHASE_FLOAT to PFPHASE_FREE_RUN or
  1741.   PFPHASE_LIMIT can cause the application to deadlock.
  1742.  
  1743.   In perfly, rapidly toggling the phase when running with the
  1744.   PFMP_CULLoDRAW multiprocessing model ("perfly -m 65540" or "perfly -m
  1745.   65542") can cause the application to hang.
  1746.  
  1747.   Workaround: toggle only once every few frames or not at all.
  1748.  
  1749. ------------------------------
  1750.  
  1751. Subject:   -75- 1.2 libpf pfDataPool warning on exit
  1752. Date: 8 Apr 94 00:00:01 EST
  1753.  
  1754.   A warning similar to the following sometimes occurs when a sample
  1755.   program exits: "Performer Warning (2):  pfReleaseDPool() Could not
  1756.   unlink arena shared memory /usr/tmp/pfUtilDataPool11638.pfdpool."
  1757.   This warning is harmless and can be ignored.
  1758.  
  1759. ------------------------------
  1760.  
  1761. Subject:   -76- 1.2 libpf Multi-channel stats warning messages
  1762. Date: 8 Apr 94 00:00:01 EST
  1763.  
  1764.   When a multi-channel libpf application enables libpr pfStats modes
  1765.   (such as graphics statistics -- PFSTATS_GFX) in multiple channels at
  1766.   the same time, warning messages are printed every frame.  The
  1767.   calculated statistics will be correct.  To stop the stream of warning
  1768.   messages, raise the pfNotifyLevel in the program or set the
  1769.   enviornment variable PFNFYLEVEL to a value smaller than 2.
  1770.  
  1771. ------------------------------
  1772.  
  1773. Subject:   -77- 1.2 libpf Video warnings on Indy when multiprocessed
  1774. Date: 8 Apr 94 00:00:01 EST
  1775.  
  1776.   When an application on an Indy is forced to run the APP and DRAW in
  1777.   separate processes, e.g.  pfMultiprocess(PFMP_APP_CULLDRAW),
  1778.   pfGetVideoRate warnings are printed when process timing stats are
  1779.   on.  To stop the stream of warning messages, raise the pfNotifyLevel
  1780.   in the program or set the enviornment variable PFNFYLEVEL to a value
  1781.   smaller than 2.
  1782.  
  1783. ------------------------------
  1784.  
  1785. Subject:   -78- 1.2 stats Frame statistics for lightpoints
  1786. Date: 8 Apr 94 00:00:01 EST
  1787.  
  1788.   pfFrameStats for visible uni-directional and bi-directional
  1789.   pfLightPoint nodes and points are incorrect.  These statistics are
  1790.   part of the pfFrameStats database statistics (PFFSTATS_DB) and these
  1791.   specific counts are incorrect.  However, the counts for total number
  1792.   of visible pfLightPoint nodes and points are correct, and so are the
  1793.   counts for Omni-directional pfLightPoint nodes and points.  However,
  1794.   these numbers are only counted when PFFSTATS_CULL are enabled.
  1795.  
  1796. ------------------------------
  1797.  
  1798. Subject:   -79- 1.2 stats Pixel fill statistics under 4.0.5 on
  1799.                 RealityEngine
  1800. Date: 8 Apr 94 00:00:01 EST
  1801.  
  1802.   Under 4.0.5, fill statistics do not work when multisampling.
  1803.   Workaround: turn off multisampling.
  1804.  
  1805. ------------------------------
  1806.  
  1807. Subject:   -80- 1.2 libpr Directional pfLightPoints
  1808. Date: 8 Apr 94 00:00:01 EST
  1809.  
  1810.   Specifying a pfLightPoint node as PFLP_UNIDIRECTIONAL or
  1811.   PFLP_BIDIRECTIONAL can cause a core dump in pfLightPoint::cull.
  1812.   Workaround: set the color of the first light point with
  1813.   pfLPointColor(lp, 0, color) before calling pfLPointShape.
  1814.  
  1815. ------------------------------
  1816.  
  1817. Subject:   -81- 1.2 libpfutil pfuCollide is jerky
  1818. Date: 8 Apr 94 00:00:01 EST
  1819.  
  1820.   The collision model jerks and bounces when you keep hitting
  1821.   something.
  1822.  
  1823. ------------------------------
  1824.  
  1825. Subject:   -82- 1.2 libpfutil pfuSaveImage broken
  1826. Date: 8 Apr 94 00:00:01 EST
  1827.  
  1828.   The image file generated by pfuSaveImage is bogus.
  1829.  
  1830. ------------------------------
  1831.  
  1832. Subject:   -83- 1.2 libpfsgi pfLoadDxf loader is incomplete
  1833. Date: 8 Apr 94 00:00:01 EST
  1834.  
  1835.   The DXF loader does not fully support the format.
  1836.  
  1837. ------------------------------
  1838.  
  1839. Subject:   -84- 1.2 libpfsgi pfLoadIv loader is incomplete
  1840. Date: 8 Apr 94 00:00:01 EST
  1841.  
  1842.   The IRIS Inventor loader reads a subset of the IRIS Inventor 1.0
  1843.   format.
  1844.  
  1845. ------------------------------
  1846.  
  1847. Subject:   -85- 1.2 GLX Overlay text with GLX on 4.0.5
  1848. Date: 8 Apr 94 00:00:01 EST
  1849.  
  1850.   In the sample programs (e.g. perfly) on some platforms, sometimes
  1851.   drawing messages (pfuDrawMessageCI) to the overlay planes in GLX mode
  1852.   doesn't work under 4.0.5.  Workaround: use only in GL mode (e.g. do
  1853.   not use "perfly -x") or upgrade to IRIX 5.2.
  1854.  
  1855. ------------------------------
  1856.  
  1857. Subject:   -86- 1.2 GLX Toggling antialiasing with GLX on 4.0.5
  1858.                 RealityEngine
  1859. Date: 8 Apr 94 00:00:01 EST
  1860.  
  1861.   Toggling antialiasing in the sample programs running in GLX mode on a
  1862.   4.0.5 RealityEngine apparently confuses the graphics pipe and causes
  1863.   wild texturing.  Workaround: use only in GL mode (e.g. do not use
  1864.   "perfly -x") or upgrade to IRIX 5.2.
  1865.  
  1866. ------------------------------
  1867.  
  1868. Subject:   -87- 1.2 GLX Toggling antialiasing with GLX on any
  1869.                 RealityEngine
  1870. Date: 8 Apr 94 00:00:01 EST
  1871.  
  1872.   When antialiasing is toggled with the GUI in GLX mode, the GL window
  1873.   changes.  As each texture textures first comes into view, it is
  1874.   downloaded to the graphics hardware.  Occasional pauses will be seen
  1875.   until all textures are reloaded in the graphics hardware.  This can
  1876.   be avoided by redownloading all textures (pfuDownloadTexList).
  1877.  
  1878. ------------------------------
  1879.  
  1880. Subject:   -88- 1.2 GLX on 4.0.5 Indigo, sample programs hang on
  1881.                 startup.
  1882. Date: 8 Apr 94 00:00:01 EST
  1883.  
  1884.   Some sample programs will hang on startup if in GLX mode.
  1885.   Workaround:  start up only in GL mode (e.g. do not use "perfly -x")
  1886.   or upgrade to IRIX 5.2.
  1887.  
  1888. ------------------------------
  1889.  
  1890. Subject:   -89- 1.2 samples smallfly drive models broken
  1891. Date: 8 Apr 94 00:00:01 EST
  1892.  
  1893.   Toggling the drive-model button in smallfly can cause unexpected
  1894.   results.
  1895.  
  1896. ------------------------------
  1897.  
  1898. Subject:   -90- 1.2 samples pickfly drops core under abuse
  1899. Date: 8 Apr 94 00:00:01 EST
  1900.  
  1901.   When aggressively navigating the hierarchy, the number of pfSCSes in
  1902.   the scene graph can exceed the maximum libpf traversal depth of 64.
  1903.  
  1904. ------------------------------
  1905.  
  1906. Subject:   -91- 1.2 samples detail example broken on 4.0.5
  1907. Date: 8 Apr 94 00:00:01 EST
  1908.  
  1909.   The example program sample/pguide/libpf/progs/detail.c doesn't run
  1910.   properly under 4.0.5.  Workaround: upgrade to 5.2.
  1911.  
  1912. ------------------------------
  1913.  
  1914. Subject:   -92- 1.2 friends Belvis makefile requires pmake
  1915. Date: 8 Apr 94 00:00:01 EST
  1916.  
  1917.   The makefile for the belvis demo in the Computer Arts and Development
  1918.   section requires the pmake utility.  Workaround: install
  1919.   dev.sw.make.
  1920.  
  1921. ------------------------------
  1922.  
  1923. Subject:   -93- 1.2 friends Toon has bad models and textures
  1924. Date: 8 Apr 94 00:00:01 EST
  1925.  
  1926.   Some of the textures are mixed up in toon town.
  1927.  
  1928. ------------------------------
  1929.  
  1930. Subject:   -94- 1.2 docs pfuGetGLXWin wrong on reference page
  1931. Date: 8 Apr 94 00:00:01 EST
  1932.  
  1933.   The prototype in the man page should read: "extern void
  1934.   pfuGetGLXWin(pfPipe *_pipe, pfuGLXWindow *_glxWin);" pfuGetGLXWin
  1935.   copies the active GLX windows (normal and overlay) for the specified
  1936.   pipe into the provided pfuGLXWindow structure.  The active windows
  1937.   change when a different GLX visual is requested.
  1938.  
  1939. ------------------------------
  1940.  
  1941. Subject:   -95- 1.2 docs pfuLockDownApp gives the incorrect location
  1942. Date: 8 Apr 94 00:00:01 EST
  1943.  
  1944.   pfuLockDownApp gives the incorrect location for the procsetup.c
  1945.   example: The correct location for this example is:
  1946.  
  1947.      /usr/src/Performer/src/pguide/libpfutil/progs/procsetup.c
  1948.  
  1949.   Additionally, the reference page should mention the example
  1950.  
  1951.      /usr/src/Performer/src/pguide/libpf/progs/bench.c
  1952.  
  1953. ------------------------------
  1954.  
  1955. Subject:   -96- 1.1 Bug with FP underflow
  1956. Date: 26 Oct 93 00:00:01 EST
  1957.  
  1958.   The cull process could encounter an FP underflow that could
  1959.   periodically affect cull performance.
  1960.  
  1961. ------------------------------
  1962.  
  1963. Subject:   -97- 1.1 Bug with Multipipe Onyx
  1964. Date: 26 Oct 93 00:00:01 EST
  1965.  
  1966.   There is a bug in the 1.1 multipipe code. The symptom is a core dump
  1967.   and an error like:
  1968.  
  1969.      Performer Fatal (4):pfFree() pointer 0x9c9350 not from pfMalloc
  1970.  
  1971.   The workaround is to do the following after you've created a channel
  1972.   with pfNewChan:
  1973.  
  1974.      ((long**)chan)[3] = NULL;
  1975.  
  1976.   This workaround MUST NOT BE USED in Performer 1.2 applications.
  1977.  
  1978. ------------------------------
  1979.  
  1980. Subject:   -98- 1.1 Bug Installing on Indy or Indigo2 XL
  1981. Date: 8 Apr 94 00:00:01 EST
  1982.  
  1983.   The problems are related to the way that Performer recognizes the
  1984.   graphics hardware in the machine.  Since the Indy was introduced
  1985.   after Performer 1.1 released, Performer is unable to match the
  1986.   graphics type (NEWPORT) with the hardware types it knows.  This
  1987.   effects both the installation and run-time applications.
  1988.  
  1989.   /usr/lib/libpr.a, /usr/lib/libpr-g.a, /usr/src/Performer/demo/perfly,
  1990.   and /usr/src/Performer/src/perfly/Makefile are machine-tagged in inst
  1991.   as platform-specific and will not be installed by default.
  1992.  
  1993.   WORKAROUND:  You must remove IRIS Performer 1.1 from your machine and
  1994.   re-install, explicitly defining the graphics hardware type.  LIGHT
  1995.   (Entry) graphics is the closest approximation to NEWPORT.
  1996.  
  1997.           % su
  1998.           # versions remove performer_eoe
  1999.           # versions remove performer_dev
  2000.           # inst -f <pathname> -m GFXBOARD=LIGHT
  2001.  
  2002. ------------------------------
  2003.  
  2004. Subject:   -99- 1.1 Bug Unable to determine Indy graphics type
  2005. Date: 8 Apr 94 00:00:01 EST
  2006.  
  2007.   Performer 1.1 applications on Indy display the message: "unable to
  2008.   determine graphics type -1.  Default: VENICE"
  2009.  
  2010.   WORKAROUND:  The above message means that Performer was unable to
  2011.   match NEWPORT graphics to a known graphics type, and has defaulted to
  2012.   VENICE (RealityEngine).  This could cause some anomalous behavior in
  2013.   your application.  There is no specific workaround at this time.
  2014.  
  2015. ------------------------------
  2016.  
  2017. Subject:  -100- 1.1 Bug perfly cannot find libpf.so on Indy running 5.1
  2018. Date: 8 Apr 94 00:00:01 EST
  2019.  
  2020.   /usr/src/Performer/demo/perfly fails with the error message:
  2021.   "perfly: rld: Fatal Error: cannot find soname 'libpf.so'"
  2022.  
  2023.   WORKAROUND:  You must recompile perfly from the source code provided
  2024.   in /usr/src/Performer/src/perfly.
  2025.  
  2026. ------------------------------
  2027.  
  2028. Subject:  -101- 1.1 Bug perfly FP error messages in 5.0.1
  2029. Date: 8 Apr 94 00:00:01 EST
  2030.  
  2031.   perfly prints the following error message(s) several times each
  2032.   frame:
  2033.  
  2034.       "Performer Info:FP division by zero"
  2035.       "Performer Info:FP infinity minus infinity"
  2036.  
  2037.   WORKAROUND:  This is caused by a bug in IRIS GL and is not a fatal
  2038.   error.  Run perfly with the "-n 2" option to disable these (and any
  2039.   other) informational messages.
  2040.  
  2041. ------------------------------
  2042.  
  2043. Subject:  -102- 1.1 Bug Installation on IRIX 5.2 - missing prerequisites
  2044. Date: 8 Apr 94 00:00:01 EST
  2045.  
  2046.   When trying to install IRIS Performer 1.1 on a machine running IRIX
  2047.   5.2, you will get an error regarding a missing prerequisite,
  2048.   "dev.sw.libC".  This subsystem contained the C++ runtime library.  In
  2049.   5.2 it has been renamed to "c++_eoe.sw.lib".
  2050.  
  2051.   WORKAROUND:  'set rulesoverride on' from within inst.
  2052.  
  2053. ------------------------------
  2054.  
  2055. Subject:  -103- 1.0/1.1 Bug intersections with pfSwitch'es
  2056. Date: 26 Oct 93 00:00:01 EST
  2057.  
  2058.   Intersections with pfSwitch'es whose value is PFSWITCH_OFF could
  2059.   cause a core dump.
  2060.  
  2061. ------------------------------
  2062.  
  2063. Subject:  -104- 1.0/1.1 Bug with pfTexture()
  2064. Date: 26 Oct 93 00:00:01 EST
  2065.  
  2066.   On RealityEngine systems, EXTERNAL format was ignored.
  2067.  
  2068. ------------------------------
  2069.  
  2070. Subject:  -105- 1.0/1.1 Bug with pfAntiAlias()
  2071. Date: 26 Oct 93 00:00:01 EST
  2072.  
  2073.   On RealityEngine systems, pfAntialias(PFAA_OFF) did not turn off
  2074.   multisampling.
  2075.  
  2076. ------------------------------
  2077.  
  2078. Subject:  -106- 1.0/1.1 Bug with pfFlatten()
  2079. Date: 26 Oct 93 00:00:01 EST
  2080.  
  2081.   pfFlatten did not dirty bounding spheres of flattened nodes so they
  2082.   had improper bounds and would not cull correctly.
  2083.  
  2084. ------------------------------
  2085.  
  2086. Subject:  -107- 1.0/1.1 Bug with pfSequences
  2087. Date: 26 Oct 93 00:00:01 EST
  2088.  
  2089.   pfSequences: PFSEQ_RESUME ignored children's display times and drew
  2090.   subsequent children for 1 frame only.
  2091.  
  2092. ------------------------------
  2093.  
  2094. Subject:  -108- 1.0/1.1 Bug with pfClosestPtOnPlane()
  2095. Date: 26 Oct 93 00:00:01 EST
  2096.  
  2097.   pfClosestPtOnPlane returned wrong result.  Also, the man page had the
  2098.   wrong prototype.
  2099.  
  2100. ------------------------------
  2101.  
  2102. Subject:  -109- 1.0/1.1 Bug on ELAN/XS with wireframe PFGS_QUADS
  2103. Date: 26 Oct 93 00:00:01 EST
  2104.  
  2105.   On EXPRESS Graphics platforms (XS, XS24, ELAN, etc), wireframe quads
  2106.   have a stray line from one vertex to "infinity" when displayed in
  2107.   wireframe mode.
  2108.  
  2109. ------------------------------
  2110.  
  2111. Subject:  -110- 1.0/1.2-IRIX4 Bug Z buffer configuration on 4.0.5
  2112.                 RealityEngine
  2113. Date: 8 Apr 94 00:00:01 EST
  2114.  
  2115.   Z buffer config on 4.0.5 RealityEngine: On some versions of IRIX
  2116.   4.0.5, mssize(4,24,1) (the default by pfAntiAlias) generates an
  2117.   unusable Z configuration.  For these machines, call mssize(4,32,1)
  2118.   followed by gconfig() in your pipe initialization routine and do not
  2119.   attempt to toggle antialiasing.
  2120.  
  2121. ------------------------------
  2122.  
  2123. Subject:  -111- 1.0 Bug pfInit(): mmap failed for /dev/zero
  2124. Date: 26 Oct 93 00:00:01 EST
  2125.  
  2126.   This means that you tried to run a Performer 1.0 application (such
  2127.   as a 4.x version of perfly) on a machine running IRIX 5.x.  Virtual
  2128.   memory management is different in IRIX 5.x.  In order for your
  2129.   program to work properly you must:
  2130.  
  2131.      % setenv PFTMPDIR /usr/tmp
  2132.  
  2133. ------------------------------
  2134.  
  2135. Subject:  -112- 1.0 Doc Bug in pfMakePolarSeg() man page
  2136. Date: 26 Oct 93 00:00:01 EST
  2137.  
  2138.   The man page for pfMakePolarSeg contradicts itself with respect to
  2139.   the meaning of azimuth and elevation. The correct paragraph should
  2140.   be:
  2141.  
  2142.     pfMakePolarSeg sets dst to the segment which starts at pos and
  2143.     has length length and points in the direction specified by azi
  2144.     and elev.  azi specifies the azimuth (or heading), which is the
  2145.     angle which the projection of the segment in the X-Y plane
  2146.     makes with the +Y axis.  elev specifies the elevation (or
  2147.     pitch), the angle with respect to the X-Y plane.  The positive
  2148.     Y axis is azi=0 and elev=0.  Azimuth follows the right hand
  2149.     rule about the +Z azis, e.g. -  +90 degrees is the -X axis.
  2150.     Similarly, elevation follows the right hand rule about the X
  2151.     axis, e.g. -  +90 degrees is the +Z axis.
  2152.  
  2153.   Note that in IRIS Performer 1.0, an azi and elev of 0.0 is equivalent
  2154.   to the +X axis while in 1.1, this has been changed to the +Y axis.
  2155.  
  2156. ------------------------------
  2157.  
  2158. Subject:  -113- 1.0 Doc Bug in pfDispList() man page
  2159. Date: 26 Oct 93 00:00:01 EST
  2160.  
  2161.   The pfDispList man page says the size argument is in bytes; it should
  2162.   say words.
  2163.  
  2164. ------------------------------
  2165.  
  2166. Subject:  -114- 1.0 Doc Bug in PFPG (simple.c)
  2167. Date: 26 Oct 93 00:00:01 EST
  2168.  
  2169.   The program simple.c in the IRIS Performer Programming Guide (PFPG)
  2170.   does not bind a light and draws a black image on Elan systems.  The
  2171.   corrected version, which creates and binds a light in the pipe
  2172.   initialization callback, is in /usr/src/Performer/src/pguide
  2173.  
  2174. ------------------------------
  2175.  
  2176. Subject:  -115- 1.0 Bug in pfGetTime()
  2177. Date: 26 Oct 93 00:00:01 EST
  2178.  
  2179.   In 1.0, pfGetTime() would occasionally return bad values (off by
  2180.   4000+ seconds) on Indigo2 and machines without a fast counter, e.g.
  2181.   PowerSeries/IO2.
  2182.  
  2183.   There was no workaround.
  2184.  
  2185. ------------------------------
  2186.  
  2187. Subject:  -116- 1.0 Bug in pfNodeBBox()
  2188. Date: 26 Oct 93 00:00:01 EST
  2189.  
  2190.   pfNodeBBox did not set the bounding box of a node.  A symptom was
  2191.   that the bounding boxes of the node would not change when modifying a
  2192.   parent pfDCS.
  2193.  
  2194.   The workaround was to OR the value 0x0010 into the mode, e.g.-
  2195.  
  2196.      pfNodeBBox(node, &bbox, PFN_BMODE_STATIC | 0x0010);
  2197.  
  2198. ------------------------------
  2199.  
  2200. Subject:  -117- 1.0 Bug in pfInitGfx() with Z-buffer on RealityEngine
  2201. Date: 26 Oct 93 00:00:01 EST
  2202.  
  2203.   pfInitGfx on RealityEngines would call lsetdepth(0x0, 0x0),
  2204.   essentially disabling zbuffering.
  2205.  
  2206.   The workaround was to call lsetdepth explicitly after pfInitGfx, in
  2207.   the pipe initialization callback.
  2208.  
  2209. ------------------------------
  2210.  
  2211. Subject:  -118- 1.0 Bug in libpfflt combineLODs()
  2212. Date: 26 Oct 93 00:00:01 EST
  2213.  
  2214.   combineLODs() in the MultiGen .flt converter (in file hier.c) did not
  2215.   set the LOD center of combined LODs.  This would result in strange
  2216.   LOD behavior for LODs which were not modelled about the origin.
  2217.  
  2218.   (The current OpenFlight loader, revision R14_2, correctly uses the
  2219.    center when combining LODs and can combine any number of sibling
  2220.    LOD's for improved efficiency.)
  2221.  
  2222. ------------------------------
  2223.  
  2224. Subject:  -119- 1.0 Bug with two-sided material and pfMtlColorMode()
  2225. Date: 26 Oct 93 00:00:01 EST
  2226.  
  2227.   Applying a back-sided material which had a color mode
  2228.   (pfMtlColorMode), would set the GL lmcolor mode. Since IrisGL does
  2229.   not support lmcolor for back-sided materials, this could have caused
  2230.   front-sided materials to use an improper lmcolor mode.
  2231.  
  2232. ------------------------------
  2233.  
  2234. Subject:  -120- 1.0 Bug in pfFilePath()
  2235. Date: 26 Oct 93 00:00:01 EST
  2236.  
  2237.   pfFilePath would exit with a FATAL error if it was called twice.
  2238.  
  2239. ------------------------------
  2240.  
  2241. Subject:  -121- 1.0 Bug in pfGetCurGState()
  2242. Date: 26 Oct 93 00:00:01 EST
  2243.  
  2244.   pfGetCurGState returned a pfGeoState which was the top of the state
  2245.   stack rather than the most recently applied pfGeoState.
  2246.  
  2247. ------------------------------
  2248.  
  2249. Subject:  -122- 1.0 Bug in pfGetCurState()
  2250. Date: 26 Oct 93 00:00:01 EST
  2251.  
  2252.   pfGetCurState returned a pfGeoState which was the top of the state
  2253.   stack rather than the current pfState.
  2254.  
  2255. ------------------------------
  2256.  
  2257. Subject:  -123- 1.0 Bug with cloned scenes
  2258. Date: 26 Oct 93 00:00:01 EST
  2259.  
  2260.   pfClone()'ed scenes were not properly cleaned and did not properly
  2261.   propagate updates.  In particular, cloned pfSequences did not work.
  2262.  
  2263. ------------------------------
  2264.  
  2265. Subject:  -124- 1.0 Bug intersections in collide.c
  2266. Date: 26 Oct 93 00:00:01 EST
  2267.  
  2268.   collide.c was shipped with a hardwired intersection mode which turned
  2269.   off intersection caching, substantially reducing intersection
  2270.   performance.
  2271.  
  2272. ------------------------------
  2273.  
  2274. Subject:  -125- 1.0 Bug with flattened pfLightPoints
  2275. Date: 26 Oct 93 00:00:01 EST
  2276.  
  2277.   pfFlatten()'ed pfLightPoints were broken for multiprocessing modes
  2278.   when the application and cull processes were separate.
  2279.  
  2280. ------------------------------
  2281.  
  2282. Subject:  -126- 1.0 Bug intersections with pfSequences
  2283. Date: 26 Oct 93 00:00:01 EST
  2284.  
  2285.   Intersections with pfSequences could sometimes turn them off
  2286.   (PFSEQ_STOP).
  2287.  
  2288. ------------------------------
  2289.  
  2290. Subject:  -127- 1.0 Bug intersections with non-indexed quads
  2291. Date: 26 Oct 93 00:00:01 EST
  2292.  
  2293.   Intersection caching for non-indexed quads was broken and could case
  2294.   a core dump when intersection with pfGeoSets of this type.
  2295.  
  2296.  
  2297. ------------------------------
  2298.  
  2299. End of sgi/faq/performer Digest
  2300. ******************************
  2301. -- 
  2302. The SGI FAQ group <sgi-faq@viz.tamu.edu>   http://www-viz.tamu.edu/~sgi-faq/
  2303. Finger us for info on the SGI FAQs, or look in ftp://viz.tamu.edu/pub/sgi/.
  2304.