seth@miro.Berkeley.EDU (Seth Teller) (12/12/90)
does anyone know if the size of the gl feedback buffer, as passed by the caller of feedback(), is limited (and if so, why and to what value it is limited)? i'm seeing the errors ERROR #103 feedback: ERR_FEEDBUFTOOBIG ERROR #17 endfeedback: ERR_NOTINPICK with a 128k buffer (size = 64k shorts). i suppose the second line is really ERR_NOTINFEEDBACK, but the name assumes people doing feedback are doing picking (i'm not). [i did try R'ing TFM, but didn't find anything useful.] second question: are the ERR_* tokens and their meanings described anywhere? thanks, seth
Dan Karron@UCBVAX.BERKELEY.EDU (12/15/90)
My understanding from TFM and sgi is that they don't want people using the feedback buffer. I had major problems migrating from 2400, 3000 class machines to the risc machine because I used the geometry pipeline to overcome cpu bottlenecks. I would now use another cpu thread before I would use the pipeline. Besides, you have to wait for the answer from the pipeline, and that ruins any parallelism you might get from the pipeline. If you are doing picking and pruning, what we need is a "parallel non screen" geometry pipeline. What I mean is a process running on another threaded cpu to do the same geometry operations on your data stream (matrix xformation and picking/pruning). The output would not go to the video processor, but would return values about visibility. This would be really nice for robotics app's where you need to know if there is a line of sight between two points on arbitrary shapes in arbitrary orientations. Eventually, we will need one cpu for each point to scan w/r/t the rest of the domain of points. Cheers! +-----------------------------------------------------------------------------+ | karron@nyu.edu (E-mail alias that will always find me) | | Fax: 212 340 7190 * Dan Karron, Research Associate | | . . . . . . . . . . . . . . * New York University Medical Center | | 560 First Avenue \*\ Pager <1> (212) 397 9330 | | New York, New York 10016 \**\ <2> 10896 <3> <your-number-here> | | (212) 340 5210 \***\_________________________________________ | | Main machine: karron.med.nyu.edu (128.122.135.3) IRIS 85GT | +-----------------------------------------------------------------------------+
seth@miro.Berkeley.EDU (Seth Teller) (12/17/90)
In article <9012151528.AA06259@karron.med.nyu.edu> karron@cmcl2.nyu.edu writes: >My understanding from TFM and sgi is that they don't want people using the >feedback buffer.... [Y]ou have to wait for the answer from the >pipeline, and that ruins any parallelism you might get from the pipeline. >Cheers! [guess who this msg was from-- ed.] i'm not sure what it means for sgi not to 'want' us to do something... does that mean we shouldn't do it? as for using feedback, i'm using it precisely because it's the ONLY way to get what i need (a description of the graphics that appear in my window, in screen coords), short of emulating the entire pipe in (my own) software. the context is that, with feedback, it's easy to write a package that transforms gl program output into stuff suitable for page description languages like postscript. yes, gl() is a pdl too; but it's got to be filtered by addition of viewpoint, lighting, clipping, etc. to be worth anything statically. so, can anyone answer my original questions? what are the size limitations on feedback? why is the buffer size limited? can this be gotten around? for example, if i'm drawing a NURBS surface and want all the polygons back, how can i avoid overflowing the buffer? [splitting the surface into subregions and drawing them separately won't work for me, due to technical reasons that i can't go into here.] seth
" ratcliffe) (12/18/90)
In article <9676@pasteur.Berkeley.EDU> seth@miro.Berkeley.EDU (Seth Teller) writes: >does anyone know if the size of the gl feedback buffer, as passed by >the caller of feedback(), is limited (and if so, why and to what value >it is limited)? i'm seeing the errors not sure about this--hopefully one of the GL godz will resp... > >ERROR #103 feedback: ERR_FEEDBUFTOOBIG >ERROR #17 endfeedback: ERR_NOTINPICK 17 ERR_NOTINPICK: string = "ERR_NOTINPICK" -program not in pick mode when trying to endfeedback or endpickorselect mode > >with a 128k buffer (size = 64k shorts). i suppose the second >line is really ERR_NOTINFEEDBACK, but the name assumes people >doing feedback are doing picking (i'm not). [i did try R'ing TFM, >but didn't find anything useful.] unfortunately not--TFM is still somewhat lobotomized..... >second question: are the ERR_* tokens and their meanings described >anywhere? they were published in the March/April 1990 Issue of the "Pipeline", put out by Customer Support Division (CSD). ALL CUSTOMERS WITH SUPPORT CONTRACTS ARE SUPPOSED TO BE ON THE SUBSCRIPTION LIST FOR THIS DOCUMENT. If yer not getting it, but wud like to, try e-mailing "pipeline@csd.sgi.com", or writing to Silicon Graphics, Inc. M/S 12L-190 2011 N. Shoreline Blvd. Mountain View, CA 94039 Attn: Peter Lonsky The following is a copy of that list. Unfortunately, the list taps out at # 99.... (it was created more than 2 years ago by that famed magician and con man, Miq Millman, and of course the GL just keeps growin' on...) so basically yer just a leetle too inquisitive seth--i think we're gonna have to send the brain police out after you and try to plug up this annoying "leak" in the fabric of the "facade".... ------------- FROM the March/April CSD Pipeline Newsletter ------------------ GRAPHICS LIBRARY ERROR MESSAGES This is a canonical list of the error messages used in the graphics library. The list was compiled by taking the list of errors from the file error.h in /usr/include/gl and then searching through the source tree for locations of each error message. Then, by looking at the code, it was determined what the error messages *really* meant. The errors are listed according to the numerical value they were given in the file errors.h. 1 ERR_SINGMATRIX: string = "ERR_SINGMATRIX" -the matrix given cannot be inverted. Usually done by scaling a zero value. (setting near and far planes to 0) 2 ERR_OUTMEM: string = "ERR_OUTMEM" -ran out of memory, malloc failed. 3 ERR_NEGSIDES: string = "ERR_NEGSIDES" -program tried to generate a polygon with less than zero sides (ie. negative) 4 ERR_BADWINDOW: string = "ERR_BADWINDOW" -probably the values for {left-right|top-bottom|far-near} were switched. left, top and far must be greater than right bottom and near values. 5 ERR_NOOPENOBJ: string = "ERR_NOOPENOBJ" -program tried to edit an object when there wasn't any object to edit. 6 ERR_NOFONTRAM: string = "ERR_NOFONTRAM" _OBSOLETE_ 7 ERR_FOV: string = "ERR_FOV" -fovy must be greater than 1.0 and less than or equal to 1800. (note: the fovy should be ten times the angle than is the result of the tangent of the window width and the distance from viewer to screen for best results. (ie. fovy for a full screen seen 2 feet away should be about 337 (inverse tan of 16/24)) 8 ERR_BASISID: string = "ERR_BASISID" -the pointers to the matricies being for precision or curve type {bspline| cardinal|bezier} being used are not equivalent or the pointer is null. Also, possibly one of the basis id's was not found. using undefined basis number. 9 ERR_NEGINDEX: string = "ERR_NEGINDEX" _OBSOLETE_ 10 ERR_NOCLIPPERS: string = "ERR_NOCLIPPERS" _OBSOLETE_ 11 ERR_STRINGBUG: string = "ERR_STRINGBUG" _OBSOLETE_ 12 ERR_NOCURVBASIS: string = "ERR_NOCURVBASIS" -basis for the curve must be set before drawing the curve 13 ERR_BADCURVID: string = "ERR_BADCURVID" _OBSOLETE_ 14 ERR_NOPTCHBASIS: string = "ERR_NOPTCHBASIS" -basis for the patch must be set before drawing the patch 15 ERR_FEEDPICK: string = "ERR_FEEDPICK" _OBSOLETE_ 16 ERR_INPICK: string = "ERR_INPICK" -program already picking, can't try to pick twice at same time 17 ERR_NOTINPICK: string = "ERR_NOTINPICK" -program not in pick mode when trying to endfeedback or endpickorselect mode 18 ERR_ZEROPICK: string = "ERR_ZEROPICK" -the size of the picking region is non-positive 19 ERR_FONTBUG: string = "ERR_FONTBUG" _OBSOLETE_ 20 ERR_INRGB: string = "ERR_INRGB" -program tried to set mapcolor or writemask while in RGBmode 21 ERR_NOTINRGBMODE: string = "ERR_NOTINRGBMODE" -program tried to use a RGBmode routine while not in RGBmode 22 ERR_BADINDEX: string = "ERR_BADINDEX" -color is not within valid index range 23 ERR_BADVALUATOR: string = "ERR_BADVALUATOR" -program tried to use a non-existing valuator 24 ERR_BADBUTTON: string = "ERR_BADBUTTON" -program tried to access an illegal button number. 25 ERR_NOTINDBMODE: string = "ERR_NOTINDBMODE" -program should be in dial button box mode to call current procedure 26 ERR_BADINDEXBUG: string = "ERR_BADINDEXBUG" _OBSOLETE_ ??? 27 ERR_ZEROVIEWPORT: string = "ERR_ZEROVIEWPORT" -The values for {x1|y1} are larger than {x2|y2} in the definition of screencoords. Thus, the size of the viewport is too small. 28 ERR_DIALBUG: string = "ERR_DIALBUG" _NEVER HAPPEN_ 29 ERR_MOUSEBUG: string = "ERR_MOUSEBUG" _NEVER HAPPEN_ 30 ERR_RETRACEBUG: string = "ERR_RETRACEBUG" _NEVER HAPPEN_ 31 ERR_MAXRETRACE: string = "ERR_MAXRETRACE" -program tried to execute more than the maximum number of retrace events allowed. 32 ERR_NOSUCHTAG: string = "ERR_NOSUCHTAG" -the tag chosen is not in the hash table or at the beginnning of the object set up. It cannot be found. 33 ERR_DELBUG: string = "ERR_DELBUG" _OBSOLETE_ 34 ERR_DELTAG: string = "ERR_DELTAG" -program tried to delete a nonexistent or incorrect tag 35 ERR_NEGTAG: string = "ERR_NEGTAG" -object tag is less than zero. 36 ERR_TAGEXISTS: string = "ERR_TAGEXISTS" -program tried to create an object with an index number that already exists 37 ERR_OFFTOOBIG: string = "ERR_OFFTOOBIG" -offset is too large, program tried tostep beyond edge of object 38 ERR_ILLEGALID: string = "ERR_ILLEGALID" -program tried to make an object with an id that is negative 39 ERR_GECONVERT: string = "ERR_GECONVERT" _OBSOLETE_ 40 ERR_BADAXIS: string = "ERR_BADAXIS" -Axis must be named with {x|X|y|Y|z|Z} anything else will give this error 42 ERR_BADDEVICE: string = "ERR_BADDEVICE" -the graphics manager couldn't be reached. This is a fatal error. 44 ERR_PATCURVES: string = "ERR_PATCURVES" _OBSOLETE_ 45 ERR_PATPREC: string = "ERR_PATPREC" _OBSOLETE_ 46 ERR_CURVPREC: string = "ERR_CURVPREC" _OBSOLETE_ 47 ERR_PUSHATTR: string = "ERR_PUSHATTR" -the attribute stack is full, pop or clear attribute stack first. check for unbalanced code. 48 ERR_POPATTR: string = "ERR_POPATTR" -the attribute stack is empty, something must be put there first. check for unbalanced code. 49 ERR_PUSHMATRIX: string = "ERR_PUSHMATRIX" -the matrix stack is full. Clear or pop first. check for unbalanced code. 50 ERR_POPMATRIX: string = "ERR_POPMATRIX" -the matrix stack is empty, something must be put there first. check for unbalanced code. 51 ERR_PUSHVIEWPORT: string = "ERR_PUSHVIEWPORT" -the viewport stack is full, pop or clear viewport stack first. check for unbalanced code. 52 ERR_POPVIEWPORT: string = "ERR_POPVIEWPORT" -the viewport stack is empty, something must be put there first. check for unbalanced code. 53 ERR_SIZEFIXED: string = "ERR_SIZEFIXED" -object size is frozen, chunksize cannot change after start of object def 54 ERR_SETMONITOR: string = "ERR_SETMONITOR" _OBSOLETE_ {illegal monitor type?} 55 ERR_CHANGEINDEX0: string = "ERR_CHANGEINDEX0" -program was trying to redefine the default style of {line|cursor|font|etc}, change index 0 to some other value. 56 ERR_BADPATTERN: string = "ERR_BADPATTERN" -bad size of pattern, only use 16, 32 or 64 57 ERR_CURSORNOTFOUND: string = "ERR_CURSORNOTFOUND" -An invalid cursor name was given, check and change value. 58 ERR_FONTHOLES: string = "ERR_FONTHOLES" _OBSOLETE_ 59 ERR_REPLACE: string = "ERR_REPLACE" -program tried to replace past end of object. 60 ERR_STARTFEED: string = "ERR_STARTFEED" _OBSOLETE_ 61 ERR_CYCLEMAP: string = "ERR_CYCLEMAP" _OBSOLETE_ 62 ERR_TAGINREPLACE: string = "ERR_TAGINREPLACE" -program tried to make a tag in replace mode. only replace graphics cmds 63 ERR_TOOFEWPTS: string = "ERR_TOOFEWPTS" -the program tried to create a rational curve with less than 4 points. 64 ERR_UNDEFINEDCHAR: string = "ERR_UNDEFINEDCHAR" _OBSOLETE_ 65 ERR_BADCURSOR: string = "ERR_BADCURSOR" -bad size, only use 16, or 32 or default cursor types 66 ERR_NOTINCOLORMODE: string = "ERR_NOTINCOLORMODE" -To use getcursor, program must be in proper mode. _OBSOLETE_ 67 ERR_UNKNOWNCMDLENGTH: string = "ERR_UNKNOWNCMDLENGTH" -routine fell through the case statement for checking size of number of polygon points. New command must be same length as the old command. 68 ERR_INFEEDBACK: string = "ERR_INFEEDBACK" -program trying to enter feedback when in feedback mode. 69 ERR_DURINGFEEDBACK: string = "ERR_DURINGFEEDBACK" -program trying to exit feedback when not in feedback. 70 ERR_DURINGSELECT: string = "ERR_DURINGSELECT" -system failure occurred in endpick 71 ERR_ARGMISMATCH: string = "ERR_ARGMISMATCH" -buffer specified in endfeedback, endpickorselect, must be same as buffer started with 72 ERR_TOOMANYARGS: string = "ERR_TOOMANYARGS" -program tried to use more than ten arguments in a function call. This is a system error. 73 ERR_OBJNOTFOUND: string = "ERR_OBJNOTFOUND" -there is no header or no valid header in the object the program called. object was invalid. 74 ERR_MAKEROOMINREPLACEMODE: string = "ERR_MAKEROOMINREPLACEMODE" -program tried to reorganize display list entries while in replace mode. This is a system error. 75 ERR_UNABLETOOPEN: string = "ERR_UNABLETOOPEN" -The gid value given to the hardware is invalid or less than 0. 76 ERR_QUEUINGDEVICE: string = "ERR_QUEUINGDEVICE" _Not implimented in the graphics library as an error message_ -program tried to queue a nonexisting device 77 ERR_UNQUEUINGDEVICE: string = "ERR_UNQUEUINGDEVICE" _Not implimented in the graphics library as an error message_ -program tried to unqueue a nonexisting device 78 ERR_GETBUTTONERROR: string = "ERR_GETBUTTONERROR" _Not implimented in the graphics library as an error message_ -program tried to get a nonexisting button value 79 ERR_GETVALUATORERROR: string = "ERR_GETVALUATORERROR" _Not implimented in the graphics library as an error message_ -program tried to get an invalid valuator 80 ERR_SETVALERROR: string = "ERR_SETVALERROR" _Not implimented in the graphics library as an error message_ -program tried to set an invalid valuator 81 ERR_TIEERROR: string = "ERR_TIEERROR" _Not implimented in the graphics library as an error message_ -program tried to tie a nonvalid device id 82 ERR_NOISEERROR: string = "ERR_NOISEERROR" _Not implimented in the graphics library as an error message_ 83 ERR_ATTACHCURSOR: string = "ERR_ATTACHCURSOR" _Not implimented in the graphics library as an error message_ 84 ERR_MAPDEVICE: string = "ERR_MAPDEVICE" _Not implimented in the graphics library as an error message_ 85 ERR_WINATTACH: string = "ERR_WINATTACH" _Not implimented in the graphics library as an error message_ _OBSOLETE_ 86 ERR_NOSUCHWINDOW: string = "ERR_NOSUCHWINDOW" -program tried to switch to or close an invalid window. 87 ERR_CLOSEDLASTWINDOW: string = "ERR_CLOSEDLASTWINDOW" _Not implimented in the graphics library as an error message_ 88 ERR_LINESTYLENOTFOUND: string = "ERR_LINESTYLENOTFOUND" _Not implimented in the graphics library as an error message_ 89 ERR_PATTERNNOTFOUND: string = "ERR_PATTERNNOTFOUND" _Not implimented in the graphics library as an error message_ 90 ERR_NULLWSINCLONING: string = "ERR_NULLWSINCLONING" _Not implimented in the graphics library as an error message_ 91 ERR_USERERROR: string = "ERR_USERERROR" -general error message, used for anything that won't fit in other messages 92 ERR_NOFONTFOUND: string = "ERR_NOFONTFOUND" -the name of the font given was not found, check the list in /usr/lib/fmfonts 93 ERR_WMANIPC: string = "ERR_WMANIPC" -message being sent to the window manager was too large. 94 ERR_INPUTOPEN: string = "ERR_INPUTOPEN" _Not implimented in the graphics library as an error message_ 95 ERR_RESETINGQ: string = "ERR_RESETINGQ" _Not implimented in the graphics library as an error message_ -program tried to reset a nonvalid queue id 96 ERR_GETTP: string = "ERR_GETTP" -program tried to access an invalid textport id 97 ERR_TOOMANYSIDES: string = "ERR_TOOMANYSIDES" -program tried to create a polygon with more than 255 verticies. 98 ERR_INVALIDMODE: string = "ERR_INVALIDMODE" _Not implimented in the graphics library as an error message_ _NEVER SEEN_ -program tried to enter an invalid mode 99 ERR_INVALIDPARENT: string = "ERR_INVALIDPARENT" -there is no parent state for current window. -- daveus rattus yer friendly neighborhood ratman KOYAANISQATSI ko.yan.nis.qatsi (from the Hopi Language) n. 1. crazy life. 2. life in turmoil. 3. life out of balance. 4. life disintegrating. 5. a state of life that calls for another way of living. -- -- daveus rattus yer friendly neighborhood ratman