eugene.chepurnykh's picture

Create PBuffer on TK

Hi. Does anybody use pbuffer? I know that right way - uses FBO but our platform - 945G - doesn't support this extension. I understand that i cant use functions like wglChoosePixelFormatARB... The main goal - RTT. I will be very appreсiate for any ideas...


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
the Fiddler's picture

Edit: According to this post on neither pbuffers nor FBOs are supported on Intel hardware! This doesn't sound promising at all.

OpenTK does not expose platform-specific functions by design and there are no plans to add pbuffer support at this time. This extension is positively ancient and looks quite complex to implement and use in a cross-platform manner.

However, you can always hook into WGL (or GLX/AGL) and implement the necessary functionality manually. You could also modify the source code of OpenTK and take advantage of the existing bindings. In the latter case, consider creating a patch with the necessary changes, so we can add this functionality in some future OpenTK version.

Unfortunately, I have never actually used PBuffers so I can't really help with their implementation. However, I'm pretty sure there are people on this board who can help and, of course, I can help with anything related to OpenTK itself and the WGL/GLX/AGL bindings.

From a quick internet search, it seems that the 945G may in fact support FBOs on Linux, but I have no way to verify this.

kanato's picture

Intel cards seem to have pretty poor OpenGL support. My laptop has an X3100 which is a Direct3D 10 capable video card, and the most recent drivers have just introduced support for OpenGL 2.0. It reports that it supports FBO's, however it doesn't seem to actually work. The FBO example in OpenTK gives a message about the frame buffer being incomplete. There are other bugs in the drivers too, I tried to run a bumpmapping GLSL 1.10 code that ran fine on my destkop with an ATI card but there were bizarre results.

My desktop at work is less than 6 months old and only reports support for OpenGL 1.4, and no mention of the ext framebuffer extension. My mac with its GMA 950 only supports OpenGL 1.2. According to Apple's website the framebuffer extension is supported, which IIRC worked when I was testing it out, but I should test it again at some point.

I think the hardware is certainly capable; if the cards can support render to texture in Direct3D then they should be able to support at least basic frame buffers in OpenGL. I'm guessing the issue is just drivers. In the last year my laptop went from supporting OpenGL 1.5 to 2.0, so maybe a year from now Intel will be up to supporting OpenGL 3.0. I really hope so, because Intel hardware is so common.

eugene.chepurnykh's picture

Thanx guys.... I understand that I must find another method....