This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OpenGL ES Performance question on OMAP 3530 in WINCE 6.0 R3

Hi, All,

I'm currently using WINCE 6.0 R3 on OMAP 3530 with POWERVR enabled.

My program is written in C++ calling OpenGL ES 1.1 to do some simple swapping (eglSwapBuffers).

When I run the program with fullscreen (800x480).
I got 60 FPS.
However, when I run the program in a window dialog (640x480).
It drops down to 4 FPS.

Would you please advise whether this frame rate dropped is valid or not?

Thanks in advance,

Richard

  • Can you clarify exactly which version of BSP you are using? 

  • My BSP version is 6.15.00.01

  • In full screen mode the fps is typically higher since you can use buffer swap without extra copies. In the windowed mode (comparable resolution to the full screen mode), bit blts and buffer copies are involved and hence performance will be poorer. But the degradation you see seems to be too high. You have not disabled Neon in your BSP, right.  

    BSP 6.15 uses DDK 1.3 (and is no longer supported). The latest WinCE6.0 release for omap35xx/dm37xx uses DDK 1.5. If you have a Omap3 EVM, here is what I can suggest.

    Download the latest BSP binaries (called BSP demo in this download link http://software-dl.ti.com/sdoemb/sdoemb_public_sw/wince_sdk/latest_1_x/index_FDS.html), load it on the EVM and run your application in full screen and windowed mode (you may have to adjust your application to use the lcd resolution of 640x480) or use DVI. See if you have similar performance degradation.

     

  • Hi, Jatin,

    Thanks for your suggestion.
    But I can't load the latest BSP binaries into the SBC because I'm not using EVM module.

    However, I found that this issue seems to be related to pixel depth of the LCD display.
    My first tried is on 32 bpp.
    When I reduced it down to 16 bpp, the performance degradation in window mode has gone.
    But I can only get 23 FPS when running fullscreen swapping.

    In the source code of lcd_vga.c, I found the following comment.

    #define DEFAULT_PIXELTYPE   DISPC_PIXELFORMAT_RGB16
    // Note: Setting DEFAULT_PIXELTYPE to DISPC_PIXELFORMAT_RGB32 results in a
    // dramatic drop in performance in the GDI BLTs, cause is not known.
    //#define DEFAULT_PIXELTYPE   DISPC_PIXELFORMAT_RGB32
    //#define DEFAULT_PIXELTYPE   DISPC_PIXELFORMAT_ARGB32

    Would you please advice is this a known issue in CE6?

    Thanks for your help,

    Richard

  • Richard,

    With 32bpp we have seen performance hit and that combination has not been widely tried with omap3/wince. 

    I'm confused about your statement: "But I can only get 23 FPS when running fullscreen swapping.". Are you saying that with 32bpp you get 60fps in full screen mode and with 16bpp you only get 23fps? That does not look right. 

    Can you try the PowerVR demo (for e.g., oglesvase) that come along with the PowerVR SDK (it is part of the graphics release in the TI SDK). That should give you a comparative benchmark.

    Please also note that you are using a very old version of DDK. It would be best if you can try your application on a TI EVM with the latest release to get a more upto date performance benchmark. 

    Jatin

     

  • Hello, Jatin,

    I have just tested with the PowerVR demo (i.e. OGLESChameleonMan).
    The FPS is similar to the result of fullscreen swapping.
    i.e. 16bpp 22FPS
           32bpp 60FPS
    Would it be the old version of the DDK cause this issue?

    I have download the BSP source code from your previous link.
    If I would like to update to the latest version of POWERVR, could I just replace those POWERVR lib or dll to my BSP.
    Sorry, I'm not quite understand how to update to a newer version DDK of POWERVR.

    Thanks again,

    Richard

  • Richard,

    PowerVR and Displaydriver are interdependent and hence I'm not sure if  just updating to new DDK will work. But it is worth a try. Replace the PowerVR, Build solution and give it a try. 

    I'm surprised by the results you are seeing (and I don't think PowerVR will fix this problem). But then we have not done any extensive work with 32bit color. Can you detail all the places you changed to enable 32bit mode.

    Given that your performance seems to be fine with 32bpp (even though I'm not sure why) can  you continue to use that in your system?

    Jatin

  • Hello, Jatin,

    I have replaced those dll and checking the DDK version is now 1.5.15.2856.
    The performance degradation in 32bpp window mode has gone.
    And the OGLESChameleonMan Demo FPS seems to be better now.
    i.e. 32bpp, 57 FPS
         16bpp, 47 FPS

    When I change to 32bpp, I only make a change on my LCD driver.
    i.e.
    BOOL
    LcdPdd_LCD_GetMode(
        DWORD   *pPixelFormat,
        DWORD   *pWidth,
        DWORD   *pHeight,
        DWORD   *pPixelClock
        )

    {
        //  Return default LCD parameters
        if( pPixelFormat )
            *pPixelFormat = DISPC_PIXELFORMAT_ARGB32;
    ...
    }
    I change this part is because of OMAPDDGPE construtor will call
    m_pMode->Bpp = OMAPDDGPE::PixelFormatToBpp(m_pDisplayContr->GetLCDPixelFormat());
    which m_pMode is declare as GPEMode* m_pMode;
    Is that the right place to change the bpp?

    Because the performance degradation in 32bpp window mode has gone,
    I can continue to use 32bpp now.

    Thank you for your help,

    Richard