Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sınıfını D3DImage kullanarak Direct3D9 içeriğini barındırabilirsiniz. Direct3D9 içeriğini barındırmak uygulamanızın performansını etkileyebilir. Bu konuda, Bir Windows Presentation Foundation (WPF) uygulamasında Direct3D9 içeriğini barındırırken performansı iyileştirmeye yönelik en iyi yöntemler açıklanmaktadır. Bu en iyi yöntemler, Windows Vista, Windows XP ve çok monitörlü ekranları kullanırken nasıl kullanacağınızı D3DImage ve en iyi yöntemleri içerir.
Uyarı
Bu en iyi yöntemleri gösteren kod örnekleri için bkz. WPF ve Direct3D9 Birlikte Çalışma.
D3DImage'ı Tedbirli Kullanma
Bir D3DImage örnekte barındırılan Direct3D9 içeriği, saf bir Direct3D uygulamasındaki kadar hızlı işlenmez. Yüzeyin kopyalanması ve komut arabelleğinin boşaltılması maliyetli işlemler olabilir. Örnek sayısı D3DImage arttıkça daha fazla boşaltma gerçekleşir ve performans düşer. Bu nedenle, dikkatli kullanmalısınız D3DImage .
Windows Vista'da En İyi Yöntemler
Windows Vista'da Windows Görüntü Sürücüsü Modeli'ni (WDDM) kullanacak şekilde yapılandırılmış bir ekranla en iyi performansı sağlamak için, bir cihazda Direct3D9 yüzeyinizi IDirect3DDevice9Ex oluşturun. Bu, yüzey paylaşımını etkinleştirir. Ekran kartının Windows Vista'da D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES ve D3DCAPS2_CANSHARERESOURCE sürücü özelliklerini desteklemesi gerekir. Diğer ayarlar, yüzeyin yazılım aracılığıyla kopyalanmasına neden olur ve bu da performansı önemli ölçüde azaltır.
Uyarı
Windows Vista'da Windows XP Görüntü Sürücüsü Modeli'ni (XDDM) kullanacak şekilde yapılandırılmış bir ekran varsa, ayarlardan bağımsız olarak yüzey her zaman yazılım aracılığıyla kopyalanır. Uygun ayarlar ve ekran kartıyla, yüzey kopyaları donanımda gerçekleştirildiğinden WDDM'yi kullandığınızda Windows Vista'da daha iyi performans görürsünüz.
Windows XP'de En İyi Yöntemler
Windows XP Görüntü Sürücüsü Modeli'ni (XDDM) kullanan Windows XP'de en iyi performans için, yöntem çağrıldığında IDirect3DSurface9::GetDC doğru şekilde davranan kilitlenebilir bir yüzey oluşturun. Dahili olarak, BitBlt yöntem yüzeyi donanımdaki cihazlar arasında aktarır.
GetDC Yöntemi her zaman XRGB yüzeylerde çalışır. Ancak, istemci bilgisayar Windows XP SP3 veya SP2 çalıştırıyorsa ve istemcide katmanlı pencere özelliği için düzeltme de varsa, bu yöntem yalnızca ARGB yüzeylerinde çalışır. Ekran kartının D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES sürücü özelliğini desteklemesi gerekir.
16 bit masaüstü ekran derinliği performansı önemli ölçüde azaltabilir. 32 bit masaüstü önerilir.
Windows Vista ve Windows XP için geliştiriyorsanız, Windows XP'de performansı test edin. Windows XP'de video belleğinin bitmesi bir sorundur. Ayrıca, D3DImage Windows XP'de gerekli ek video belleği kopyası nedeniyle Windows Vista WDDM'den daha fazla video belleği ve bant genişliği kullanır. Bu nedenle, Windows XP'de performansın aynı video donanımı için Windows Vista'dan daha kötü olmasını bekleyebilirsiniz.
Uyarı
XDDM hem Windows XP hem de Windows Vista'da kullanılabilir; ancak WDDM yalnızca Windows Vista'da kullanılabilir.
Genel En İyi Yöntemler
Cihazı oluştururken oluşturma bayrağını D3DCREATE_MULTITHREADED kullanın. Bu, performansı azaltır, ancak WPF işleme sistemi bu cihazdaki yöntemleri başka bir iş parçacığından çağırır. İki iş parçacığının aynı anda cihaza erişmemesi için kilitleme protokollerini doğru izlediğinden emin olun.
İşlemeniz WPF tarafından yönetilen bir iş parçacığında gerçekleştiriliyorsa, cihazı D3DCREATE_FPU_PRESERVE oluşturma bayrağıyla oluşturmanız şiddetle tavsiye edilir. Bu ayar olmadan, D3D işleme WPF çift duyarlıklı işlemlerin doğruluğunu azaltabilir ve işleme sorunlarına neden olabilir.
D3DImage döşemesi hızlıdır; ancak donanım desteği olmadan pow2 olmayan bir yüzey döşerseniz veya bir DrawingBrush veya VisualBrush içinde D3DImage kutucuklarsanız, bu geçerli değildir.
Çok monitörlü ekranlar için en iyi yöntemler
Birden çok monitörü olan bir bilgisayar kullanıyorsanız, daha önce açıklanan en iyi yöntemleri izlemeniz gerekir. Çok monitörlü yapılandırma için bazı ek performans konuları da vardır.
Arka arabelleği oluşturduğunuzda, belirli bir cihaz ve bağdaştırıcıda oluşturulur, ancak WPF herhangi bir bağdaştırıcıda ön arabelleği görüntüleyebilir. Adaptörler arasında ön arabelleği güncellemek için kopyalama oldukça maliyetli olabilir. WDDM'yi birden çok ekran kartıyla ve bir IDirect3DDevice9Ex cihazla kullanacak şekilde yapılandırılmış Windows Vista'da, ön tampon bellek farklı bir adaptörde ancak yine de aynı ekran kartında ise performans cezası yoktur. Ancak, Windows XP'de ve birden çok ekran kartına sahip XDDM'de, ön arabellek, arka arabellekten farklı bir bağdaştırıcıda görüntülendiğinde önemli bir performans kaybı olur. Daha fazla bilgi için bkz. WPF ve Direct3D9 Birlikte Çalışma.
Performans Özeti
Aşağıdaki tabloda, işletim sistemi, piksel biçimi ve yüzey kilitlenebilirliği bağlamında ön tampon bellek güncelleştirmesinin performansı gösterilmektedir. Ön arabellek ve arka arabelleğin aynı bağdaştırıcıda olduğu varsayılır. Bağdaştırıcı yapılandırmasına bağlı olarak, donanım güncelleştirmeleri genellikle yazılım güncelleştirmelerinden çok daha hızlıdır.
| Surface piksel formatı | Windows Vista, WDDM ve 9Ex | Diğer Windows Vista yapılandırmaları | Windows XP SP3 veya SP2 w/ düzeltmesi | Windows XP SP2 |
|---|---|---|---|---|
| D3DFMT_X8R8G8B8 (kilitlenemez) | Donanım Güncelleştirmesi | Yazılım Güncelleştirmesi | Yazılım Güncelleştirmesi | Yazılım Güncelleştirmesi |
| D3DFMT_X8R8G8B8 (kilitlenebilir) | Donanım Güncelleştirmesi | Yazılım Güncelleştirmesi | Donanım Güncelleştirmesi | Donanım Güncelleştirmesi |
| D3DFMT_A8R8G8B8 (kilitlenemez) | Donanım Güncelleştirmesi | Yazılım Güncelleştirmesi | Yazılım Güncelleştirmesi | Yazılım Güncelleştirmesi |
| D3DFMT_A8R8G8B8 (kilitlenebilir) | Donanım Güncelleştirmesi | Yazılım Güncelleştirmesi | Donanım Güncelleştirmesi | Yazılım Güncelleştirmesi |
Ayrıca bakınız
.NET Desktop feedback