Java Solaris Communities About Sun How to Buy United States Worldwide

MCAD/MCAE - PTC APPLICATIONS ON SUN

FAQ

Sun/PTC Faq
 



Created by Greg Nakhimovsky
Maintained by Bob Tanski

Last updated: July 12, 2007

Note: Items marked (updated) have been modified recently.
  1. Introduction
  2. How do I configure Sun graphics devices for Pro/ENGINEER?
  3. Should I start the window system in the 24-bit mode?
  4. What can I do if I still have problems?
  5. How can I get the best Pro/ENGINEER performance?
  6. What can I do with a traceback Pro/E generates when it crashes?
  7. How do I change the font size used by Pro/ENGINEER?
  8. What causes the Pro/ENGINEER system colors to be displayed improperly?
  9. How do I run Wildfire 2.0 on Solaris 10?
Relevant Links:
Platform Certifications and Required Patches for Pro/E Wildfire 4.0
Platform Certifications and Required Patches for Pro/E Wildfire 3.0
Platform Certifications and Required Patches for Pro/E Wildfire 2.0

  1. Introduction

    This FAQ is a collection of technical tips and other relevant information regarding the optimal use of PTC applications on Sun systems. It is the result of experience of many Sun engineers who have been working with Pro/ENGINEER and other PTC applications trying to get the best performance and quality on Sun systems.

    PTC applications are constantly changing (typically every few weeks), therefore some of the information in this FAQ may not be entirely up to date.

    With regards to performance, keep in mind that the advice given here does not guarantee that your performance will necessarily improve. Please use common sense and pay attention to details. Test each change separately and note the performance difference.

  2. How do I configure Sun graphics devices for Pro/ENGINEER?

    One way to determine the graphics card used in your Sun machine is to run this command:

    % /usr/sbin/prtconf -F
    /pci@1f,700000/SUNW,XVR-2500@0:kfb0

    The output contains a code name of the graphics card attached to the console (kfb in the above example).

    The following are the Sun hardware-accelerated graphics cards currently used with the Sun Solaris/SPARC systems, in reverse chronological order:

    
    Code name			Marketing name
    --------------			--------------
    KFB                             XVR-2500
    IFB3-Lite			XVR-600
    jfb				XVR-1200
    IFB-Lite+			XVR-500
    gfb, zfb			XVR-1000
    IFB-Lite			Expert3D-Lite
    IFB				Expert3D
    AFB				Elite3D
    double-buffered FFB2+	        Creator3D Series 3
    
    

    If the output does not contain any of the above code names, it means that your system does not have a hardware-accelerated 3D graphics card installed that is certified to work with Pro/E.

    To determine which hardware platforms are certified to work with specific versions of Pro/E see: PTC Hardware Support Pages

    To configure the graphics card for Pro/E, do the following.

    If you have configured the window system to use the 24-bit mode, or if you are using the XVR-1000 (gfb, zfb) card, no further configuration is necessary.

    Otherwise, use the following recommendations.

    For Expert3D or later graphics cards (code names IFB, IFB-Lite, IFB-Lite+, IFB3-Lite, or jfb), run these commands (either as root or as the user who logged the windowing system.):

    fbconfig -defaults (to make sure all defaults are used)
    fbconfig -defoverlay true

    This will configure the graphics card for overlay planes to be used with Pro/E menus and dialog boxes correctly. In addition, this will prevent repainting of the main graphics window when Pro/E menus and dialog boxes overlap it.

    For Elite3D (code name AFB, AFB-Lite), the corresponding commands are:

    afbconfig -defaults (to make sure all defaults are used)
    afbconfig -defoverlay true -extovl enable

    The "-extovl enable" setting will help prevent color-flashing.

    For Creator3D series 3 (code names FFB2+), run the following commands:

    ffbconfig -defaults (to make sure all defaults are used)
    ffbconfig -defoverlay true
    ffbconfig -extovl enable

    This setting will help prevent color-flashing.

    For these changes to take effect, restart the window system by logging out and then logging in again.

    These fbconfig/afbconfig/ffbconfig settings are only needed to be set once. They will persist across window system restarts and reboots.

    To find out exactly what version of the graphics card you have, run one of the following commands:

    Expert3D or later:	fbconfig  -prconf
    Elite3D:		afbconfig -prconf
    Creator3D:		ffbconfig -prconf
    

    To make sure your configuration is correct, run one of the following commands:

    Expert3D or later:	fbconfig  -propt
    Elite3D:		afbconfig -propt
    Creator3D:		ffbconfig -propt
    

    The output should say (among other things):

    Default Visual: Non-Linear Overlay Visual (word Overlay is important)
    Extended Overlays: enabled

    Dual-headed configurations are supported starting with Pro/E Wildfire. If you have two graphics cards and two monitors connected to your system, you can run two PTC graphics applications at the same time, for example two sessions of Pro/E.

    To configure dual-heads, add the following to the last line of file /etc/dt/config/Xservers (If /etc/dt/config/Xservers does not exist, copy /usr/dt/config/Xservers to /etc/dt/config/Xservers):

    -dev /dev/fb0:/dev/fb1

    To configure the graphics card correctly for the second head:
    fbconfig -dev /dev/fb1 -defoverlay true

  3. Should I start the window system in the 24-bit mode?

    Starting with Pro/E Wildfire, we recommend that you start the window system in 24-bit mode. Also, if you use JDS/GNOME instead of CDE, configuring the window system in the 24-bit mode is a very good idea.

    For the earlier versions of Pro/E, and if you are not using JDS/GNOME, the answer depends on whether you experience color-flashing with the default 8-bit mode or not. If you don't see color-flashing the answer is no. You'll probably be better off using the default 8-bit mode.

    With JDS/Gnome or CDE, you can start the window system in the 24-bit mode by adding "-dev /dev/fb defdepth 24" to the end of the last line of file /etc/dt/config/Xservers (If /etc/dt/config/Xservers does not exist, copy /usr/dt/config/Xservers to /etc/dt/config/Xservers). You must be root to do this.

    Here is an example of the Xservers file setting the window system to the 24-bit mode for two monitors and two graphics cards. It assumes that the graphics cards are attached to /dev/fb0 and /dev/fb1 as shown in the output of the ls -l /dev/fb* command.

    :0 Local local_uid@console root /usr/openwin/bin/Xsun :0 \
        -dev /dev/fb0 defdepth 24 -dev /dev/fb1 defdepth 24 -nobanner
    

    The window system mode (8-bit or 24-bit) can be checked by using the /usr/openwin/bin/xwininfo command and clicking on the workstation background (that is "desktop"). The command will print out information about the depth (8 or 24).

  4. What can I do if I still have problems?

    If you experience Pro/ENGINEER or other MCAD system problems related to your graphics configuration, first make sure you have the latest revisions of the following patches corresponding to your type of the graphics card, Solaris version, and OpenGL version:

    • Graphics card patch
    • Xsun (Sun X-Server) patch
    • OpenGL patches (both 32-bit and 64-bit)

    For example, if you use Solaris 9, XVR-1200, and OpenGL 1.3, the corresponding patches are 114555 (XVR-1200), 112785 (Xsun), 113886 (OpenGL 1.3 32-bit), and 113887 (OpenGL 1.3 64-bit).

    You can obtain these and all other Sun patches from SunSolve. Note that installing or updating a graphics card patch requires a subsequent system reboot with boot -r, although installing or updating the Xsun and OpenGL patches only requires logging out of CDE or GNOME and logging in again.

    If you still have system or graphics problems, run the following script and send the results to your support organization. Please run it locally using exactly the same configuration as the user experiencing the problem. If it is more convenient for you to run it remotely, make sure that the DISPLAY environment variable is set to :0.0 and that you are logged in as the same user who has started the window system on that machine (that is the user who logged into the windowing system).

    check_config.csh

    This script uses the following utilities which you will also need to download (or build if you prefer) to the same location as the check_config script:

    ogl_inquire (binary)
    ogl_inquire.c (source)

    If you redirect the output of check_config.csh to a file, please redirect both standard output and standard error to the same file, like this for example:

    csh:
    check_config.csh >& `hostname`_config.txt
    sh/ksh:
    check_config.csh > `hostname`_config.txt 2>&1

  5. How can I get the best Pro/ENGINEER performance?

    • Use the fastest system available

      Check http://www.sun.com/desktop/products for the best system currently available.



    • Make sure the system has sufficient RAM

      Pro/ENGINEER can use large amounts of RAM and disk swap space depending on the size of the model. As a rule of thumb, start with 1 GB of RAM and about 512 MB of disk swap space. If your Pro/ENGINEER part or assembly is large you are likely to need more RAM and/or disk swap space.

      Starting with Solaris 8, the best way to check if you need more memory is to use prstat(1) with microstate process accounting turned on:

      /usr/bin/prstat -m

      Watch the DFL (data fault) value for the Pro/E process (called "pro"). It will show the percentage of your process wall clock time spent waiting for data due to memory shortage. Zero there means there is no waiting and no memory shortage.

      You can also use vmstat to monitor your paging activity. Start it in a separate window before starting Pro/ENGINEER:

      /usr/bin/vmstat 3

      Watch the "sr" column in the vmstat output. When the numbers in that column are consistently zero, then there is no paging to disk occurring and your RAM is sufficient. Otherwise, performance will improve with more RAM.

      As one more alternative, you can watch for the disk activity reported for the swap partition (assuming you use a swap partition rather than file). One way to do this is to run the iostat(2) command. Any significant input/output (I/O) in a swap partition is a sure sign of memory shortage. For example, you can use this command:

      /usr/bin/iostat -n 3

      If paging to disk is unavoidable, try to distribute swap areas over multiple disks (spindles). This will allow more concurrency and improve performance.

    • Make sure you use a recent version and build of Pro/ENGINEER

      You can check the version of Pro/E by executing it with a single "-v" argument, for example:

      % proe1 -v /tmp/temp.out
      % cat /tmp/temp.out
      Pro/ENGINEER Release 27.0 2006010

    • Make sure OpenGL and the graphics hardware are configured correctly

      To check the setup of Sun OpenGL, run this utility:

      /usr/openwin/demo/GL/ogl_install_check

      and make sure "GLX: Context is direct" is returned.

      One thing that can be wrong is your DISPLAY environment variable. The best value for it is ":0.0" (or ":0.1" for the second monitor). If the $DISPLAY value contains your machine name or (especially) your domain name, the system may turn graphics hardware acceleration (DGA) off. Even with X_WINDOWS graphics, "setenv DISPLAY :0.0" will perform better than "setenv DISPLAY hostname:0.0", and especially better than "setenv DISPLAY hostname.domain.com:0.0".

      If you log into the window system using one user ID and then switch to another (using "su"), Pro/E will switch to the X_WINDOWS mode even if you requested OpenGL. Due to a security feature in Solaris, "su"ing to the user other than the one who started the window system disables DGA (Direct Graphics Access) to the framebuffer thus making Pro/E graphics very slow.

      If you wish, you can remove this security feature and thus make graphics fast for all users by doing the following:

      • become root
      • edit the permission in /etc/logindevperm to:
        /dev/console 0666 /dev/fbs/* # frame buffers
      • reboot
      • Note that any user will now have read/write access to the contents of your screen.

    • Consider removing "ramped color background"

      By default, starting with version 2000i (R21), Pro/E uses a "ramped color background," that is a background where the color varies from dark blue at the bottom of the screen to light blue at top.

      Our performance tests have revealed that rendering this background for each graphics frame can produce a very significant graphics performance hit (for example, 25%).

      To turn off the ramped color background, you can download this file:

      NO_RAMP.scl

      and add the following line to your config.pro:

      SYSTEM_COLORS_FILE /wherever_you_install_it/NO_RAMP.scl

      Alternatively, you can create this file yourself:

      - Start Pro/E
      - UTILITIES -> COLORS -> SYSTEM ...brings up system colors menu
      - Turn off BLENDED BACKGROUND checkbox at bottom of System Colors popup menu
      - FILE -> SAVE in System Colors popup menu
      - Save new system colors as NO_RAMP.scl
      - Exit Pro/E

    • Consider setting OGL_NO_VBLANK

      Using OpenGL, if you set the OGL_NO_VBLANK environment variable before running Pro/E, for example:

      setenv OGL_NO_VBLANK

      your graphics performance may increase significantly. The price is that the image may not look correctly on the screen.

      When you set OGL_NO_VBLANK, you are forcing OpenGL not to wait for the vertical retrace, before the two buffers are swapped.

      This effect can be observed with the OpenGL verification program, /usr/openwin/demo/GL/ogl_install_check.

      With OGL_NO_VBLANK unset (default), ogl_install_check reports a frame rate of 66.59 frames per second (FPS) on an Ultra2/Elite3Dm6 system.

      With OGL_NO_VBLANK set, ogl_install_check reports a frame rate of 411.18 FPS, on the same system.

    • For texture mapping with Elite3D, test AFB_IMM_TEXTURE

      In some cases, setting this environment variable before running Pro/ENGINEER

      setenv AFB_IMM_TEXTURE 1

      can seriously improve texture mapping graphics performance with the Elite3D graphics card.

      However, in other cases (particularly when texturing very small polygons), it may actually make it slower. So it is important to test it and see whether it helps in your case.

    • Make sure Pro/E is installed locally when running a benchmark

      Benchmarking Pro/E from a NFS mounted filesystem is a benchmark of the network and not necessarily of Pro/E. We realize that in real life using the network is often necessary, but for benchmarks you need to separate Pro/E performance from network performance. Otherwise you won't know what you have measured.

      When running a benchmark with the NFS-mounted Pro/E is unavoidable, try setting the following environment variable

      setenv LD_BIND_NOW 1

      before running the benchmark. It will cause all shared libraries to be loaded at startup time, thus saving the expense of doing it across NFS during a particular operation. Note that this method will not improve the total performance; it's simply shifting the job in time.

    • Use the following commands in your config.pro file if possible
      GRAPHICS               OPENGL
      SAVE_TRIANGLES_FLAG    NO
      MENU_HORIZONTAL_HINT   RIGHT
      WINDOWS_SCALE          .90
      THERMO_POSITION_HINT   NO_WINDOW_OVERLAP
      INSTANCE_SEARCH_EXHAUSTIVE NO
      MAX_ANIMATION_TIME     0.0
      

      Options MENU_HORIZONTAL_HINT, WINDOWS_SCALE, THERMO_POSITION_HINT will prevent the menus from overlapping the main graphics window, thus eliminating any chance of unnecessary repainting. Option "WINDOWS_SCALE .90" also decreases the size of the main graphics window a little, thus making graphics rendering faster.

      If INSTANCE_SEARCH_EXHAUSTIVE is set to YES, model loading time may increase dramatically.

      Setting LODS_ENABLED to YES in config.pro or setting the Environment->LOD option will result in a faster spinning of shaded images although surface tessellation will take longer. In R18 and later, you can control the level of LOD by:

      Environment->LOD
      View->Orientation->Spin->LOD-scale

      PLEASE BE CAREFUL WITH THE LODS_ENABLED option; it has been reported to seriously DEGRADE performance in some cases. Test its impact on performance in your case before using it for benchmarking.

      Option "MAX_ANIMATION_TIME 0.0" will disable Pro/E "animation" feature which should not be used in graphical benchmarks. If this option is not specified, by default Pro/E can make a faster graphics device do more work with the same trail file. It measures the time it takes to paint a frame on a given machine and changes the number of frames painted depending on that time. You can also specify "MIN_ANIMATION_STEPS 0" to disable the animation feature.

    • DO NOT use the following commands in your config.pro file if possible
      SAVE_TRIANGLES_FLAG        YES
      SPIN_WITH_PART_ENTITIES    YES
      SPIN_WITH_SILHOUETTS       YES
      INSTANCE_SEARCH_EXHAUSTIVE YES
      SHOW_SHADED_EDGES          YES
      MAX_ANIMATION_TIME         any value other than 0.0
      MIN_ANIMATION_STEPS        any non-zero value
      

  6. What can I do with a traceback Pro/E generates when it crashes?

    On Sun systems Pro/E will print out a traceback any time it crashes. The traceback is produced in the terminal window where Pro/E was started, and also copied to file /var/tmp/traceback.txt.

    If this happens, send the entire traceback to the PTC Technical Support organization, along with the Pro/E version/build number you are using and the results of the check_config script described above.

    Although the traceback may contain many ???????? strings (since the Pro/E executable is usually "stripped"), PTC Technical Support engineers can convert it to a real traceback at PTC. This traceback will help PTC engineers debug the problem that caused Pro/E to crash.

    Note that a traceback alone does not provide enough information to fully debug the problem. Try to supply as much information about the problem as possible: Pro/E version/build number, the Pro/E trail file leading to the crash, any messages produced, and the corresponding Pro/E part/assembly. The best way to help the debugging process is to try to make a reproducible test case out of each crash.

    However, even if it is impossible to create a reproducible test case out of each crash, the tracebacks will help PTC engineers with the QA procedures.

    If you have access to dbx (Sun command-line debugger), you can still generate the tracebacks from the core files (for Pro/E or any other PTC executable). Starting with Solaris 8, you can also do it with the pstack(1) command.

    At the user sites, dbx will also generate "blind" tracebacks (although they won't have the ???????? strings, they will just have the hex address of each PTC routine instead). You can send those to PTC Technical Support as well.

    In addition to Pro/E where such a traceback is generated automatically, you can get a traceback on crash of any application running under Solaris. The details of this procedure are described in

    Generating and Handling Application Traceback on Crash
    http://developers.sun.com/solaris/articles/traceback.html

    You can also try to separate the Pro/E crashes that happen in the X-Windows, Sun graphics and other system code from those crashing in Pro/E per se. You can do that by looking at the routines in the traceback following sigacthandler If you see a series of lines containing ???????? (for stripped Pro/E executables which should normally be the case), that means the crash happened in a Pro/E routine. If, on the other hand, it shows something like Xm...,_Xm..., Xt..., _Xt, SetValues..., this is probably in X-Windows/Motif. If you see malloc, realloc, or free close to sigacthandler, it is likely to be a memory overwrite which can happen either in Pro/E or in system libraries.

  7. How do I change the font size used by Pro/ENGINEER?

    You can change the size of the font in Pro/E menus by setting the attribute "menuitem_font" in the config.pro file in the working directory. The attribute will accept any X font listed by the "xlsfonts" command.

    For example, adding the following line to your config.pro file would in this case change the menu font to a 24 point "sony" font:

    menuitem_font \
    -sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0

    In Pro/E Wildfire, there are config.pro options to change the font size in a message window:

    default_font

    menu_font

    popuphelp_font

    fonts_size

    The first three have the syntax

    name, style, point-size

    for example:

    default_font courier,bold,14

    The final option allows the user to enlarge or reduce their font size without selecting a font name:

    fonts_size small | medium | large

  8. What causes the Pro/ENGINEER system colors to be displayed improperly?

    Pro/ENGINEER system colors may be displayed improperly or windows may flash as the cursor is moved due to an exhausted hardware colormap. Closing other graphical applications (especially the color-hungry ones like SoftWindows) may resolve the problem. This includes iconized applications.

    One more way to avoid color-flashing is to use FFB2+ (Creator3D Series 3) or AFB (Elite3D) graphics cards instead of the older Creator3D cards. They have three hardware colormaps. Note that IFB (Expert3D) and latest cards have only one hardware colormap, so they may be more susceptible to color-flashing than Elite3D.

    You can take advantage of the additional hardware colormaps by specifying "-extovl enable" in the ffbconfig (for Creator3D Series 3) or afbconfig (for Elite3D) command.

    Finally, as the last resort, you can use Pro/E configuration option OVERLAYS_ENABLED. If you add the following command to your config.pro file:

    OVERLAYS_ENABLED NO
    

    then Pro/ENGINEER will use the same 24-bit visual for its menus and dialog boxes as for the main graphics window. This way, Pro/E will not use any colors from the 8-bit colormap and will not contribute to color flashing in any way. The downside of this method is that Pro/E menus, help screens and dialog boxes overlapping the graphics window(s) will cause extra graphics repaints.

  9. How do I run Wildfire 2.0 on Solaris 10?

    Wildfire 2.0 is officially certified to run on the Solaris 10/Sparc platform. However in order to have full functionality of the embedded browser you must follow these steps and apply recommended patch:

    • Point you browser to Point Patch
    • Agree to the terms
    • Enter 119733-02 in the text box
    • Click Find Point Patch
    • Install Patch

Contact About Sun News & Events Employment Site Map Privacy Terms of Use Trademarks Copyright 1994-2008 Sun Microsystems, Inc.