Cursos
Ruta de aprendizaje
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Este explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Las capturas de GPU (o marco) registran todas las llamadas API de Direct3D 12 que realiza la aplicación, normalmente en un solo fotograma (consulte Captura de GPU). PIX puede reproducir esas llamadas de API para mostrar información sobre los parámetros de llamada de API, los estados de canalización y recursos, el contenido del recurso, etc.
Sugerencia
No siempre es posible que PIX tome correctamente una captura de GPU si un juego llama a Direct3D 12 de maneras no válidas. PIX hace todo lo posible para ser sólido incluso en el caso de patrones de uso incorrectos, pero esto inevitablemente es inevitablemente un caso de elementos no utilizados dentro y fuera de elementos no utilizados. Si tiene dificultades para tomar capturas de GPU, pruebe a usar la capa de depuración D3D12 y la validación basada en GPU para buscar y corregir las llamadas API incorrectas.
En la vista Conexión, inicie o conéctese al proceso deseado (asegurándose de que la opción correspondiente Para captura de GPU esté activada).
Configure las opciones de captura de GPU según sea necesario. Para tomar la captura, haga clic en el botón Tomar captura de GPU en PIX o pulse Alt+Imprimir pantalla (o F11, configurable en los ajustes de PIX). Verá una miniatura de la captura en la interfaz de usuario de PIX. En este momento, puede finalizar la aplicación si lo desea. Haga clic en la miniatura para abrir la captura.
Puede tomar una captura mediante programación mediante WinPixEventRuntime. Para obtener más información, consulte la entrada de blog Captura mediante programación.
La vista Eventos muestra todas las llamadas API que se registraron en una captura de GPU. Hay una lista independiente para cada cola de Direct3D 12 (gráficos, proceso o copia) que usó el juego.
La lista de eventos se puede filtrar, opcionalmente mediante expresiones regulares (haga clic en el botón con la etiqueta .*). De forma predeterminada, muestra solo los eventos que dieron lugar a un trabajo de representación real para el hardware de GPU, en lugar de simplemente preparar el estado para su uso por operaciones posteriores. Para incluir eventos que no son de GPU, haga clic en el botón etiquetado !G.
Puede encontrar más información sobre cada evento, como el conjunto completo de parámetros de llamada API, en la vista Detalles del evento. Esa vista se incluye de forma predeterminada en la pestaña Canalización, pero también se puede agregar al diseño actual a través del botón Modo de diseño en la esquina superior derecha de la ventana principal de PIX.
Con una captura de GPU abierta, cambie a la pestaña Información general. Aquí verá algunos detalles básicos sobre la captura.
Para iniciar la generación de perfiles, deberá recopilar datos de tiempo. Para ello, haga clic en el botón Recopilar datos de tiempo en la parte superior derecha de la vista Eventos, o haga clic en Haga clic aquí para iniciar el análisis y recopilar datos de tiempo en la vista Escala de tiempo. Esto reproduce el trabajo de GPU en la captura y recopila datos de tiempo básicos, como Duraciones de ejecución (anotadas con PixEvents, si la aplicación los tiene). Una vez finalizado, puede recopilar datos adicionales para gráficos en las carriles de escala de tiempo, como la información de ocupación y otros contadores específicos de GPU.
Sugerencia
Para obtener los mejores resultados, no interactúe con el equipo mientras PIX recopila datos de tiempo y cierre cualquier otra aplicación que pueda usar la GPU.
También puede ver los contadores desglosados por llamada API en la vista Eventos. Para habilitar o deshabilitar contadores, haga clic en el botón Contadores de lista de eventos (parte superior derecha de la vista Eventos).
Hay dos orígenes de información de tiempo de GPU:
Dado que las GPU son sistemas de procesamiento paralelo masivo y de canalización profunda, es habitual que se ejecute más de una tarea al mismo tiempo y que las operaciones adyacentes se solapen. PIX mide el tiempo de dos maneras diferentes que pueden ofrecer información sobre el modelo de ejecución en paralelo del hardware:
La vista Escala de tiempo muestra uno o varios carriles que muestran el tiempo de cada operación de GPU. Hay un carril independiente que contiene datos de duración de EOP para cada cola (gráficos, proceso o copia) que usa el juego, además de un solo carril que muestra los datos de duración de ejecución (cuando están disponibles) combinados en todas las colas.
Sugerencia
PIX en Windows no superpone actualmente el trabajo de GPU en diferentes colas mientras se analiza el tiempo en las capturas de GPU. Considere la posibilidad de tomar una captura de tiempo si desea ver datos de tiempo de proceso asincrónicos superpuestos. En Capturas de GPU, si un juego usa un proceso asincrónico para ejecutar la representación y el trabajo de proceso simultáneamente, PIX medirá primero uno y luego el otro. Esto puede dar lugar a duraciones notificadas más cortas para cada parte del trabajo en comparación con cómo se ejecutaría dentro del juego original (debido a una contención reducida en la GPU), pero un tiempo total más largo (debido a una paralelización reducida).
PIX expone contadores de rendimiento específicos del hardware proporcionados por IHV a través de un complemento de GPU. Estos contadores se pueden habilitar y recopilar en la vista Contadores de lista de eventos (botón para habilitar en la parte superior derecha de la vista Eventos) o en la vista Contadores de escala de tiempo (botón para habilitar en la parte superior derecha de la vista Escala de tiempo).
En algunas GPU, PIX también puede recopilar información de ocupación. Normalmente, las GPU se construyen como una jerarquía de bloques repetidos, donde cada nivel podría compartir un recurso. Por ejemplo, una GPU imaginaria podría estar estructurada como esta
Las GPU ejecutan sombreadores dividiendo el trabajo del sombreador en ondas (también se denominan distorsiones o frentes de onda). En el diagrama anterior, cada bloque azul es capaz de ejecutar una onda. Cada bloque verde podría ejecutar hasta cuatro ondas.
Como todos los bloques azules comparten un único conjunto de registros, si una carga de trabajo necesita todos los registros, solo se puede ejecutar una onda a la vez en el bloque verde. En ese caso, la ocupación del bloque verde sería 1, de una posible ocupación total de 4.
En cualquier momento, todos los bloques verdes podrían estar ejecutando un número diferente de ondas. De los cuatro bloques verdes de arriba, uno podría estar ejecutando 3 ondas, otro 2 ondas y la onda restante 1. PIX reduce todos esos datos a un único valor: la ocupación máxima, que sería 3 en este ejemplo.
Esto se presenta en PIX en el carril de Ocupación, que muestra la ocupación máxima, separada por la fase de sombreador. Es una indicación de cuánto trabajo puede realizar la GPU en paralelo: las barras superiores muestran un mejor uso de GPU.
Con una captura de GPU abierta, cambie a la pestaña Canalización. Esa pestaña contiene una vista Eventos, varias vistas de inspector de estado y de recursos y una vista de Canalización.
Al seleccionar un evento en la vista Eventos, se rellenan varias vistas, en particular la vista Canalización, que se puede usar para inspeccionar las firmas raíz y el estado de la canalización y los recursos enlazados. La vista Canalización también es el punto de entrada en la depuración del sombreador.
Sugerencia
Para realizar la mayoría de las características, deberá iniciar el análisis. El análisis es cómo PIX recopila datos de tiempo, información de estado y recursos. Hay muchas maneras de iniciar el análisis, pero la forma global es a través del botón Iniciar reproducción de análisis en la parte superior derecha de la aplicación. Asegúrese de que la GPU deseada esté seleccionada.
Después de seleccionar un evento en la vista Eventos, las vistas Estado y Canalización (que se encuentran en la pestaña Canalización) muestran detalles del estado de Direct3D en el momento de ese evento. Allí puede ver qué recursos están enlazados a la canalización, el código del sombreador, las entradas, las salidas y los rendertargets enlazados actualmente.
Después de seleccionar un evento adecuado y ejecutar el análisis, puede depurar los sombreadores. En la vista Canalización, hay varias maneras de iniciar la depuración del sombreador:
Sugerencia
Si no puede ver el origen del sombreador al depurar, es probable que falte información de depuración. Asegúrese de que está generando los PDB de sombreador para la aplicación y de que ha configurado PIX para cargar esos PDB.
El código del sombreador HLSL se puede editar directamente dentro de PIX, lo que le permite ver inmediatamente el efecto de los cambios en los resultados o el rendimiento de la representación. Esto puede ser útil para crear prototipos y optimizar sombreadores, ya que puede reducir considerablemente el tiempo de solución al probar ideas diferentes.
Después de seleccionar un sombreador, puede editar su código, para ello, haga clic en Editar>Aplicar. Otras vistas (como OM RTV 0) se actualizarán para mostrar el efecto del cambio. Es posible que le resulte útil acoplar más de una instancia de la vista Canalización junto a la otra para ver los resultados rendertarget al mismo tiempo que editar el código del sombreador.
Si pierde el seguimiento de lo que cambió exactamente, haga clic con el botón derecho en el código del sombreador y elija Diferencias con original.
Sugerencia
PIX en Windows aún no permite guardar sombreadores modificados en el archivo de captura.
Los visualizadores Rendertarget están disponibles en la vista Canalización al inspeccionar el contenido de un rendertarget. El visualizador de imágenes predeterminado solo muestra la imagen como normal y se puede cambiar seleccionando una visualización diferente en la vista Visualización.
Para cualquier recurso similar a píxeles (por ejemplo, RTV, UMV o búferes de profundidad), puede ver todas las operaciones que afectaron a un píxel determinado mediante el Historial de píxeles. Para acceder a él, haga clic con el botón derecho en el píxel deseado y seleccione Mostrar historial de píxeles o haga clic en el botón Historial de píxeles de la vista Detalles de píxeles.
Cursos
Ruta de aprendizaje
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization