多くの画像 (GIS スタイル、タイル画像の表示、ズーム/パンなど) を使用する Silverlight アプリケーションを最適化しています。ビットマップキャッシュ機能を使用して、多くのものを GPU にオフロードすることを考えていました。
しかし、私はそれを機能させることができないようです。私のホストページには正しいパラメーターが含まれています(私は思う?):
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="EnableCacheVisualization" value="true" />
<param name="EnableGPUAcceleration" value="true" />
<param name="EnableFramerateCounter" value="true" />
<param name="source" value="ClientBin/BitmapCaching.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="5.0.61118.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.61118.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
また、xaml でキャッシュも有効にする必要があります。
<UserControl x:Class="BitmapCaching.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White" CacheMode="BitmapCache">
<Rectangle x:Name="img" Width="200" Height="200" Stroke="Black">
<Rectangle.Fill>
<ImageBrush ImageSource="/BitmapCaching;component/download.jpg" />
</Rectangle.Fill>
<Rectangle.RenderTransform>
<RotateTransform />
</Rectangle.RenderTransform>
</Rectangle>
<Button Content="Scale" Height="40" Width="100" Click="Button_Click" />
</Grid>
</UserControl>
(はい、キャッシュモードをルート要素に置くのは賢明ではないことはわかっています)
ただし、アプリケーションを起動すると、完全なアプリケーションが赤みを帯びたオーバーレイで表示されます。これは、何もキャッシュされていないことを示しているはずです。
GFX カード用の最新のドライバーが必要であると読みましたが、それで問題ありません。このマシンには、最新のドライバーを搭載した ATI Radeon HD5450 ビデオカードが搭載されています。それが足りないとは思えませんか?
私は困惑しています。誰かがこれを解決する方法を知っているなら、私が狂ってしまうのを防いでください!