Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

This article describes an issue that occurs when you run a Silverlight for Windows Embedded application in Windows Embedded Compact 2013. An update is available to resolve this issue. Before you install this update, all previously issued updates for this product must be installed.

Symptoms

Consider the following scenario:

  • You have a Microsoft Silverlight for Windows Embedded application installed on a Windows Embedded Compact 2013-based device.

  • The device has a single-core processor.

  • You enable the following board support package (BSP) environment variable in order to support OpenGL hardware acceleration for Silverlight for Windows Embedded:

    BSP_XRPLUGIN_OPENGL

In this scenario, you experience high CPU usage and performance problems when you run the application.

Cause

This issue occurs because the Silverlight user interface (UI) thread sends the texture updates much faster than the rate at which the rendering thread can render them.

Resolution

Download information

Windows Embedded Compact 2013 Monthly Update (October 2014) is now available from Microsoft. To download this Windows Embedded Compact 2013 monthly update, go to Microsoft OEM Online or MyOEM.

More Information

Restart requirement

After you apply this update, you must perform a clean build of the whole platform. To do this, use one of the following methods:

  • On the Build menu, click Clean Solution, and then click Build Solution.

  • On the Build menu, click Rebuild Solution.

You do not have to restart the computer after you apply this software update.

Update replacement information

This update does not replace any other updates.

The English version of this software update package has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

Files that are included in this hotfix package

File name

File size

Date

Time

Path

Xamlruntimegraphics.h

15,982

17-Sep-2014

09:06

Public\Common\Oak\Inc

Ddrawdevice.hpp

6,785

17-Sep-2014

09:06

Public\Common\Oak\Xamlrenderplugin\Ddraw

Opengldevice.cpp

66,076

17-Sep-2014

09:06

Public\Common\Oak\Xamlrenderplugin\Opengl

Opengldevice.hpp

9,724

17-Sep-2014

09:06

Public\Common\Oak\Xamlrenderplugin\Opengl

Xrrendererddraw.lib

2,404

30-Sep-2014

15:17

Public\Common\Oak\Lib\X86\Retail

Xrrendererddraw.exp

1,138

30-Sep-2014

15:17

Public\Common\Oak\Lib\X86\Retail

Xrrendereropengl.lib

2,404

30-Sep-2014

15:17

Public\Common\Oak\Lib\X86\Retail

Xrrendereropengl.exp

1,140

30-Sep-2014

15:17

Public\Common\Oak\Lib\X86\Retail

Xrrendererddraw.lib

2,404

30-Sep-2014

15:16

Public\Common\Oak\Lib\X86\Debug

Xrrendererddraw.exp

1,134

30-Sep-2014

15:16

Public\Common\Oak\Lib\X86\Debug

Xrrendereropengl.lib

2,404

30-Sep-2014

15:16

Public\Common\Oak\Lib\X86\Debug

Xrrendereropengl.exp

1,140

30-Sep-2014

15:16

Public\Common\Oak\Lib\X86\Debug

Xrrendererddraw.lib

2,404

30-Sep-2014

15:17

Public\Common\Oak\Lib\X86\Checked

Xrrendererddraw.exp

1,138

30-Sep-2014

15:17

Public\Common\Oak\Lib\X86\Checked

Xrrendereropengl.lib

2,404

30-Sep-2014

15:17

Public\Common\Oak\Lib\X86\Checked

Xrrendereropengl.exp

1,140

30-Sep-2014

15:17

Public\Common\Oak\Lib\X86\Checked

Xrrendererddraw.lib

2,388

30-Sep-2014

15:18

Public\Common\Oak\Lib\Armv7\Retail

Xrrendererddraw.exp

1,131

30-Sep-2014

15:18

Public\Common\Oak\Lib\Armv7\Retail

Xrrendereropengl.lib

2,388

30-Sep-2014

15:18

Public\Common\Oak\Lib\Armv7\Retail

Xrrendereropengl.exp

1,137

30-Sep-2014

15:18

Public\Common\Oak\Lib\Armv7\Retail

Xrrendererddraw.lib

2,388

30-Sep-2014

15:17

Public\Common\Oak\Lib\Armv7\Debug

Xrrendererddraw.exp

1,131

30-Sep-2014

15:17

Public\Common\Oak\Lib\Armv7\Debug

Xrrendereropengl.lib

2,388

30-Sep-2014

15:17

Public\Common\Oak\Lib\Armv7\Debug

Xrrendereropengl.exp

1,137

30-Sep-2014

15:17

Public\Common\Oak\Lib\Armv7\Debug

Xrrendererddraw.lib

2,388

30-Sep-2014

15:18

Public\Common\Oak\Lib\Armv7\Checked

Xrrendererddraw.exp

1,135

30-Sep-2014

15:18

Public\Common\Oak\Lib\Armv7\Checked

