[vbox-dev] Running MeeGo UX correctly inside VirtualBox with OpenGL acceleration
haitao.feng at intel.com
Tue Aug 31 08:11:26 GMT 2010
It is strange that only half of my email content could be shown when browsing
the vbox-dev. Here is the second half. Sorry for the inconvenience if you have
received the full content through an email client.
>From my side, I have disabled the GLX_texture_from_pixmap, and when we create
host peer GL window, I make them invisible by XCompositeRedirectWindow. When
glXSwapBuffer happens, I read the content back by using glReadPixels, and then
use XShmPutImage to update the guest window content and then reply on 2) to draw
the texture. This works and the performance is acceptable. This is a reference,
I will try those work when GLX_texture_from_pixmap is on. I have seen some issue
in MeeGo UX when it is on.
Maybe from beginning we should use off-screen buffer to do the GL rendering
instead of using window. The current essential problem is that when guest wants
to draw a texture/window on guest display, the host draws a window on top of
VirtualBox. And then you have to check the guest window status such as mapping,
clipping and others for host peer window.
Here is a picture of our discussion,
texture from pixmap
guest texture <------ guest pixmap
| b) ^
| c) | a)
host texture drawing <------ host off-screen buffer
The a), b) and c) form your first/fast solution and the "1). Rendering GL
off-screen and reading window contents back into guest." as I suggested.
The d) is the your future enhancement and the "Rendering GL at host-side and
forwarding guest normal X window contents into host" as I suggested.
In d), for normal guest X window contents updates, maybe we could register
damage callback for them, and when there is an update, we could draw the host
It seems that we are aligned on this. Could we work together to let VirtualBox
run MeeGo Netbook UX, Gnome-Shell (mutter-based GL compositor) correctly with GL
More information about the vbox-dev