1

We have rendering problems with the OpenGLES accelerated Silverlight on the Freescale iMX53 platform: The BSP comes with the environmental flag bsp_xrplugin_opengl=1, which configures the XAML rendering engine to use OpenGLES. However when using this flag, we are experiencing some artifacts and graphical rendering issues. For example when pulling up the Microsoft (Silverlight) soft input panel much of the window, and sometimes all of the window, is rendered in solid black.

In our Silverlight application we’ve had issues with graphics disappearing, and sometimes areas are filled with black. The application is written in C# using the XAML in Hand framwork, but we have also created a C++ Silverlight test application which yields the same results - so it seems to be a Silverlight rendering problem.

When disabling hardware-accelerated XAML rendering the graphics render properly, but to a higher CPU cost which we do not want.

We have installed all the latest WCE7 updates. Can anybody suggest a fix, or perhaps suggest anything to try?

Chris Chambers
  • 165
  • 2
  • 11

2 Answers2

1

After a very long and arduous support session with Freescale themselves we found a partial solution. When I included these environment variables in the image:

<Entry Name="gsl_tgthal">mx53</Entry>
<Entry Name="egl_platform">z430</Entry>

...the graphical issues disappeared when using embedded XAML in a native application with OpenGL Rendering. However, I used the phrase 'partial solution' because it didn't fix the problem when using embedded XAML in a managed application with the XAML In The Hand library.

Chris Chambers
  • 165
  • 2
  • 11
1

I had the same problem, and i found the bug in one of Microsoft source files, it's on the OpenGL plugin, so it happens on all platforms with OpenGL enabled (seems to happen also in compact 2013). file:

C:\WINCE700\public\COMMON\oak\xamlrenderplugin\opengl\opengldevice.cpp

in line 537:

MatrixProjection.SetToTranslation(-1.0f*(uWidth/2), -1.0f*(uHeight/2), -1.0f*uWidth);

replace with:

MatrixProjection.SetToTranslation(-1.0f*(((float)uWidth)/2), -1.0f*(((float)uHeight)/2), -1.0f*uWidth);

recompile xamlrenderplugin for OpenGL, and than make the image.