ES2 Emulator-Windows: pBuffers without any window

Hi, I’m new to this forum, so Hello to Everyone!

I’m working on a GPGPU library, that must work on mobile devices with ES 2.0, and I need to render to a pBuffer, having no window on which to display the results ( the library don’t have access to the window system ). For now I use the ES 2.0 Emulator for windows, and I have not found a way to render to pBuffer correctly without any window…

Is there any way to create a pBuffer without calling eglGetDisplay( hDC ) ?

If I call eglGetDisplay( EGL_DEFAULT_DISPLAY ), then everything is OK ( no errors ), but it seems that no rendering will occur in pBuffer. Also if I create a windowSurface after I call eglGetDisplay( EGL_DEFAULT_DISPLAY ), no rendering will occur in the window.

These issues are known ?

Thanks!

PS: From few quick tests, it seems that these problems happens on nVidia hardware… on AMD it works well.Confused

This looks like it may be a problem with the emulation and we’ll have a look at it - are you using the most up to date version?





Also, is there a particular reason that you are using pBuffers for GPGPU and not FBOs?


1. Yes, I am using the emulator from OGLES2_WINDOWS_PCEMULATION_2.04.24.0811.msi .
 

2. I come from DirectX programming, and I'm new to OpenGL ... and pBuffers seems very easy to use.Embarrassed I have not tryed FBOs, but after the experience with pBuffers I think I should read more about FBOs and try to use them... Are performance advantages of FBOs over pBuffers ?

 

Thanks

Later edit:
I've implemented rendering in FBOs, and it works fine, the only problem is that after I call glShaderSource for the VS, glGetError returns GL_INVALID_ENUM . I saw on old topic ( https://www.imgtec.com/forum/forum_posts.asp?TID=405&KW=glShaderSource ) that this is actually a error from glBindFramebuffer( GL_FRAMEBUFFER, frameBuffer ) . What this error means in this case ?

PS: The ES 2.0 emulator from AMD crashes when using FBOs without any window... so it seems I'll stick with PVR emulator only. Wink
ZyZyX2009-07-07 17:23:06

I think it’s safe for you to disregard the GL_INVALID_ENUM in this case if your program is working. As you can see in the other thread, this is a bug in the current version of our emulation (and has already been fixed for our next release). If you find other problems please post here again.





One advantage of using FBOs is that they’re core to the ES 2.0 spec.





I’m glad it’s working for you - may I ask what kind of GPGPU work you’re doing?Gordon2009-07-08 11:19:23

I’m working on a library that must do some object detection/tracking in a movie stream that comes from the camera of a mobile phone.

From what I have read until now from the forum, maybe the current generation of mobile GPUs it’s not verry well suited for this kind of operation, because of the required bandwidth to upload/download the data to/from the GPU, but we hope that in the future this will not be a problem anymore…

For now, we only need to implement a demo application, that works no matter at what FPS…

What particular platform are you targeting? There may be solutions for streaming image data from a camera into OpenGL ES textures.