Ich bin Programmierung in C#, Visual Studio 2013 Update 5 RC und mit Direct3D 11 (via SlimDX) eine animierte Szene zu machen. Ich experimentierte mit ungeordneten Zugriffstexturen im Pixelshader und es funktioniert gut. Das heißt, mein Pixelshader hat eine RWTexture2D<float>
gebunden an register(u1)
, die ich zusammen mit der Renderzielansicht einstelle. Wenn ich meine Anwendung ausführe, funktioniert das Rendering gut und ich bekomme keine Warnungen oder Fehler von der D3D Debug-Ebene.Visual Studio Graphics Debugger auslässt Arbeitspixelshader
Obwohl dies alles funktioniert, kann ich nicht scheinen, einzelne Frames mit den Visual Studio Graphics Debugger zu analysieren. Die (richtige) Ausgabebild wird derzeit einige Grauton, wie im folgenden Bild zu sehen:
Obwohl die FPS Messungen funktionieren, wenn ich einen Rahmen erfassen, ist es immer so vollständig gezeigt weiß (oder was auch immer Farbe, die ich das Renderziel löschen verwendet) im VSG-Log:
Wenn ich die Visual Studio Graphics Analyzer öffne für einen des Rahmen, sehe ich ein Problem in der Pipeline Grafiken. Der Eingang Assembler und Vertex-Shader arbeiten wie vorgesehen, aber die Pixel-Shader fehlen und es gäbe „kein Gitter vorhanden“ in der Ausgabe Fusion Stufe:
Die Objekttabelle eindeutig fest, dass die Pixel-Shader (obj:7
) ist eingestellt. Hast du irgendwelche Ideen oder Vorschläge, warum es nicht in der Grafikpipeline erscheint oder warum die aufgenommenen Bilder leer sind, obwohl sie in meinem Programm funktionieren? Ich kann ausschließen, dass es eine Rolle spielt, von wo der Shader-Code geladen wird, d. H. Ob ich Compile
oder CompileFromFile
verwende. Eine Sache, die ich immer noch vermute, aber bisher nicht überprüfen konnte, ist, dass die ungeordnete Zugriffsressource im Pixel-Shader den Visual Studio Graphics Debugger verwirrt. Irgendwelche Hinweise? Vielen Dank im Voraus.
Bearbeiten: Dies bezieht sich nicht auf the MSDN walkthrough on misconfigured pipelines, da der Graphics Analyzer zeigt, dass der Pixelshader im Gerätekontext eingestellt ist. Außerdem werden konstante Puffer im Pixel-Shader korrekt eingestellt.
Ich benutze Visual Studio 2013 Ultimative. Ich denke, ich habe den Grund für das Verhalten gefunden, und es scheint tatsächlich die RWTexture zu sein (d. H. Die Ressource mit ungeordnetem Zugriff). Wenn ich es aus dem Shader-Code entferne, wird die Ausgabe genau wie erwartet angezeigt. – hschmauder