概念理解
现在 GPU是手机必备,因为要玩3D游戏,没有GPU 的手机,玩3D游戏能力就受限了
如果能把3D运行在服务器上,在把渲染的图片返回给客户端,问题就解决了
VirtualGL正是这么个东西,而且 virtualGL可以让多个用户共享服务器的 GPU
应用的 OpenGL 指令直接给 3D Driver
GLX 指令给有支持 OpenGL 扩展的 XServer 处理
最后得到的 Frame 复制到 Xproxy 中处理
Xproxy 分发给不同的 Clients
开玩 virtualgl
下载 http://sourceforge.net/projects/virtualgl/files/VirtualGL/2.3.2/virtualgl_2.3.2_i386.deb,并安装
而后执行下面的命令让 VirtualGL 生效
1) sudo stop lightdm
2) /opt/VirtualGL/bin/vglserver_config
3) enter N for all three questions.
4) sudo start lightdm
运行下面程序,会看到旋转彩球
/opt/VirtualGL/glxspheres
如果用vglrun 包裹着运行,实际就是让 X proxy 生效了
/opt/VirtualGL/bin/vglrun /opt/VirtualGL/bin/glxspheres
可以用 Xvfb 让运行虚拟的 DISPLAY 1
1) export DISPLAY=:5
2) Xvfb :5 -screen 0 1280x720x24 &
3 /opt/VirtualGL/bin/vglrun /opt/VirtualGL/bin/glxspheres
4) Should see:
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: GeForce GT 610/PCIe/SSE2
132.388174 frames/sec - 147.745202 Mpixels/sec
134.121006 frames/sec - 149.679043 Mpixels/sec
134.300532 frames/sec - 149.879394 Mpixels/sec
134.767437 frames/sec - 150.400460 Mpixels/sec
133.998995 frames/sec - 149.542879 Mpixels/sec
134.308551 frames/sec - 149.888343 Mpixels/sec
134.552188 frames/sec - 150.160242 Mpixels/sec
帧数 <20 fps, GPU 就没有工作,说明用的是软 3D
5) Cntrl-C
6) pkill xvfb