Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP VISUALIZE-IVL Documentation: HP 9000 Series 700 Computers > Chapter 3 Chapter 3: For Application Developers

Performance Tuning Tips

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Glossary

 » Index

IVL is designed to take advantage of the acceleration provided by workstations equipped with IVX hardware. IVL contains support for rendering with IVX and support for rendering with a software implementation of the pixel-processing pipeline. The software implementation is used when no IVX accelerator is present, or when the limits of the IVX hardware are exceeded. Software rendering performance varies with the size of input data sets and the complexity of the display pipeline characteristics.

General Performance Hints

The following lists general hints for IVL performance improvements:

  • IVL considers the lower-left corner of an image to be the origin. Images are rendered from the bottom row, up. To avoid the need for data conversion by the application program, store images in memory so the pixel at the lower-left corner is the first pixel in memory, followed by the remainder of the bottom row, then subsequent rows from the bottom to the top of the image.

  • Angles of rotation will round to the nearest 1/10th degree. This is true for both the IVX and the software rendering paths.

  • Do not arbitrarily intermix IVL and X procedure calls.

  • For flicker-free, near-real-time, display of annotation, use the overlay visual and only change text that requires changing.

  • Do not use glXMakeCurrent needlessly for every image frame. In other words, don't call glXMakeCurrent unless you are changing contexts.

Performance Hints for Workstations with IVX Hardware

Applications and end users should stay within the following limits to optimize performance on workstations using IVX hardware. Values that fall outside of these limits will operate correctly, but will use the slower software implementation.

  • IVX supports X and Y scale values with absolute values between 0.75 and 32.0.

  • IVX supports image translation values within the following limits:

    • -8191.9≤x_offset≤6911.9

    • -8191.9≤y_offset≤7167.9

  • Image sizes should be at least 8×4 pixels (width×height), and at most 32768×32768 pixels.

  • Only three clipping rectangles (including any enabled scissor specification) are supported in hardware. Additional clipping rectangles will cause rendering to be accomplished with multiple rendering passes through the hardware, so rendering performance may decease by more than half.

See the "IVL Implementation and Device-Specific Information" chapter for information about differences between using IVL's software implementation and using IVX.

Performance Hints for Workstations without IVX Hardware

Follow these hints to optimize performance on workstations that do not use IVX hardware:

  • Nearest neighbor interpolation operates faster than bilinear interpolation, which in turn operates faster than bicubic interpolation. So, a progressive refinement scheme will provide the best results where interactivity is needed.

  • Rotations that alter the x-axis direction will have slower performance than orientations that maintain a positive sense for x (such as no rotation, or a flip about the x axis using a negative y scalar). If your data is typically oriented to require rotating, consider reorienting the data instead of using image transformation to perform this operation.

  • A scaling factor of 2.0 for both x and y (that is, 2× zoom) with bilinear resampling for luminance data performs better than any other image transformation.

  • Avoid clearing a single buffer, and clearing and swapping double-buffers if not necessary.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© Hewlett-Packard Development Company, L.P.