Imagination PowerVR SDK Blog

Using FramebufferOES

pvrvframe

#1

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 ...

 

 

 

#2
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 ?

 

 

#3

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


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

 

#5

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





What failure are you seeing exactly?






#6

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?


#7

Hi,
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.

Regards,



#8

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



#9

Hi,

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.


#10

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.


#11

Thx a lot it works.


#12

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.


#13

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.


#14


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

#15

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.


#16

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.


#17

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: 2.04.24.0809”

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!


#18
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 ?

#19

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.


#20

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.
#MBXLITE
#MBX_VGP
#MBXLITE_VGPLITE
#SGX530
#SGX535
SUPPORT_ALL

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: 2.05.25.0782.

Is this AMD videocard issue?