2012-10-04 20 views
5

Sono attualmente in procinto di creare un'applicazione per Windows 8 utilizzando SharpDX (il wrapper directx C# gestito). Tuttavia ho incontrato problemi con uno dei miei shader e voglio sapere se è possibile eseguire il debug di tali applicazioni. PIX non sembra funzionare con le app directX in quanto l'eseguibile non ama l'apertura diretta, e il nuovo toolkit di debug grafico in VS2012 mostra sempre "impossibile avviare l'esperimento" quando provo a catturare qualsiasi informazione sulla mia sessione.Debug dell'applicazione HLSL per Windows 8

Grazie!

+0

Potrebbe chiarire cosa intendi per "Applicazione Windows 8"? Si tratta di un'app di Windows 8 Style per la schermata iniziale o di un'applicazione desktop normale che si trova su Windows 8? IIRC, il DXSDK PixWin richiede che le cose siano costruite con le intestazioni e le librerie DXSDK, mentre VSPIX (Debug grafici in IDE) richiede l'uso delle intestazioni e delle librerie dei kit di Windows 8. –

+0

Mi spiace volevo dire l'app di Windows 8 Style per la schermata iniziale, quali sono le intestazioni di Windows 8 Kits? Intendi solo le cose nello spazio dei nomi di Windows (ad esempio usando Windows;)? Se è così, li ho già inclusi. – Shervanator

risposta

0

Il debugger di DirectX Visual Studio funziona solo con codice nativo. Otterrai l'errore fino a quando non fai clic con il pulsante destro del mouse sul progetto, seleziona "Proprietà", vai alla scheda Debug e abilita il debug nativo.

Mentre ciò rimuoverà l'errore, potrebbe o non potrebbe risolvere il problema. Ho uno scenario simile usando SurfaceImageSource (C++) ospitato in un componente gestito e una DirectXPage in un progetto C++. In entrambi i progetti sembra che il debug di DirectX non riesca ad acquisire i frame. Sembra che questa funzione funzioni solo per i programmi che utilizzano un'interfaccia utente DirectX (nessun componente UI gestito).

2

Sto arrivando a questo post un po 'tardi, ma vorrei solo aggiungere per i futuri visitatori di questo thread che ho usato con successo il Visual Studio 2012 Graphics Diagnostics (' il debugger DirectX ') in entrambi SlimDX e Progetti SharpDX. Ci sono alcune cose che possono disturbare il processo, in particolare nei progetti SlimDX Non riesco a eseguire il debug di app con DX10/11 misto, DX10 non sembra funzionare con VS2012, almeno per il codice gestito. Quindi, se si dispone di rendering di testo, ad esempio, sarà necessario rimuoverlo per la sessione di debug. Direi che utilizzando il seguente per isolare il codice DX10 dovrebbe funzionare

#define DXDIAGSESSION 
    // ... 
#if DXDIAGSESSION 
    // your DX10 code goes here. 
#endif 

E per il progetto SharpDX (C#/WinRT/XAML/SharpDX) non ho potuto utilizzare il Managed Solo Debugger. Ho dovuto impostare il debugger su Mixed (gestito e nativo) per farlo funzionare.

+0

Interessante, per me il Debugger grafico funziona perfettamente nel progetto SharpDX con il debugger nativo disabilitato. –