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.

OMAP3503, Silverlight and DirectDraw: problem

Other Parts Discussed in Thread: OMAP3503, OMAP3530

Hi.

I build WinCE 6.0 image with Silverlight(SYSGEN_XAML_RUNTIME) and DirectDraw(SYSGEN_DDRAW) support.

Image build with flags BSP_XRPLUGIN_DDRAW and SYSGEN_SAMPLEXAMLPERF  also.

When i try to start Carousel example, But i have no window appear on the screen, only "XAML ..." on taskbar.

If i build image without  BSP_XRPLUGIN_DDRAW flag, all examples starts with window shows, but all examples executes too slowly .

 

For test purpose i try to play avi-file in TCPMP-player with DirectDraw as Video Driver, and i have the same problem - i see nothing.

 

Could anybody help me?

OMAP3503, BSP 6.14.01.01

 

  • Hi,

    The DDraw plugin is really now (I believe it was disabled in previous R3 releases).  When enabling it DDraw generates an error when trying to allocate the surfaces (the errors can be seen in the Retail Messages); and it needs to be investigated.  However, I doub't that the performance will increase too much.  We do see a big increase when using the OpenGL in the OMAP3530 part that uses the Graphics Coproccesor (Carousel runs at 20FPS in average) or the 37x parts (avg 37FPS) compared to default GDI plugin (4FPS).

    Mauricio

  • Hi, Mauricio

    Thank you for your answer. I have no debug COM on my board, that i cannot see retail messages.

    I want to have any performance increase. I use OMAP3503, where have no OpenGL HW accel.

    May be BSQUARE will be fixed this problem in display driver (DDraw allocate the surfaces) in next release of OMAP35x BSP?

  • Hi,

    The basic answer to your question, is that the problem itself is not fixed in later version of the BSP (not even in TI'S BSP). But, there are two ways to overcome your issue; although as I explain in each step, I doubt it will provide you with the performance boost that you're looking for):

    • The issue itself is that giving the driver capabilities the plugin tries to create a backbuffer for Cached Composition; this buffer is based on a 32 bit pixel format (A8R8G8B8) which it is probably rejected in the CanCreateSurface test.  To correct this (I don't know which version you use, so I try to be as general as possible) modify the Halsurf.cpp (it should be in PLATFORM\COMMON\SRC\SOC\OMAP35XX_TPS659XX_TI_V1\omap35xx\DISPLAY\DDGPE for BSQ releases, PLATFORM\COMMON\SRC\SOC\COMMON_TI_V1\COMMON_TI\DSS\DDGPE for TI's BSP) and remove the red text in function HalCanCreateSurface:

               //  Check for RGB formats on primary display
                else if((pDDPixelFormat->dwFlags & DDPF_RGB) && !(pDDPixelFormat->dwFlags & DDPF_ALPHAPREMULT))
                {
                 //  Check pixel sizes

    This will allow the plugin to run the Silverlight.  Unfortunately, using this Cache will bring the system to a crawl, specially when using the whole screen (640x480) like the provided demos do; since multiple surface copies of 32bits pixels are made followed by the final blit that requires a conversion to the 16bpp supported by the primary device.

    • The plugin will use this Cached Composition whenever the Alpha capabilities are supported by the driver (which we do); however this can be disabled by changing the function InitializeGlobals in DDrawDevice for the DDraw plugin by esentially making the memeber s_fSupportsCachedComposition FALSE (This is Microsoft's code).  This change does not require the previous one.  In this case you will maybe see a slight (if noticeable) increase in the performance which will vary depending on the way that Silverlight gets used.

    Let me know if this helps you,

    Mauricio

  • Thanks, Mauricio!

    I's great! It works fine (solution with s_fSupportsCachedComposition to FALSE in DDraw plugin).

    Can i receive more performance in Windows Embedded Compact 7?

  • Currently no; however we are working with Microsoft to improve the performance for the final release.  As I said to get a significant improve of the performance you need to migrate to a processor with the Graphics accelerator.

    Mauricio