Manta Interactive Ray Tracer Development Mailing List

Text archives Help


Re: [MANTA] Re: Problems compiling Manta on the SGI Prism


Chronological Thread 
  • From: Abe Stephens <abe@sci.utah.edu>
  • To: Shreekanth Pavar <shreekanth.pavar@ucl.ac.uk>
  • Cc: manta@sci.utah.edu, Steven Manos <s.manos@ucl.ac.uk>
  • Subject: Re: [MANTA] Re: Problems compiling Manta on the SGI Prism
  • Date: Mon, 19 Feb 2007 13:32:31 -0700


Shreekanth Pavar wrote:
PureOpenGLDisplay.cc:// Pixel/Vertex Buffers are unavailable on some platforms,
notably Prism.

I also had 2 follow-on queries:

Will their abscence adversely impact the performance of Manta on the Prism ?
Do you know if they also unavailable on the SGI Altix  ?
On certain platforms, transferring ray traced pixels from the CPU to the GPU for display is the performance bottleneck. It's quite unlikely that this will be the case on a prism.

As James indicated I was able to build right out of the box on our SGIs with the current repository. Since you're not able to, there must be some difference in libraries/headers between our systems. Our prism uses fglrx-4.3.0-sgi304r1.2.9.1 our Altix systems link with Mesa since they don't have graphics pipes. Neither system supports the gl extensions in question.

As you saw in the source code, preprocessor logic is supposed to define empty macros if the gl extensions aren't available. Control logic in the program will prevent these macros from ever being called. It's possible that for some reason the headers on your system are defining the extension definitions to either 0 or 1 (instead of not-defined) so that #ifndef evaluates false even if the extension isn't present. You can check if this is the case by placing a #error command inside the #ifndef block and see if the compiler hits it.

Either way try changing the preprocessor logic so that the substitute macros are always defined. (i.e. change #ifndef GL_ARB_pixel_buffer_object to #if 1 (line ~170 in PureOpenGLDisplay.cc) similarly for the other missing extensions. Note that the code eventually defines the symbol to be zero (line ~181), so that it can be used in control conditionals which avoid using the extension.

Abe




Archive powered by MHonArc 2.6.16.

Top of page