2012-10-04 20 views
5

Actualmente estoy en el proceso de crear una aplicación de Windows 8 usando SharpDX (el contenedor managed C# directx). Sin embargo, he tenido problemas con uno de mis sombreadores y quiero saber si es posible depurar dichas aplicaciones. Parece que PIX no funciona en las aplicaciones directX ya que al ejecutable no le gusta abrir directamente, y el nuevo kit de herramientas de depuración de gráficos visuales en VS2012 siempre dice "no se puede iniciar el experimento" cuando trato de capturar cualquier información sobre mi sesión.Depuración aplicación HLSL para Windows 8

Gracias!

+0

¿Podría aclarar a qué se refiere con "aplicación de Windows 8"? ¿Es esta una aplicación de Windows 8 Style para la pantalla de inicio, o una aplicación de escritorio normal que sucede en Windows 8? IIRC, el DXSDK PixWin requiere que se construyan cosas con los encabezados y libs DXSDK, mientras que VSPIX (Depuración de gráficos en IDE) requiere el uso de los encabezados y libs de los kits de Windows 8. –

+0

Lo siento, quise decir la aplicación Windows 8 Style para la pantalla de inicio, ¿cuáles son los encabezados de los kits de Windows 8? ¿Quiere decir solo las cosas en el espacio de nombres de Windows (es decir, con Windows;)? Si es así, ya los tengo incluidos. – Shervanator

Respuesta

0

El depurador DirectX Visual Studio solo funciona con código nativo. Obtendrá el error que es hasta que haga clic derecho en el proyecto, seleccione "Propiedades", vaya a la pestaña Depuración y habilite la depuración nativa.

Si bien esto eliminará el error, puede o no resolver el problema. Tengo un escenario similar al utilizar SurfaceImageSource (C++) alojado en un componente administrado y DirectXPage en un proyecto de C++. En ambos proyectos, parece que la depuración de DirectX no puede capturar tramas. Parece que esta función solo funciona para programas que usan una interfaz de usuario de DirectX (sin componentes de UI administrados).

2

Llego a esta publicación un poco tarde, pero me gustaría añadir para los visitantes futuros a este hilo que utilicé con éxito el Visual Studio 2012 Graphics Diagnostics ('el depurador de DirectX') tanto en SlimDX como en Proyectos SharpDX. Hay algunas cosas que pueden interrumpir el proceso, especialmente en proyectos SlimDX No pude depurar aplicaciones con DX10/11 mixto, DX10 no parece funcionar con VS2012, al menos para el código administrado. Por lo tanto, si tiene una representación de texto, por ejemplo, deberá eliminarla para la sesión de depuración. Yo diría que utilizando la siguiente para aislar el código de DX10 debe trabajar

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

Y para el proyecto SharpDX (C#/WinRT/XAML/SharpDX) que no podía usar el Gestionado Sólo depurador. Tuve que configurar Debugger to Mixed (Managed and Native) para que funcione.

+0

Interesante, para mí, el depurador de gráficos funciona bien en el proyecto SharpDX con el depurador nativo desactivado. –