Archive for June, 2007

Wrestling with CGL, AGL, NSGL and CG

29. June 2007

…or how to put many acronyms in one line.

I’ve finally found some time to work on the native Equalizer OpenGL window system implementation on OS X. So far I have a fully working X11/glX implementation, since that is what is needed on Linux anyway. The native implementation based on CGL was just a stub. At first I tried to keep the low-level CGL interface, to avoid having two implementations for AGL (Carbon) and NSGL (Cocoa).

After poking around in various undocumented CG (Quartz) features (CGSSurface,  CGSConnection, CGSWindow) I’ve given up on the low-level CGL interface and converted the current code to AGL. Although various other projects have figured out how to use Quartz directly, my implementation crashed somewhere in CGLGetSurface. But since I wasn’t happy using undocumented API’s, the decision to ditch the low-level CGL approach was easy. It is just too bad that there is no official low-level windowing equivalent to CGL, or no way to bind a Carbon window to a CGLContextObj.

Since svn change 1165 Equalizer now uses AGL and is no longer limited to fullscreen-only, although event handling is still missing. Oh, and I’ll have to address NSGL at some point.

WWDC setup

25. June 2007

Since gWHIZ asked so nicely, here is a quick summery of the WWDC setup (list price as of today):

  •  9 MacPro, ATI x1900 XT, 4 GB, 2×2 2.66GHz: $31.023
  • 19 30-inch Cinema Display: $34.181
  • 18 Vesa Mounts: $522
  • Gigabit Switch and Cabling:  I don’t know what was used, but it’s cheap nowadays
  • Custom-built plywood wall: priceless!

The networking was probably the weakest link in the setup. All machines were on the same network. Optimisation is possible by putting the machines into two networks, both connected to the same frontend machine. Another optimisation can be implemented in Chromium by having a binary tree to submit the GL command stream.

Some money can be saved on the render nodes, since I don’t believe all the RAM is needed. Likewise, profiling might show that slower processors are sufficient. 

Back from WWDC

18. June 2007

Amira running through Chromium on the WWDC07 Display Wall

Yesterday I got back from WWDC – what a week! In addition to the prepared demo of Google Earth, Amira and VMD, we have managed to get two additional applications to run on the display wall through Chromium: LigandScout (molecular modeling) and SOAP (GPS satellite analysis).

The display wall was gorgeous, and even bigger than expected. We had a total of 18 30-inch Cinema Displays, arranged in a 6×3 layout. The other hardware was also standard Apple hardware you’ll get at the store: nine MacPro’s with a ATI x1900 graphics card, gigabit ethernet and one MacPro as the master to run the applications.

Google Earth running through Chromium on the WWDC07 Display Wall

People walking by were stunned by the size of the wall, and all applications looked fantastic and showed a variety of use cases. Often people lost a sense of scale and assumed we use 23-inch displays 😉

In the afternoons I’ve had some time to attend the conference, and heard quite a few interesting talks.

Drop me a note or a comment if you’ld like to see a specific application picture.

WWDC, here I come…

7. June 2007

The new Equalizer polygon renderer

The last couple of days I have been busy preparing the WWDC demo of Chromium and Equalizer. We’ve made excellent progress, and certified quite a few applications (Google Earth, VMD, Paraview and Amira) to run on the display wall using Chromium.

On the Equalizer side, there is a new, improved version of the polygonal renderer using a much better internal data structure (a 3D kd-tree) and per-vertex normals. I haven’t been able to test it thouroughly, but I’ll have some time before the show to try it out on the MacPro cluster.

Tomorrow I’ll be travelling to San Francisco, and I am looking forward to an exciting show and to see you all! The scheduled times for the demos are Tue-Fri, 9am-12am.

One more demo app: VMD

1. June 2007

VMD, Chromium and Mac OS X

Things are moving well now – VMD is working as well for the WWDC display wall demonstration. This covers a little bit the whole scientific visualization angle. Performance is really good if you enable ‘cached rendering’ (display lists?) in VMD.