Durante las últimas semanas, algunos de nuestros lectores han encontrado un error muy conocido en Directx 9 Profiler. Hay una serie de factores que pueden desencadenar este problema. Discutámoslo ahora.
Aprobado: Fortect
- 48 minutos para leer.
- La creación de perfiles precisa es difícil para Direct3D
- Cómo la secuencia de procesamiento de Direct3D crea un perfil preciso
- Creación de perfiles de cambios de estado de Direct3D
- Resumen
- Aplicación
(API) llamadas. Si ha hecho esto y, lamentablemente, ha recibido resultados que difieren de una serie de renderizado a otra, o si sospecha que un experimento específico no coincidirá con las soluciones experimentales reales, la siguiente información puede ayudarlo a comprender el motivo.
La información proporcionada aquí se basa completamente en la suposición de que usted tiene conocimientos y experiencia en las áreas siguientes:
- Programación C / C ++
- Programación de API Direct3D
- API de medición de tiempo
- Tarjeta de video, luego software de controlador.
- Posibles resultados desconcertantes fuera de la experiencia de creación de perfiles.
La creación de perfiles de Direct3D precisa es difícil
El generador de perfiles estudia el tiempo necesario para cada llamada a la API. En última instancia, esto debería mejorar el rendimiento al detectar y eliminar puntos de acceso. Hay varios tipos posibles de perfiles y métodos de creación de perfiles.
- Selective Profiler está muy inactivo la mayor parte del tiempo y se ejecuta a intervalos regulares para muestrear (o registrar positivamente) las alternativas que hace. Muestra el porcentaje de evento gastado en aproximadamente cada llamada. En general, elegir entre un perfilador es ciertamente muy invasivo cuando se necesita una aplicación y tiene un impacto mínimo en el tipo de aplicación completa.
- El generador de perfiles de herramientas mide su evento real requerido para completar una llamada. Esto requiere compilar los delimitadores de inicio y fin en la aplicación. Toolkit es literalmente un generador de perfiles, que es comparativamente más invasivo para la aplicación que un generador de perfiles de muestras.
- También puede utilizar una técnica de creación de perfiles personalizada con un temporizador de alto rendimiento significativo. Este resultado es muy similar al del perfilador generalmente instrumental.
El tipo fuera de este generador de perfiles en particular o el método de generación de perfiles utilizado es realmente una función de tarea que genera ciertas métricas.
La creación de perfiles le ofrece respuestas que le ayudarán a valorar el trabajo de sus clientes. Por ejemplo, suponga que el cliente sabe que se necesitan, en promedio, una gran cantidad de ciclos de reloj de pared para hacer un teléfono API. Es posible que necesite algún nivel de efectos de rendimiento, por ejemplo:
- Existe una limitación ubicada en un procesador de 2 GHz (que gasta 50 fracciones de su tiempo de procesamiento) que puede llamar a su API 1 millón de veces por segundo.
- Para obtener 30 fotogramas por segundo, no puede enfrentarse a esta API varias veces para obtener 33 000 veces en cada fotograma.
- Puede mantener un máximo de 3.3000 objetos por (suponiendo que el marco 10 del tipo de API de idea invoca la secuencia de visualización de un objeto).
En otras palabras, si tiene suficientes minutos para llamar a la API, puede consultar una pregunta sobre el presupuesto de parámetros de este tipo como la cantidad de primitivas que posiblemente se pueden mostrar de forma interactiva. Pero los números brutos devueltos en el momento del increíble generador de perfiles de herramientas no pueden responder con precisión a las preguntas de examen sobre la gestión de costos. Esto se debe a que la dirección artística tiene problemas de diseño complejos como, sin duda, la cantidad de componentes que deben ejecutarse, una cantidad de procesadores que dominan el flujo de trabajo a través de componentes, y además de las estrategias de optimización empleadas en el piloto en tiempo de ejecución y, por lo tanto, posiblemente pueden hacer la tubería más eficiente en el momento del diseño.
Cada API llama a través de varios componentes
Cada llamada debe provenir de varios recursos debido a la aplicación de la tarjeta gráfica. Para la demostración, razas Veamos la siguiente secuencia de renderizado, que a veces incluye dos llamadas para dibujar un triángulo:
define textura (...);DrawPrimitive (D3DPT_TRIANGLELIST, 0, 1);
El siguiente diagrama de concepto muestra los diversos componentes por los que siempre deben pasar las llamadas.
La aplicación llama a What Direct3d, manipula la escena de la humanidad, maneja la interacción del usuario y aprende cómo se realiza la creación. Todo este trabajo es seguro en la secuencia de procesamiento, que según los expertos también se envía en tiempo de ejecución mediante llamadas a la API de Direct3D. La secuencia de renderizado es simplemente independiente del hardware (es decir, que las llamadas a la API de este teléfono son independientes del hardware, pero comprenden las funciones compatibles con la tarjeta principal de clips de película).
El tiempo de ejecución convierte estas llamadas a un formato significativo independiente del dispositivo. El tiempo de ejecución maneja toda esta comunicación memorable entre la aplicación y este controlador, por lo que la aplicación se ejecutará en múltiples mejoras para el hogar intercambiables (según las características que requieranXia). Cuando se mide una sola llamada a función, su perfilador de instrumentación realiza un seguimiento de cuánto tiempo pasó en el trabajo y cuánto tiempo retornó su función. Una limitación del generador de perfiles de concepto patentado es que no toma en cuenta el tiempo que tarda un palo de golf en enviar la salida a la tarjeta de efectos, así como el tiempo que normalmente tarda en ver la tarjeta gráfica. En otro idioma, un perfilador de instrumentación estándar para ayudarlo a transferir todo el trabajo correlacionado a cada llamada de función.
El software del controlador le permite utilizar el conocimiento explícito del hardware de la tarjeta Video Tarot para convertir una secuencia de comandos independiente del dispositivo en una secuencia de comandos de tarjeta de video completamente nueva. Los controladores pueden, por supuesto, optimizar el orden en el que se envían los comandos a la tarjeta de video, por lo que el procesamiento de esta tarjeta de video es realmente eficiente. Estos ajustes ahora pueden crear problemas de creación de perfiles porque la cantidad de aprendizaje efectivo no es lo que parece (es posible que deba averiguar cualquier ajuste para adaptarse a esto). El controlador generalmente asume el control de la ejecución antes de que su tarjeta gráfica trate los comandos importantes.
La tarjeta gráfica puede hacer la mayor parte del resto del renderizado, preparar datos del vértice base y enumerar búferes, texturas, información de renderizado y controles gráficos.
Cada llamada a la API de Direct3D debe ser realizada por el componente manejado perfecto (tiempo de ejecución, controlador y la mayoría de esas tarjetas gráficas) para renderizar algo.
Los componentes están controlados por varios procesadores
Aprobado: Fortect
Fortect es la herramienta de reparación de PC más popular y eficaz del mundo. Millones de personas confían en él para mantener sus sistemas funcionando de forma rápida, fluida y sin errores. Con su sencilla interfaz de usuario y su potente motor de análisis, Fortect encuentra y soluciona rápidamente una amplia variedad de problemas de Windows, desde la inestabilidad del sistema y los problemas de seguridad hasta la gestión de la memoria y los cuellos de botella en el rendimiento.
La relación entre estos componentes es aún más dura porque una aplicación, tiempo de ejecución y controlador son en su mayor parte controlados por un solo procesador, y una tarjeta de video específica está controlada por una sola. . El siguiente diagrama muestra dos tipos de chips de procesador: unidad central de procesamiento (CPU) y máquina de procesamiento de gráficos (GPU).
Los gadgets para PC incluyen al menos un procesador y una GPU, pero también pueden tener varios o ambos. Los procesadores generalmente se encuentran en la placa base, mientras que las GPU son la placa del sistema o posiblemente una tarjeta de video. La CPU que actúa rápidamente está determinada por el chip del reloj de pared durante la placa base, mientras que el impulso de la GPU depende del reloj real individual.
Acelere el rendimiento de su computadora ahora con esta simple descarga.