I can't accept the patch as-is, but it gives me some ideas of what needs to be done. I am definitely interested in fixing the EXT_texture_from_pixmap extension, but I will need to come up with a more simplified test program to validate the approach outside of KDE. I am particularly concerned that you weren't able to make KDE work without modifying the source. Messing with the KDE source is definitely not something I will have time to do in the foreseeable future.
On 4/5/11 12:27 PM, Alexander Kirillov wrote: > Hello again! > I've managed to create the patch, it should be in the attachment. > Here are the explanations: > > * Since only 24-bit XVisualInfo's were provided, I've changed the > __vglConfigDepth function in glxvisual.cpp to provide depth for the > visual that is corresponding to the FBConfig on the local display. The > modified version returns 32-bit visuals when needed. > * The faked implementation of EXT_texture_from_pixmap OpenGL extension > didn't work correctly, because the extension can only work with > GLXPixmaps, not with windows and not with pbuffers. The approach I used > is: fake XCompositeNameWindowPixmap, XCreatePixmap and XFreePixmap to > know when the original pixmap is created, store the information on the > created pixmap (with Window form XCompositeNameWindowPixmap) to use > later. Then if and when the pixmap created previously is used to create > a GLXPixmap, add other values to the stored information and create > another pixmap using XShm. When this GLXPixmap is being used for > glXBindTexImageEXT the original pixmap's contents are copied to the shm > segment to be made available to the local display's XServer. The texture > is then filled with data using the shm address. If the FBConfig is > y-inverted (GLX_Y_INVERTED), the function modifies the GL_TEXTURE matrix > to invert the texture coordinates. When glXReleaseTexImageEXT is called > and if the FBConfig is inverted, the GL_TEXTURE matrix is restored to > the previous state. > This part covers faker-glx.cpp, faker.cpp, faker-sym.h, faker-sym.cpp, > faker-mapfile.c and the newly added shmpixmap.h that provides storage > for the mentioned pixmaps. > > The patch should be applied to "vgl" directory (which contains "rr") > > But these additions are not enough to run KDE4 in OpenGL mode. You also > have to do the following: > * Go to System Settings->Desktop->Advanced. > * Check "Disable functionality checks" checkbox. > * Select "Texture From Pixmap" OpenGL mode. > > Also I didn't find how to enable the option called "glStrictBinding", so > I had to simply cut it from kwin/scene_opengl.cpp file from > kdebase-workspace. > > If everything mentioned above is accomplished, you should be able to run > KDE4 in OpenGL mode over VNC. > > I would be very grateful if somebody gave me feedback on that patch :) > > P.S. I've been able to test it on Code2Duo P8400/2048 RAM/NV 9600 GS, > Debian 5.0 > > > > ------------------------------------------------------------------------------ > Xperia(TM) PLAY > It's a major breakthrough. An authentic gaming > smartphone on the nation's most reliable network. > And it wants your games. > http://p.sf.net/sfu/verizon-sfdev > > > > _______________________________________________ > VirtualGL-Users mailing list > VirtualGL-Users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/virtualgl-users ------------------------------------------------------------------------------ Xperia(TM) PLAY It's a major breakthrough. An authentic gaming smartphone on the nation's most reliable network. And it wants your games. http://p.sf.net/sfu/verizon-sfdev _______________________________________________ VirtualGL-Users mailing list VirtualGL-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/virtualgl-users