I think there are two problems:

(1) On the Chromium server nodes, you are not running crserver on the
root display.  For instance, when you SSh into pc1 and pc2, you need to
set DISPLAY=:0 before running crserver.  This is perhaps unclear in the
VirtualGL documentation.

(2) Before you can run anything on display :0 on pc1 or pc2, you need to
grant access to that display.  That means either logging in on both of
those machines or using vglserver_config to enable X server access while
the machine is sitting at the login prompt.


On 11/24/10 12:39 PM, Armando Arostegui wrote:
> Hi to all, I am doing a rendering cluster with Centos5.5, Chromium,
> VirtualGL and TurboVNC
> 
> Chromium withSort-First Rendering (Image-Space Decomposition) with
> Readback is working, I use the reassemble.conf file of Chromium's
> configuration to do mi own configuration, the name is mio2.conf
> 
> 
> I have 3 pcs, one like app node (pc5) and two like server chromium nodes
> (pc1 and pc2), on the app node runs a tilesort spu and on the server
> nodes runs a readback spu and a pack spu, all is reassembled on the app
> node in a render spu
> 
> This works runing it from app node
> 
> 1. In pc5 open a terminal and writes
> 
> 
>     cd /home/cluster5/cr-1.9/mothership/configs/Mios/
> 
> 
>     python mio2.conf atlantis
> 
>   
> 
> 2. I conect to pc1 by ssh and run crserver
> 
> 
>     ssh-XY clust...@192.168.1.11 <mailto:clust...@192.168.1.11>
> 
> 
>     crserver
> 
> 
> 3. I connect to pc2 by ssh and run crserver
> 
> 
>     ssh-XY clust...@192.168.1.12 <mailto:clust...@192.168.1.12>
> 
> 
>     crserver
> 
> 4. In pc5 I open a terminal and run
> 
> 
>     crserver
> 
> 5. In pc5 I open a terminal and run
> crappfaker
> 
> The application atlantis runs ok in paralel
> 
> 
> 
> Then I want to run remotly all this from a netbook
> 
> 1. In pc5 I run a TurboVNC session
> 
> /opt/TurboVNC/bin/vncserver
> 
> 2. In netbook (pc6) I open the TurboVNC viewer and write the app server
> IP (pc5) : # of TurboVNC session
> 
> 
>     /opt/TurboVNC/bin/vncviewer
> 
> 
>     192.168.1.15:1 <http://192.168.1.15:1/>
> 
> 
>     Now I am in pc5 by TurboVNC
> 
> 3. In pc5 I open a terminal and write
> 
> 
>     cd /home/cluster5/cr-1.9/mothership/configs/Mios/
> 
> 
>     python mio2.conf atlantis
> 
> 4. I connect by ssh to pc1 and run crserver
> 
> 
>     ssh-XY clust...@192.168.1.11 <mailto:clust...@192.168.1.11>
> 
> 
>     crserver
> 
> 5. I connect by ssh to pc2 and run crserver
> 
> 
>     ssh-XY clust...@192.168.1.12 <mailto:clust...@192.168.1.12>
> 
> 
>     crserver
> 
> 
> 6. I open a terminal in pc5 y run
> 
> 
>     vglrun crserver & export CR_SYSTEM_GL_PATH=/opt/VirtualGL/fakelib
>     VGL_GLLIB=/usr/lib/libGL.so.260.19.12
> 
> 
> At this point I have a doubt, in /usr/lib/ found 3 file libGL
> 
> 
>     libGL.so
> 
> 
>     libGL.so.1
> 
> 
>     libGL.so.260.19.12
> 
> The last file is of NVidia 260.19.12 version, I try to write each one of
> this values to VGL_GLLIB but it did not work in any case
> 
> 7. I open a terminal in pc5 and run
> 
> 
>     crappfaker
> 
> It runs step 1 to 5 and it is all ok, when step 6 runs it shows these
> messages:
> 
> In the terminal which runs vglrun crserver
> 
> 
>     [clust...@pc5 ~]$ vglrun crserver & export
>     CR_SYSTEM_GL_PATH=/opt/VirtualGL/fakelib
>     VGL_GLLIB=/usr/lib/libGL.so.260.19.12
> 
> 
>     [2] 4724
> 
> 
>     [1] Done vglrun crserver
> 
> 
>     [clust...@pc5 ~]$ CR Info(pc5:4724): Total output dimensions = (0, 0)
> 
> 
> 
> In pc1
> 
> 
>     [clust...@pc1 ~]$ crserver
> 
> 
>     Xlib: extension “GLX” missing on display “localhost:10.0”.
> 
> 
>     CR Warning(pc1:4058): Render SPU: Display localhost:10.0 doesn’t
>     support GLX
> 
> 
>     CR Warning(pc1:4058): Render SPU: Couldn’t get a visual,
>     renderspu_SystemInitVisual failed
> 
> 
>     CR Warning(pc1:4058): Render SPU: Couldn’t create a window,
>     renderspuFindVisual returned NULL
> 
> 
>     CR Error(pc1:4058): Render SPU: Couldn’t get a double-buffered, RGB
>     visual with Z!
> 
> 
>     [clust...@pc1 ~]$
> 
> 
> In pc2
> 
> 
>     [clust...@pc2 ~]$ crserver
> 
> 
>     Xlib: extension "GLX" missing on display "localhost:10.0".
> 
> 
>     CR Warning(pc2:3878): Render SPU: Display localhost:10.0 doesn't
>     support GLX
> 
> 
>     CR Warning(pc2:3878): Render SPU: Couldn't get a visual,
>     renderspu_SystemInitVisual failed
> 
> 
>     CR Warning(pc2:3878): Render SPU: Couldn't create a window,
>     renderspuFindVisual returned NULL
> 
> 
>     CR Error(pc2:3878): Render SPU: Couldn't get a double-buffered, RGB
>     visual with Z!
> 
> 
>     [clust...@pc2 ~]$
> 
> 
> 
> 
> I try to use VirtualGL to force Pbuffer rendering
> 
> 
> 1. In pc5 I run a TurboVNC session
> 
> /opt/TurboVNC/bin/vncserver
> 
> 2. In netbook (pc6) I open the TurboVNC viewer and write the app server
> IP (pc5) : # of TurboVNC session
> 
> 
>     /opt/TurboVNC/bin/vncviewer
> 
> 
>     192.168.1.15:1 <http://192.168.1.15:1/>
> 
> 
>     Now I am in pc5 by TurboVNC
> 
> 3. In pc5 I open a terminal y write
> 
> 
>     cd /home/cluster5/cr-1.9/mothership/configs/Mios/
> 
> 
>     python mio2.conf atlantis
> 
> 4. I connect by ssh to pc1 and run crserver
> 
> 
>     ssh-XY clust...@192.168.1.11 <mailto:clust...@192.168.1.11>
> 
> 
>     export VGL_READBACK=0
> 
> 
>     vglrun crserver
> 
> 5. I connect by ssh to pc2 and run crserver
> 
> 
>     ssh-XY clust...@192.168.1.12 <mailto:clust...@192.168.1.12>
> 
> 
>     export VGL_READBACK=0
> 
> vglruncrserver
> 
> 
> 6. I open a terminal in pc5 and run
> 
> 
>     vglrun crserver & export CR_SYSTEM_GL_PATH=/opt/VirtualGL/fakelib
>     VGL_GLLIB=/usr/lib/libGL.so.260.19.12
> 
> 
> 
> In this point I have a doubt, in /usr/lib/ found 3 files libGL
> 
> 
>     libGL.so
> 
> 
>     libGL.so.1
> 
> 
>     libGL.so.260.19.12
> 
> The last file is of NVidia 260.19.12 version, I try to write each one of
> this values to VGL_GLLIB but it did not work in any case
> 
> 7. I open a terminal in pc5 and run
> 
> 
>     crappfaker
> 
> It runs the step 1 to 6 and it is all ok, when step 7  runs it shows
> these messages:
> In the terminal which runs vglrun crserver
> 
> 
>     [clust...@pc5 ~]$ vglrun crserver & export
>     CR_SYSTEM_GL_PATH=/opt/VirtualGL/fakelib VGL_GLLIB=/usr/lib/libGL.so
> 
> 
>     [1] 4812
> 
> 
>     [clust...@pc5 ~]$ CR Info(pc5:4812): Total output dimensions = (0, 0)
> 
> 
> In pc1
> 
> 
>     [clust...@pc1 ~]$ export VGL_READBACK=0
> 
> 
>     [clust...@pc1 ~]$ vglrun crserver
> 
> 
>     [VGL] NOTICE: Automatically setting VGL_CLIENT environment variable to
> 
> 
>     [VGL] 192.168.1.15, the IP address of your SSh client.
> 
> 
>     [VGL] ERROR: Could not open display :0.
> 
> 
>     [clust...@pc1 ~]$
> 
> 
> 
> In pc2
> 
> 
>     [clust...@pc2 ~]$ export VGL_READBACK=0
> 
> 
>     [clust...@pc2 ~]$ vglrun crserver
> 
> 
>     [VGL] NOTICE: Automatically setting VGL_CLIENT environment variable to
> 
> 
>     [VGL] 192.168.1.15, the IP address of your SSh client.
> 
> 
>     [VGL] ERROR: Could not open display :0.
> 
> 
>     [clust...@pc2 ~]$
> 
> 
> The Chomium configuration is the next:
> 
> 
>     # This is an example of tilesort-reassembly into an application window.
> 
> 
>     #
> 
> 
>     # The app node has a tilesort SPU that connect to two servers.
> 
> 
>     # Each server has two tiles (four total).
> 
> 
>     # A readback SPU runs on each server.
> 
> 
>     # The readback SPUs send two tiles each to the render SPU.
> 
> 
>     # The render SPU uses render_to_app_window to render into the original
> 
> 
>     # application window. The render SPU window is never displayed.
> 
> 
>     import sys
> 
> 
>     sys.path.append( "/home/cluster5/cr-1.9/mothership/server" )
> 
> 
>     from mothership import *
> 
> 
>     if len(sys.argv) < 2:
> 
> 
>     demo = "atlantis"
> 
> 
>     else:
> 
> 
>     demo = sys.argv[1]
> 
> 
>     # Server(s) base hostname. If your cluster has hosts named cr1, cr2,
>     cr3,
> 
> 
>     # etc. you'd set ServerHost = 'cr'. If you leave ServerHost as '' then
> 
> 
>     # all nodes will be on your local host.
> 
> 
>     ServerHost = 'pc'
> 
> 
>     cr = CR()
> 
> 
>     cr.MTU( 1024*1024 ) # may need larger value for big windows
> 
> 
>     TILE_COLS = 2 # don't change these unless you overhaul LayoutTiles()
> 
> 
>     TILE_ROWS = 2
> 
> 
>     MAX_TILE_WIDTH = 300
> 
> 
>     MAX_TILE_HEIGHT = 300
> 
> 
>     NUM_SERVERS = 2 # don't change these unless you overhaul LayoutTiles()
> 
> 
>     SLOP = 30 # window border
> 
> 
>     REASSEMBLE = 1 # use readback SPUs and downstream render SPU
> 
> 
>     RENDER_BACK = 1 # render back into app window
> 
> 
>     RESIZABLE = 1 # track client window size changes
> 
> 
>     # This is a callback which we register with spu.TileLayoutFunction()
> 
> 
>     def LayoutTiles(muralWidth, muralHeight):
> 
> 
>     """Return list of tuples of new tiles for the given mural size.
> 
> 
>     Each tuple is of the form (serverIndex, x, y, width, height)."""
> 
> 
>     if muralWidth > MAX_TILE_WIDTH * TILE_COLS:
> 
> 
>     print "Warning: mural size is too wide!"
> 
> 
>     muralWidth = MAX_TILE_WIDTH * TILE_COLS
> 
> 
>     if muralHeight > MAX_TILE_HEIGHT * TILE_ROWS:
> 
> 
>     print "Warning: mural size is too tall!"
> 
> 
>     muralHeight = MAX_TILE_HEIGHT * TILE_ROWS
> 
> 
>     # four tiles
> 
> 
>     w = muralWidth / 2
> 
> 
>     h = muralHeight / 2
> 
> 
>     t0 = (0, 0, 0, w, h) # lower-left
> 
> 
>     t1 = (0, w, 0, muralWidth - w, h) # lower-right
> 
> 
>     t2 = (1, 0, h, w, muralHeight - h) # upper-left
> 
> 
>     t3 = (1, w, h, muralWidth - w, muralHeight - h) # upper-right
> 
> 
>     tiles = []
> 
> 
>     tiles.append(t0)
> 
> 
>     tiles.append(t1)
> 
> 
>     tiles.append(t2)
> 
> 
>     tiles.append(t3)
> 
> 
>     return tiles
> 
> 
>     # The application node (tilesort SPU)
> 
> 
>     tilesortspu = SPU( 'tilesort' )
> 
> 
>     tilesortspu.TileLayoutFunction( LayoutTiles )
> 
> 
>     #tilesortspu.Conf('broadcast', '1')
> 
> 
>     tilesortspu.Conf('bucket_mode', 'Non-Uniform Grid')
> 
> 
>     client_node = CRApplicationNode('pc5')
> 
> 
>     client_node.StartDir( crbindir )
> 
> 
>     client_node.SetApplication( demo )
> 
> 
>     client_node.AddSPU( tilesortspu )
> 
> 
>     client_node.Conf('track_window_size', RESIZABLE)
> 
> 
>     cr.AddNode( client_node )
> 
> 
>     # Final reassembly node (render SPU)
> 
> 
>     if REASSEMBLE:
> 
> 
>     render_node = CRNetworkNode('pc5')
> 
> 
>     render_node.Conf('shared_windows', 1)
> 
> 
>     renderspu = SPU('render')
> 
> 
>     renderspu.Conf( 'window_geometry',
> 
> 
>     [850, 0, TILE_COLS * MAX_TILE_WIDTH, TILE_ROWS * MAX_TILE_HEIGHT] )
> 
> 
>     renderspu.Conf('render_to_app_window', RENDER_BACK)
> 
> 
>     renderspu.Conf('resizable', RESIZABLE)
> 
> 
>     render_node.Conf('only_swap_once', 1)
> 
> 
>     render_node.AddSPU(renderspu)
> 
> 
>     cr.AddNode( render_node )
> 
> 
>     # create server nodes
> 
> 
>     serverNodes = range(NUM_SERVERS)
> 
> 
>     for i in range(NUM_SERVERS):
> 
> 
>     if ServerHost == '':
> 
> 
>     serverNodes[i] = CRNetworkNode( )
> 
> 
>     else:
> 
> 
>     serverNodes[i] = CRNetworkNode( ServerHost + str(i + 1) )
> 
> 
>     if REASSEMBLE:
> 
> 
>     readbackspu = SPU( 'readback' )
> 
> 
>     readbackspu.Conf( 'window_geometry',
> 
> 
>     [0, i * (MAX_TILE_HEIGHT + SLOP),
> 
> 
>     2 * MAX_TILE_WIDTH, MAX_TILE_HEIGHT] )
> 
> 
>     readbackspu.Conf('extract_alpha', 0)
> 
> 
>     readbackspu.Conf('extract_depth', 0)
> 
> 
>     readbackspu.Conf('title', 'readback SPU %d' % i)
> 
> 
>     # readbackspu.Conf('render_to_app_window', RENDER_BACK)
> 
> 
>     serverNodes[i].AddSPU( readbackspu )
> 
> 
>     packspu = SPU('pack')
> 
> 
>     serverNodes[i].AddSPU(packspu)
> 
> 
>     packspu.AddServer( render_node, protocol='tcpip' )
> 
> 
>     else:
> 
> 
>     renderspu = SPU( 'render' )
> 
> 
>     renderspu.Conf( 'window_geometry',
> 
> 
>     [0, i * (MAX_TILE_HEIGHT + SLOP),
> 
> 
>     2 * MAX_TILE_WIDTH, MAX_TILE_HEIGHT] )
> 
> 
>     serverNodes[i].AddSPU( renderspu )
> 
> 
>     #if i == 0:
> 
> 
>     #
>     
> serverNodes[i].AutoStart(["/usr/bin/ssh",'-XY','-l',"cluster1","192.168.1.11","crserver"])
> 
> 
>     #if i == 1:
> 
> 
>     #
>     
> serverNodes[i].AutoStart(["/usr/bin/ssh",'-XY','-l',"cluster2","192.168.1.12","crserver"])
> 
> 
>     tilesortspu.AddServer( serverNodes[i], protocol='tcpip', port=7001 + i )
> 
> 
>     serverNodes[i].Conf('optimize_bucket', '0')
> 
> 
>     cr.AddNode( serverNodes[i] )
> 
> 
>     # setup tiling
> 
> 
>     for row in range(TILE_ROWS):
> 
> 
>     for col in range(TILE_COLS):
> 
> 
>     index = row * TILE_COLS + col
> 
> 
>     srv = index % NUM_SERVERS
> 
> 
>     node = serverNodes[srv]
> 
> 
>     node.AddTile( col * MAX_TILE_WIDTH,
> 
> 
>     (TILE_ROWS - row - 1) * MAX_TILE_HEIGHT,
> 
> 
>     MAX_TILE_WIDTH, MAX_TILE_HEIGHT )
> 
> 
>     cr.Go()
> 
> 
> 
> Please I need help to run Chromium with VirtualGL and TurboVNC
> I follow the steps of the VirtualGL 2.2 user's guide
> 
> 
> 
> ------------------------------------------------------------------------------
> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
> Tap into the largest installed PC base & get more eyes on your game by
> optimizing for Intel(R) Graphics Technology. Get started today with the
> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
> http://p.sf.net/sfu/intelisp-dev2dev
> 
> 
> 
> _______________________________________________
> VirtualGL-Users mailing list
> VirtualGL-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/virtualgl-users

------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
VirtualGL-Users mailing list
VirtualGL-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtualgl-users

Reply via email to