Xrrendereropengl.lib

2,388

30-Sep-2014

15:18

Public\Common\Oak\Lib\Armv7\Checked

Xrrendereropengl.exp

1,137

30-Sep-2014

15:18

Public\Common\Oak\Lib\Armv7\Checked

Interactivity.dll

102,400

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Retail

Interactivity.map

261,175

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Retail

Interactivity.rel

44,099

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Retail

Xamlruntime.dll

802,816

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Retail

Xamlruntime.map

1,373,394

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Retail

Xamlruntime.rel

1,679,177

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Retail

Xamlruntimecore.dll

2,879,488

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Retail

Xamlruntimecore.map

1,811,157

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Retail

Xamlruntimecore.rel

1,844,187

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Retail

Xrrendererddraw.dll

24,576

30-Sep-2014

15:17

Public\Common\Oak\Target\X86\Retail

Xrrendererddraw.map

28,969

30-Sep-2014

15:17

Public\Common\Oak\Target\X86\Retail

Xrrendererddraw.rel

6,080

30-Sep-2014

15:17

Public\Common\Oak\Target\X86\Retail

Xrrendereropengl.dll

32,768

30-Sep-2014

15:17

Public\Common\Oak\Target\X86\Retail

Xrrendereropengl.map

51,394

30-Sep-2014

15:17

Public\Common\Oak\Target\X86\Retail

Xrrendereropengl.rel

15,157

30-Sep-2014

15:17

Public\Common\Oak\Target\X86\Retail

Interactivity.dll

253,952

30-Sep-2014

15:14

Public\Common\Oak\Target\X86\Debug

Interactivity.map

580,631

30-Sep-2014

15:14

Public\Common\Oak\Target\X86\Debug

Interactivity.rel

172,424

30-Sep-2014

15:14

Public\Common\Oak\Target\X86\Debug

Xamlruntime.dll

1,687,552

30-Sep-2014

15:14

Public\Common\Oak\Target\X86\Debug

Xamlruntime.map

2,584,434

30-Sep-2014

15:14

Public\Common\Oak\Target\X86\Debug

Xamlruntime.rel

2,339,246

30-Sep-2014

15:14

Public\Common\Oak\Target\X86\Debug

Xamlruntimecore.dll

7,512,064

30-Sep-2014

15:14

Public\Common\Oak\Target\X86\Debug

Xamlruntimecore.map

5,373,336

30-Sep-2014

15:14

Public\Common\Oak\Target\X86\Debug

Xamlruntimecore.rel

4,079,246

30-Sep-2014

15:14

Public\Common\Oak\Target\X86\Debug

Xrrendererddraw.dll

45,056

30-Sep-2014

15:16

Public\Common\Oak\Target\X86\Debug

Xrrendererddraw.map

49,051

30-Sep-2014

15:16

Public\Common\Oak\Target\X86\Debug

Xrrendererddraw.rel

14,606

30-Sep-2014

15:16

Public\Common\Oak\Target\X86\Debug

Xrrendereropengl.dll

151,552

30-Sep-2014

15:16

Public\Common\Oak\Target\X86\Debug

Xrrendereropengl.map

275,814

30-Sep-2014

15:16

Public\Common\Oak\Target\X86\Debug

Xrrendereropengl.rel

196,668

30-Sep-2014

15:16

Public\Common\Oak\Target\X86\Debug

Interactivity.dll

139,264

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Checked

Interactivity.map

503,292

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Checked

Interactivity.rel

61,760

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Checked

Xamlruntime.dll

1,167,360

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Checked

Xamlruntime.map

2,416,327

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Checked

Xamlruntime.rel

2,126,763

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Checked

Xamlruntimecore.dll

6,316,032

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Checked

Xamlruntimecore.map

5,330,367

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Checked

Xamlruntimecore.rel

5,787,607

30-Sep-2014

15:15

Public\Common\Oak\Target\X86\Checked

Xrrendererddraw.dll

32,768

30-Sep-2014

15:18

Public\Common\Oak\Target\X86\Checked

Xrrendererddraw.map

48,894

30-Sep-2014

15:18

Public\Common\Oak\Target\X86\Checked

Xrrendererddraw.rel

13,417

30-Sep-2014

15:18

Public\Common\Oak\Target\X86\Checked

Xrrendereropengl.dll

77,824

30-Sep-2014

15:18

Public\Common\Oak\Target\X86\Checked

Xrrendereropengl.map

167,643

30-Sep-2014

15:18

Public\Common\Oak\Target\X86\Checked

Xrrendereropengl.rel

42,098

30-Sep-2014

15:18

Public\Common\Oak\Target\X86\Checked

Interactivity.dll

98,304

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Retail

Interactivity.map

446,025

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Retail

Interactivity.rel

41,866

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Retail

Xamlruntime.dll

