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

Reply via email to