Results 1 to 4 of 4

Thread: process delay of the eglCopyBuffer() .??

  1. #1
    Junior Member
    Join Date
    Oct 2006
    Posts
    28

    process delay of the eglCopyBuffer() .??

    Hi.

    For Draw GDI Text in OpenGLES, I used eglCopyBuffer.

    Process sequence is like that...
    1. CreatePbufferSurface().
    2. Make a Bitmap.
    3. After 3D Rendering at PBuffer, Copy PBuffer to Bitmap using eglCopyBuffer().
    3. and GDI Draw(like drawText() function) to Bitmap.
    4. last, Bitblt Bitmap to Display.

    I think PBuffer data exists in video memory.
    When eglCopyBuffer() is called, I guess pBuffer will move to bitmap of main memory.
    I guess that It's have a delay of the data process as long as eglCopyBuffer() be called.
    Approximately, 800*480 will copy.
    What do you think about that??

    So I thought glDrawTexOES(). change bitmap to texture.
    What is more good idea??

  2. #2
    Member
    Join Date
    Sep 2003
    Location
    Silicon Valley
    Posts
    57

    Re: process delay of the eglCopyBuffer() .??

    Can you use GDI to render directly into the visible window on the Display? If so then perhaps you could render into a window instead of a pbuffer, SwapBuffers to get the EGL color buffer contexts into the visible window, then draw GDI text into that window.

    We have been discussing a proposal in Khronos that might allow a surface-to-surface color buffer copy. I'm not sure if that would be useful for your scenario but you have an interesting use case for us to discuss.
    Jon Leech
    EGL & OpenGL Specification Editor / OpenGL ARB Ecosystem TSG Chair / Khronos API Registrar

  3. #3
    Junior Member
    Join Date
    Oct 2006
    Posts
    28

    Re: process delay of the eglCopyBuffer() .??

    Quote Originally Posted by oddhack
    SwapBuffers to get the EGL color buffer contexts into the visible window, then draw GDI text into that window.
    You means CreateWindowSurface()? If it's right.. I already know that.
    Of course, It's possible.. but When I use WindowSurface() and SwapBuffer(). I found that GDI Text has a flickering phenomenon in the screen per frame.

    How can I solve this problem??

  4. #4
    Senior Member
    Join Date
    May 2006
    Posts
    353
    I think the best way should be:
    - render to window surface
    - whenever the text changes (which likely won't be every frame), draw text to a bitmap, upload bitmap as texture using glTex(Sub)Image2D.
    - render text as textured quad/with DrawTex on top of your scene.

    With hardware acceleration, it is important to avoid any operations that cause synchronization between CPU and GPU. Basically, anything that accesses the current draw surface (glReadPixels, eglCopyBuffers) is bad for performance.
    Georg Kolling, Imagination Technologies
    Please ask questions specific to PowerVR hardware or SDKs on the PowerVR Insider Forum
    DevTech@imgtec.com | http://www.powervrinsider.com

Similar Threads

  1. Delay in open GL
    By abhishekdandu in forum OpenGL ES 1.X - fixed function hardware
    Replies: 0
    Last Post: 02-21-2012, 04:22 AM
  2. huge delay between GPU and CPU
    By xstopka in forum OpenCL
    Replies: 1
    Last Post: 04-22-2011, 09:18 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •