2015-05-08 30 views
6

C#, Visual Studio 2013 Güncelleştirmesi 5 RC'de programlama ve hareketli bir sahne oluşturmak için Direct3D 11 (SlimDX aracılığıyla) kullanıyorum. Piksel gölgelendiricide sırasız erişim dokuları deniyordum ve güzel çalışıyor. Örneğin, piksel gölgelendiricim, render hedef görünümü ile birlikte belirlediğim register(u1)'a bağlı bir RWTexture2D<float>. Uygulamamı çalıştırdığımda, oluşturma işlemi düzgün çalışıyor ve D3D hata ayıklama katmanından hiçbir uyarı veya hata almıyorum.Visual Studio Grafik Hata Ayıklayıcısı çalışma piksel shader'ı devre dışı bırakıyor

Her ne kadar bu işe yarıyorsa da, Visual Studio Graphics Debugger ile tek kareleri analiz edemiyorum. Bir çerçeve yakalarken Screenshot from the rendered output

FPS ölçümleri iyi çalışmasına rağmen

, her zaman tam olarak gösterilmiştir: Aşağıdaki resimde görüldüğü gibi (doğru) çıkış görüntü, şu anda gri bir gölge VSG günlüğüne (ı işlemek hedefi temizlemek için kullanılan her türlü renk ya) beyaz: Ben kare biri için Visual Studio Grafik Analyzer açtığınızda

Captured frames

, ben grafik boru hattında bir sorun olduğunu fark. amaçlandığı gibi girdi montajcı ve köşe Shader çalışıyor ama pixel shader eksik ve çıkış birleşme aşamasında "hiçbir örgü" var:

enter image description here

nesne tablo açıkça belirtmektedir o pixel shader (obj:7) kuruldu. Grafik boru hattında neden görünmediğine dair bir fikriniz veya önerileriniz var mı, yoksa programda çalışmamıza rağmen yakalanan çerçevelerin niçin boş olduğu konusunda bir fikriniz var mı? Gölgelendirici kodunun yüklendiği yerden, yani veya CompileFromFile kullanıp kullanmadığımı bir rol oynatabilir. Şimdiye kadar şüphelendiğim ancak şu ana kadar doğrulayamadığım bir şey, piksel gölgelendiricisindeki sırasız erişim kaynağının Visual Studio Graphics Debugger ile karıştırmasıdır. Herhangi bir ipucu? Şimdiden teşekkür ederim.

Düzenleme: Bu, Piksel gölgelendiricinin aygıt bağlamında ayarlandığını gösterirken, Bu, the MSDN walkthrough on misconfigured pipelines ile ilişkili değildir. Ayrıca, sabit tamponlar piksel gölgelendiricide doğru şekilde ayarlanır.

cevap

0

Visual Studio Topluluğu kullanıyor musunuz?

Okulda evde ve Professional'da Topluluk kullanıyorum ve Topluluk sürümü ile aynı sorunu yaşıyorum, ancak okuldaki Profesyonel ile hepsi iyi.

+0

Ben Visual Studio 2013 Ultimate kullanın. Davranışın nedenini buldum ve aslında RWTexture (yani, sırasız erişime sahip kaynak) gibi görünüyor. Gölgelendirici kodundan çıkardığımda, çıktı beklendiği gibi gösterilir. – hschmauder

1

Çözgü hata ayıklamasını kullanmanız için zorlamalısınız. Lütfen aşağıdaki adımları takip edin. 1. DirectX Özelliklerini Debug -> Graphics-> DirectX Denetim Masası ile açın. enter image description here

  1. Düzenleme Listesi, arama vsgraphicsdesktopengine.exe tıklayın ve listeye eklemek.
  2. Hata Ayıklama Katmanı için Force On'u seçin ve DirectX Properties'deki Force WARP seçeneğini işaretleyin, ardından uygulayın. enter image description here
  3. Grafik hata ayıklama işlemini gerçekleştirin ve çerçeveleri yakalayın ve boru hattını tekrar görüntüleyin.

Bu yardımcı olabilir umarım!

Saygılarımızla, Visual Studio Grafik Takım

+0

Bu, Visual Studio 2015 Güncelleştirmesi 3 (v14.0.25431.01) için çalışmaz. Herhangi bir fikir? – Varaquilex