Aracılığıyla paylaş


DirectX Graphics hata ayıklama

Visual Studio DirectX tabanlı oyunlar ve uygulamalardaki oluşturma sorunlarının çözülmesinde yardımcı olması için kullanabileceğiniz tanılama araçlarını içerir.

Visual Studio'daki DirectX grafiklerinde hata ayıklama

Bir oyun veya uygulamada hata ayıklama genellikle bir hata ayıklayıcısını başlatma ve kod atlama kadar kolay değildir. Grafik işleme sorunlarının tanısını koymada birkaç benzersiz zorluk vardır. Örneğin, herhangi bir çerçevede, yüzlerce bin ya da milyon piksel çıktı olarak üretilir ve bundan birkaç kez daha fazlası da oluşturulmuş ancak görülmüyor olabilir, bunların belki de sadece birkaç pikseli tanılamanız gereken sorunu yaşıyor olabilir. Buna ek olarak, her işlenmiş çerçevenin arkasında birkaç gigabayt veri olabilir ve daha da zorlaştırmak için bu verilerin tümü işi yüzlerce veya binlerce uzman işleme birimlerine bölen (hepsi Merkezi İşlem Birimi'nin (CPU) doğrudan gözleminin dışında) özel donanımda işlenir. Geleneksel hata ayıklayıcılar yalnızca bu tür zorlukları çözmek için oluşturulmamıştır.

Grafik Tanılama Araçları'nda Visual Studio işlemede sorun ve sonra geriye doğru ilgili gölgelendiricinin kodu, grafik potansiyel, beraberlik çağrıları, kaynaklar ve Aygıt durumu izleme gösteren görsel aletler ile başlatarak sorunlarının kaynağını bulun ve hatta app's kendi kaynak kodu ile yardımcı olmak için tasarlanmıştır.

Visual Studio öğesinin size yardımcı olabileceği bazı işleme sorunu çeşitleri:

Hh315751.collapse_all(tr-tr,VS.110).gifCihaz durumu

Grafik aygıtının doğru yapılandırılması önemlidir, çünkü tüm uygulamada modelin ve doku verisinin karşılaması gereken beklentileri belirler. Örneğin, cihaz durumu sarma sırasını saat yönü olarak belirtiyorsa, köşeleri saat yönünün tersine olarak belirten bir model doğru işlenmeyecektir ya da derinlik sınaması işlevi daha büyüğe ayarlandıysa, uzaktaki nesneler yakındaki nesnelerin üzerine çizilecektir. Cihaz durumu sorunlarının tanısını koymak zor olabilir çünkü kaynak kodundaki sorunun kaynağı genellikle etkilenen nesnelerden çıkartılmıştır.

Grafik Tanılama etkilenen piksellerin ardındaki veri ve cihaz durumunu incelemenize yardımcı olabilir, böylece cihaz durumu sorunlarını azaltabilirsiniz.

Hh315751.collapse_all(tr-tr,VS.110).gifGölgelendirici hataları

Kod C++ ya da Yüksek Düzey Gölgelendirici Dili (HLSL) olsun, uygulama kodunda bir hata yapmak neredeyse kaçınılmazdır. C++ ve diğer dillerin kullanabileceği zengin hata ayıklama desteği olmadığından HLSL kodunda hata ayıklamak eskiden beri daha zor olmuştur.

Grafik Tanılama gölgelendirici hatalarını bulmanıza ve düzeltmenize yardımcı olabilir çünkü HLSL kodunda hata ayıklamayı mümkün hale getirir. HLSL hata ayıklayıcı grafik günlüğüne kaydedilen bilgileri kullanarak çizim olaylarını gölgelendirici düzeyinde "yeniden çalabilir", böylece yürütme içerisinde gezinebilir, kesme noktalarını ayarlayabilir ve geçici değişkenlerin, parametrelerin ve sabit arabelleklerin içeriklerini inceleyebilirsiniz. Doğru şeye odaklanmanıza yardımcı olmak için Grafik Tanılama, çizim olaylarından (Grafik Ardışık Düzen Aşamaları penceresi aracılığıyla) ve tek tek piksellerden (Grafik Piksel Geçmişi aracılığıyla) HLSL hata ayıklayıcıya giriş noktaları sağlar.

Hh315751.collapse_all(tr-tr,VS.110).gifBaşlatılmamış veya yanlış parametreler ve sabitler

Grafik uygulamaları grafik ardışık düzeninde verimli bilgi sağlamak amacıyla parametreler ve sürekli önbellekler kullanır, böylece farklı nesneler özel gölgelendirici koduyla farklı olarak işlenebilir ve dönüştürülebilir. Bir parametre veya sabit bir arabellek başlatılmamış veya istenen değer içermediğinden, yanlış, ya da belki de hiç karşılık gelen nesne işlenir. Sabit bir arabellek veya bir parametre ile ilgili sorunlar her zaman sabit bir arabellek veya bir parametre ile ilgili bir sorun veya hata kodunda gölgelendirici hataya neden olup olmadığını NET değildir çünkü ve hangi gölgelendiricileri kendisine karşılık gelen bir gölgelendirici hata ise tanılamak zor olabilir.

Grafik Tanılama hataya karşılık gelen gölgelendiricileri tanımlamanıza ve HLSL hata ayıklayıcıyı kullanarak gölgelendirici kodunu denetlemenize yardımcı olabilir, böylece parametre ve sürekli önbellek sorunlarını azaltabilirsiniz. Gölgelendirici kodunuzun doğru olduğundan emin olduğunuzda, parametreleri ve sabitleri tanımlamak HLSL Hata Ayıklayıcıyı kullanabilir, etkilenen nesneyi işleyen uygulama kodunda gezinmek için Grafik Olay Çağrı Yığınını kullanabilir ve parametre ve sabit ara belleğin en son nerede ayarlandığını bulabilirsiniz.

DirectX sürüm uyumluluğu

Grafik Tanılama Direct3D 10, Direct3D 10.1 Direct3D 11 ve Direct3D 11.1 kullanan uygulamaları destekler ve Direct2D kullanan uygulamalar için sınırlı destek sağlar. Direct3D, DirectDraw veya başka grafik API'lerinin önceki sürümlerini kullanan uygulamaları desteklemez.

Hh315751.collapse_all(tr-tr,VS.110).gifSınırlı Direct2D destek

Direct3D API, işlevlerinin çoğu için Direct2D API'sini kullandığından, Grafik Tanılamaları Direct2D kullanan uygulamalarda hata ayıklamaya yardımcı olmak için kullanılabilir. Ancak, Grafik Tanılama daha yüksek seviyeli Direct2D olayları yerine temeldeki Direct3D olaylarını eklediğinden, Direct3D kullanmayan Direct2D olaylarının ayrıntılarını yakalayamaz. Ayrıca, Direct2D API çağrıları ve sonuç Direct3D API çağrıları arasındaki ilişkiler her zaman açık olmadığından Direct2D uygulamaları için Grafik Tanılama kullanımı doğrudan değildir. Yine de, Direct2D kullanan uygulamalarda düşük düzeyli işleme sorunları hakkında bilgi almak için Grafik Tanılama'yı kullanabilirsiniz.

İşletim Sistemi ve SDK gereksinimleri

Windows 8 bu belgede açıklanan grafik hata ayıklama özelliklerinin gerektirdiği çalışma zamanı bileşenlerini yükler. Windows 7 ve Windows Vista'da bu özellikleri kullanmak için, şu Yazılım Geliştirme Setlerinden (SDK) birini yüklemeniz gerekir:

  • DirectX SDK (Haziran 2010)

  • Windows SDK (sürüm 7.1)

İlgili Konular

Başlık

Tanımlama

Grafik tanılama

Grafik Tanılamayı DirectX tabanlı uygulamalardaki oluşturma sorunlarında hata ayıklamak için nasıl kullanacağınızı açıklar.

Grafik tanılama örnekleri

Grafik tanılama ortak işleme sorunlarını tanılamak ve grafik bilgileri yakalamak için nasıl kullanılacağını gösteren makaleler bağlantılar sağlar.

Visual Studio'da hata ayıklama

Visual Studio'de hata ayıklama işlevini tanıtır.

DirectX Grafik ve Oyun

DirectX grafik teknolojilerini anlatan makalelere bağlantılar sağlar.