OSG multi-card scaling problemWe have observed a problem with OpenSceneGraph (OSG) in which parallel, multi-threaded, applications do not scale properly to multiple graphics cards. The problem has been isolated to within the OSG software. We provide a program and input data file that demonstrate the performance problem:
The program should be compiled as any typical OSG program. (Our testing was done with OSG version 2.9.10 and 3.0.) Before running, you should set the following environment variables: export __GL_SYNC_TO_VBLANK=0 export OSG_SERIALIZE_DRAW_DISPATCH=OFF Here is how to run the program from the command line:export OSG_THREADING=CullThreadPerCameraDrawThreadPerContext ./osgMultiCardTest displayNumbers file
Examples: ./osgMultiCardTest 0 testex.ive # display 0 only ./osgMultiCardTest 0 1 testex.ive # display 0 and 1 ./osgMultiCardTest 0 1 2 testex.ive # display 0,1,2 ./osgMultiCardTest 0 1 2 3 testex.ive # display 0,1,2,3
The frame rate gives the rendering speed in frames per second (FPS). When we run these tests, we observe an unexpected reduction of frame rates as more cards are used. For example, if the FPS is 100 using one card, the frame rate drops to 50 for 2 cards and 25 for 4 cards in use. We would expect that if the application were working properly, the FPS would be the same in all cases.
|