765,952

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Retail

Xamlruntime.map

2,421,084

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Retail

Xamlruntime.rel

1,443,958

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Retail

Xamlruntimecore.dll

2,789,376

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Retail

Xamlruntimecore.map

3,970,707

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Retail

Xamlruntimecore.rel

1,638,838

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Retail

Xrrendererddraw.dll

28,672

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Retail

Xrrendererddraw.map

45,798

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Retail

Xrrendererddraw.rel

4,833

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Retail

Xrrendereropengl.dll

36,864

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Retail

Xrrendereropengl.map

81,279

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Retail

Xrrendereropengl.rel

8,922

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Retail

Interactivity.dll

233,472

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Debug

Interactivity.map

1,928,325

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Debug

Interactivity.rel

94,675

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Debug

Xamlruntime.dll

1,773,568

30-Sep-2014

15:14

Public\Common\Oak\Target\Armv7\Debug

Xamlruntime.map

9,783,361

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Debug

Xamlruntime.rel

2,121,688

30-Sep-2014

15:14

Public\Common\Oak\Target\Armv7\Debug

Xamlruntimecore.dll

7,467,008

30-Sep-2014

15:14

Public\Common\Oak\Target\Armv7\Debug

Xamlruntimecore.map

20,735,843

30-Sep-2014

15:14

Public\Common\Oak\Target\Armv7\Debug

Xamlruntimecore.rel

2,572,870

30-Sep-2014

15:14

Public\Common\Oak\Target\Armv7\Debug

Xrrendererddraw.dll

49,152

30-Sep-2014

15:17

Public\Common\Oak\Target\Armv7\Debug

Xrrendererddraw.map

99,572

30-Sep-2014

15:17

Public\Common\Oak\Target\Armv7\Debug

Xrrendererddraw.rel

11,068

30-Sep-2014

15:17

Public\Common\Oak\Target\Armv7\Debug

Xrrendereropengl.dll

131,072

30-Sep-2014

15:17

Public\Common\Oak\Target\Armv7\Debug

Xrrendereropengl.map

590,681

30-Sep-2014

15:17

Public\Common\Oak\Target\Armv7\Debug

Xrrendereropengl.rel

67,995

30-Sep-2014

15:17

Public\Common\Oak\Target\Armv7\Debug

Interactivity.dll

163,840

30-Sep-2014

15:16

Public\Common\Oak\Target\Armv7\Checked

Interactivity.map

1,156,971

30-Sep-2014

15:16

Public\Common\Oak\Target\Armv7\Checked

Interactivity.rel

87,947

30-Sep-2014

15:16

Public\Common\Oak\Target\Armv7\Checked

Xamlruntime.dll

1,228,800

30-Sep-2014

15:16

Public\Common\Oak\Target\Armv7\Checked

Xamlruntime.map

5,666,819

30-Sep-2014

15:16

Public\Common\Oak\Target\Armv7\Checked

Xamlruntime.rel

2,125,806

30-Sep-2014

15:16

Public\Common\Oak\Target\Armv7\Checked

Xamlruntimecore.dll

6,107,136

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Checked

Xamlruntimecore.map

14,902,705

30-Sep-2014

15:16

Public\Common\Oak\Target\Armv7\Checked

Xamlruntimecore.rel

2,826,562

30-Sep-2014

15:15

Public\Common\Oak\Target\Armv7\Checked

Xrrendererddraw.dll

36,864

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Checked

Xrrendererddraw.map

78,266

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Checked

Xrrendererddraw.rel

10,778

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Checked

Xrrendereropengl.dll

81,920

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Checked

Xrrendereropengl.map

235,543

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Checked

Xrrendereropengl.rel

25,220

30-Sep-2014

15:18

Public\Common\Oak\Target\Armv7\Checked

Interactivity.dll

178,864

30-Sep-2014

12:56

Public\Common\Oak\Bin\I386

Xamlruntimecore_dt.dll

2,415,280

30-Sep-2014

12:56

Public\Common\Oak\Bin\I386

Xamlruntime_dt.dll

1,133,232

30-Sep-2014

12:56

Public\Common\Oak\Bin\I386

Xrpack.exe

281,264

30-Sep-2014

12:56

Public\Common\Oak\Bin\I386

Xamlruntime.exp

1,887

30-Sep-2014

15:15

Public\Common\Sdk\Lib\X86\Retail

Xamlruntime.lib

3,664

30-Sep-2014

15:15

Public\Common\Sdk\Lib\X86\Retail

Xamlruntime.exp

1,886

30-Sep-2014

15:14

Public\Common\Sdk\Lib\X86\Debug

Xamlruntime.lib

3,664

30-Sep-2014

15:14

Public\Common\Sdk\Lib\X86\Debug

Xamlruntime.exp

1,888

30-Sep-2014

15:15

