Imagination PowerVR SDK Blog

Using FramebufferOES



I am attempting to use FramebufferOES extension using the Emulator SDK (Windows - OGLES-1.1_WINDOWS_PCEMULATION_2.04.24.0765) and I am getting linker errors:


LNK2019: unresolved external symbol __imp__glDeleteFramebuffersOES referenced in function "



My code is linking to libgles_cm.lib , the includes are there (  it does compile) so I am not entirely sure what else should I do to get this going ...




Uh .. never mind .. I see only required extensions are exported within the emulator library.

So I am attempting to load bunch of them using Tool's CPVRTglesExt class and the one I am after . .. GL_OES_framebuffer_object is not loading.


I was able to load GL_OES_matrix_palette, GL_EXT_multi_draw_arrays and couple of others but not GL_OES_framebuffer_object.

I am testing this on a machine equipped with GeForce 8800 GTX, so I would think it is not a host system limitation.


Any ideas ?




There is a bug in the PC emulation library affecting GL_OES_framebuffer_object which we hope to resolve soon.

Any word on this? I was hoping that new release was going to include the fix, but I guess not...



This should actually be fixed in the latest release. The bug reference for this issue is BRN26804.

What failure are you seeing exactly?


I also can’t seem to get access to glGenFrameBufferOES. The only extensions found are the following:

GL_OES_byte_coordinates GL_OES_compressed_paletted_texture GL_OES_fixed_point GL_OES_point_size_array GL_OES_point_sprite GL_IMG_user_clip_planes GL_OES_matrix_palette GL_OES_draw_texture GL_OES_read_format GL_OES_single_precision GL_IMG_texture_compression_pvrtc GL_IMG_texture_env_enhanced_fixed_function GL_ARB_texture_env_combine GL_ARB_texture_env_dot3 GL_OES_matrix_get GL_IMG_vertex_program GL_IMG_read_format GL_IMG_texture_format_BGRA8888 GL_EXT_multi_draw_arrays

I’m using this version of the sdk: OGLES-1.1_WINDOWS_PCEMULATION_2.04.24.0811

Are frame buffers/pbuffers not available in opengl es 1.1?


Please make sure that you are using emulation library in version 4.2. To do it see into output of glGetString(GL_RENDERER) which should contain “PowerVR PVRVFrame 4.2”. Note that extension are determined by chosen hadrware profile which can be set in pcviewer_es1.cfg (ES1) or pcviewer_es2.cfg (es2) in directory where are you pcemulation libraries used for running given es application. More about configuration files can be found in pvrvframe manual.



I can confirm that the extension is loading just fine with the latest SDK.



I have the same probleme, the GL_OES_framebuffer_object extension can’t be loaded.

I have installed this packadge : OGLES-1.1_WINDOWS_PCEMULATION_2.04.24.0811.msi
The glGetString(GL_RENDERER) geve me "PowerVR MBX1 With VGP - GENERIC PROFILE"

How can I set the hardware profile with pcviewer_es1.cfg?

My nvidia Quadro FX 570 can be the limitation? I just have installed the lastest drivers.

Thank for your answers.


To change the config, locate the pcviewer_es1.cfg file and exit it with a text editor. Comment/Remove the hash sign (#) in front of the config you want and place a # in front of the MBXLITE (or whatever was the currently active profile).

This system should be made a little easier in the future.


Thx a lot it works.


I am using it to draw in a texture.

It works fine on my computer now with the emulation of OpenGL ES, but the iPhone render a black screen. Angry I don’t understand because I don’t have any openGL error, and buffers name are valid.


I’m not sure if this is relevant, but in order to rebind the actual framebuffer on the iPhone you need to use a value of 1 and not 0 as on most platforms.


Your are my god, it solve my problem.

Do you know if we can get the right value to rebind the normal framebuffer with an openGL ES function or macro? I actually use a #ifdef but it's not beautiffull.

Can I use glIsFramebufferOES to get the first valid framebuffer?

flamaros2009-05-29 09:35:45


I’ve been using an #ifdef to define a constant.

glIsFrameBuffer will tell you whether you have a framebuffer but not if it’s the screen. Besides, using a constant or #define will have no runtime overhead.


Ok, thx for your informations.

Before I saw bad performance problems, I didn’t think to use such technique to do a mini-game based on drawing, but now we have a new feature in our engine Wink.


Hi all,
I have dealt with the same problem. However, your solution doest not work Confused. When I try to run with GLES1 "SUPPORT_ALL " config, supported extensions are: "GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision

GL_OES_read_format GL_IMG_read_format GL_OES_point_sprite

GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_paletted_texture

GL_OES_depth24 GL_OES_rgb8_rgba8 GL_OES_stencil8

GL_IMG_texture_compression_pvrtc GL_OES_mapbuffer GL_OES_matrix_palette

GL_OES_point_size_array GL_OES_draw_texture GL_EXT_multi_draw_arrays

GL_IMG_vertex_program GL_IMG_texture_format_BGRA8888"

It’s pity that no support for framebuffer extension. glGetString(GL_RENDERER) call gives me: “PowerVR PVRVFrame 4.2 Generic Profile (Host GL: ‘Intel 945 G’) SDK Build:”

I believe that I downloaded and installed the latest version of PowerVR SDK 1.1.
Does the graphics card of my PC affect the present of framebuffer extension, I can’t think of any other causes. Can anyone give me a hint?
Thank you!

dungpa wrote:
Hi all,
 Does the graphics card of my PC affect the present of framebuffer extension, I can't think of any other causes. Can anyone give me a hint?
Thank you!

Of course it does ...  after all, PVRVFrame 4 is just a fancy wrapper around your local OpenGL implementation.


What kind of graphic card do you have ?


Thanks warmi,
I have fixed my problem. My graphics card is an onboard intel one. When I plug a new Geforce 6200 graphics card, happily it supports framebuffer extension immediately.


I need help. I cannot get FBO extension work. I have HD4850 and this cfg file:

# =====> GLES1 config file.<=====
# Uncomment the profile you would like to use.
# If more than one profile is uncommented than
# the first one will be used.

glGetString(GL_EXTENSIONS) lists me:
GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_single_precision GL_OES_matrix_get GL_OES_read_format GL_IMG_read_format GL_OES_point_sprite GL_OES_query_matrix GL_OES_compressed_paletted_texture GL_IMG_texture_compression_pvrtc GL_OES_matrix_palette GL_OES_point_size_array GL_OES_draw_texture GL_IMG_vertex_program GL_IMG_texture_format_BGRA8888

and glGetString(GL_RENDERER) : PowerVR PVRVFrame 5.1 MBX with VGP (Host GL: ATI Radeon HD 4800 Series) SDK Build:

Is this AMD videocard issue?