CompuServe Thread

#Draft Summary #1

7 messages in this thread
#97028From: Jonas Ruikis [ADESK]Apr 14, 1994 1:07 AM
Here is a *rough* draft of some of the topics extracted from the threads that I can bring up at the meeting. Favorites? I know it looks brief but I imagine some of it will ring a bell if you've run into it recently. I'm listing an issue and some _possible_ responces. Please contribute. The numbers closely +-(a few) correspond to the IPASOPEN.zip file in the lib. I'll thank you now. jonas[adesk] ———————– #1. Filefind on "draw_radio_group() #4. Filefind on "gfx_get_path() a. Verify with Gus of no workaround #9. Filefind on "EXP_Pick_Object" #11.Invalid KXP opcode: 0x0000 a. Verify QA bug report b. Verify with Gus #21.pxp_draw_item affects displayed screen a. Verify QA bug report #22.pg 90. "Strings" a. Verify QA bug report #25.Missing easeFrom after KXPVecKey KXPRotKey a. filefind b. provide code example c. IPAS3.5 #27.KXPScalarKey structure in header vs. pg 58 a. verify IPAS3 code/docs b. QA bug report #24.. see #24 for jitter #5. Unreasonable page faults. (related to #8) a. Yost explanation b. John Foust verification of state #8. Unreasonable page faults (related to #5) a. Verify with everyone b. Filefind pxp_draw_item() b1. Verify with Danny c. Filefind XVData & XFData d. Verify QA bug report #6. 3d.h quat.h a. provide source b. provide documentation for RelScaleRow,ComputePlaneEqn TMPreTranslate c. TMatrix spin direction #7. PXP calls from AXP's a. provide source #12.Quarternian routines documented (Similar to #6) a. Provide source b. provide code examples #15.Dialog menu loaded with more than 10 entries. a. Call Don b. provide code example #30.Multiple Menues(similar to #15) a. provide code example #16.Toggle the cursor while in direct call dialog a. provide code example #17.How to implement slave only demos a. provide code example #18.How to set the default color of a single button to red a. provide code example #23.How several copies of an SXP loaded into memory can see different state variables a. Verify with Martin Enthed #26.FOV ie. accurate positioning a. John Walker's comments on CAMUPVECTOR b. tutorial c. rationally specified camera into 3ds data #19.How to use kxp_update_path and kxp_prep_node correctly a. provide code example #24.kxp_interpolate_key, kxp_prep_node and kxp_update_paths (similar to #14) b. provide code example c. provide documentation d. QA responce to jitter.prj #28.Relationship between object locations and matrices and correct models in the Editor and Keyframer(similar to 24, 19, 14, 3) a. provide tutorial b. provide explanation c. provide code example #13.Missing KXP structures to control FOV or ROLL a. IPAS 3.5(?) #29.Create a new material definition a. code example
#97045From: Gus GrubbaApr 14, 1994 4:31 AM
A couple of quick notes: Regarding the gfx_get_path() function (old question). That's not a bug. It was just a misunderstanding. When I read "GFX_3DS_PATH" I was thinking of being able to get 3D Studio's "root" path. The function (as the name implies) returns the current ".3DS" mesh file path (the directory you read a 3DS file last from). The open issue in this case is the lack of a parameter that would return 3D Studio's "root" dir. This is very important if I need to read either 3DS.SET or 3DSNET.SET. Regarding the quartenian ordeal I had a while ago. All the information I needed was in a book called "3D Computer Animation" by John Vince. This book is published by Addison-Wesley. That's where I found the discussion about using quartenians for rotation and lots of other useful tidbits of information. The quartenian (and rotation) text fully explains items #28 and #12. It partially explains #6. If John hasn't solved his memory problem I could take a look at it as I have some idea what could be causing (lack of sleep? <g>)
#97070From: Jonas Ruikis [ADESK]Apr 14, 1994 8:42 AM
thanks alot gus!
#97086From: SyndesisApr 14, 1994 10:11 AM
Is the "John" mentioned here "me" or someone else? I'd be glad to send you the executable for the Wavefront converter… if you could tell me how you snoop on it to deduce what's happening, I'm sure your teachings would benefit us all.
#97163From: Gus GrubbaApr 14, 1994 5:15 PM
Yes, I was talking about you. No other John is having memory problems as far as I can remember (am I having memory problems too?) <g> Generate an executable with symbols. I need to be able to track all calls to malloc() and free(). If you do any other type of memory allocation, that applies as well.
#97089From: SyndesisApr 14, 1994 10:26 AM
I had two memory-related bug reports. The earliest was due to my expectation that 3DS was reloading a newly compiled copy of my IPAS after I'd shell'd to DOS to recompile a bug fix. Once I stopped expecting that to work, and restarted 3DS from scratch, those mysterious crashes on init went away. 🙂 The second I have yet to devote enough time to find. A more general and relevant way to describe it would be to determine the situations in which PharLap's memory management goes into page-fault virtual memory oblivion. For example, hypotheses to test include: make a small app that does thousands of small allocations, another that does realloc()s of progressively larger allocations, another that does consecutive malloc() and free(), etc. In other words, I want to know what stresses the memory manager, and if there are schemes to get around those problems. Seeing that this affects 3DS itself to the point that tech support simply recommends a restart once 3DS starts page-faulting, I'd say this is an important issue for 3DS alone, not to mention IPASes. I'd think it would be good to beef up the IPAS toolkit docs regarding the symbiotic relationship between 3DS and IPASes, regarding the preallocation and sharing of memory, how this affects the user, etc. I know what my routines are doing in terms of memory allocation. Because of testing tools I use on other platforms, I'm confident there's no problems with unmatched malloc() / free(). Some of our translators do perform a series of realloc()s on progressively larger blocks of memory. We do use a preallocation scheme that reduces the number of allocations. This is present in the Wavefront converter that first demonstrated this page-faulting behavior. But many of our converters do expect to make many thousands of smaller allocations (one per face, for the list of vertices in that face). These are not blocked or managed at any level within our app, they translate directly to malloc(). This is also a good candidate for questioning, but since all converters do this and not all converters have demonstrated this problem, I don't think this is the root cause. Maybe PharLap has some advice about this?
#97093From: Jonas Ruikis [ADESK]Apr 14, 1994 10:44 AM
John, Thanks for the detailed summary. This is the kind of material that I need. jonas[adesk]