Public\Common\Sdk\Lib\X86\Checked

Xamlruntime.lib

3,664

30-Sep-2014

15:15

Public\Common\Sdk\Lib\X86\Checked

Xamlruntime.exp

1,885

30-Sep-2014

15:15

Public\Common\Sdk\Lib\Armv7\Retail

Xamlruntime.lib

3,642

30-Sep-2014

15:15

Public\Common\Sdk\Lib\Armv7\Retail

Xamlruntime.exp

1,880

30-Sep-2014

15:14

Public\Common\Sdk\Lib\Armv7\Debug

Xamlruntime.lib

3,642

30-Sep-2014

15:14

Public\Common\Sdk\Lib\Armv7\Debug

Xamlruntime.exp

1,886

30-Sep-2014

15:15

Public\Common\Sdk\Lib\Armv7\Checked

Xamlruntime.lib

3,642

30-Sep-2014

15:15

Public\Common\Sdk\Lib\Armv7\Checked

Xamlruntime_dt.dll

1,133,232

30-Sep-2014

12:56

Program files\Microsoft visual studio 11.0\Vc\Vcwizards\Windowsembeddedxamltools

Xamlruntimecore_dt.dll

2,415,280

30-Sep-2014

12:56

Program files\Microsoft visual studio 11.0\Vc\Vcwizards\Windowsembeddedxamltools

Xrpack.exe

281,264

30-Sep-2014

12:56

Program files\Microsoft visual studio 11.0\Vc\Vcwizards\Windowsembeddedxamltools

Interactivity.dll

178,864

30-Sep-2014

12:56

Program files\Microsoft visual studio 11.0\Vc\Vcwizards\Windowsembeddedxamltools



Workaround informationInstantiating a new XAML class that inherits the ICustomGraphicsDevice class may trigger the following compiler error:

error C2259: '<classname>' : cannot instantiate abstract class


This issue is caused by the addition of four abstract functions in the ICustomGraphicsDevice class for this hotfix.

To work around this issue, implement the following abstract functions in your class that inherits ICustomGraphicsDevice. (See also xamlruntimegraphics.h.)

  • virtual __checkReturn XRESULT UIThreadPriority() = 0;

  • virtual __checkReturn XRESULT RenderThreadPriority() = 0;

  • virtual __checkReturn XRESULT RenderThreadQuantum() = 0;

  • virtual __checkReturn BOOL DisplayFrameRateMonitor() = 0;

This update introduces several registry values that let you do the following:

  • Manipulate the UI Thread Priority

  • Manipulate the Render Thread Priority

  • Manipulate the Render Thread Quantum

  • Display the frame rate monitor together with the two previously mentioned thread priority settings

    Frame rate monitor

Registry information

Registry location

HKEY_LOCAL_MACHINE\Software\Microsoft\XamlRenderOpenGL

Registry subkeys and possible values

Name

Type

Description

Default Value

UIThreadPriority

REG_DWORD

Sets the priority of UI thread (0-5)

  • PAL_THREAD_PRIORITY_LOW=5

  • PAL_THREAD_PRIORITY_LOWERED=4

  • PAL_THREAD_PRIORITY_NORMAL=3

  • PAL_THREAD_PRIORITY_ELEVATED=2

  • PAL_THREAD_PRIORITY_HIGH=1

  • PAL_THREAD_PRIORITY_REAL_TIME=0

3

RenderThreadPriority

REG_DWORD

Sets the priority of Render thread (0-5)

  • PAL_THREAD_PRIORITY_LOW=5

  • PAL_THREAD_PRIORITY_LOWERED=4

  • PAL_THREAD_PRIORITY_NORMAL=3

  • PAL_THREAD_PRIORITY_ELEVATED=2

  • PAL_THREAD_PRIORITY_HIGH=1

  • PAL_THREAD_PRIORITY_REAL_TIME=0

3

RenderThreadQuantum

REG_DWORD

Sets the thread quantum level (in milliseconds) for the Render thread (0-5)

  • 0 – Maximum quantum time, thread runs until it is complete

  • 5 – High quantum time

  • 4 – Medium quantum time

  • 3 – Increased quantum time

  • 2 – Normal quantum time

  • 1 – Low Quantum time


Threads at the same quantum level run in a round-robin manner, with each thread receiving a quantum, or slice, of execution time.

2

DisplayFrameRateMonitor

REG_DWORD

Specifies whether Display Frame rate monitor is enabled. Set this entry to 1 to enable monitor and to 0 (zero) to disable monitor.

0


To elevate the rate of the rendering thread for better performance, set the RenderThreadPriority value to 2.

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

References

For information about BSP environment variables, see BSP environment variables (Windows Embedded Compact 2013).

Learn about the standard terminology that is used to describe Microsoft software updates.

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.

Was this information helpful?

What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×