Compartir a través de


Optimización del rendimiento: Aprovechar el hardware

La arquitectura interna de WPF tiene dos canalizaciones de representación, hardware y software. En este tema se proporciona información sobre estas canalizaciones de representación para ayudarle a tomar decisiones sobre las optimizaciones de rendimiento de las aplicaciones.

Flujo de procesamiento de hardware

Uno de los factores más importantes para determinar el rendimiento de WPF es que está limitado por la representación: cuantos más píxeles que deben representarse, mayor será el precio del rendimiento. Sin embargo, cuanto más procesamiento se pueda transferir a la unidad de procesamiento de gráficos (GPU), más ventajas de rendimiento se pueden obtener. La tubería de representación de hardware de aplicaciones de WPF aprovecha al máximo las características de Microsoft DirectX en hardware que admiten, como mínimo, la versión 7.0 de Microsoft DirectX. Se pueden obtener más optimizaciones con hardware que admita características de Microsoft DirectX versión 7.0 y PixelShader 2.0+.

Flujo de trabajo de renderizado de software

La canalización de representación de software de WPF está completamente enlazada a la CPU. WPF aprovecha los conjuntos de instrucciones SSE y SSE2 en la CPU para implementar un rasterizador de software optimizado y completo. El cambio al software es fluido en cualquier momento en que la funcionalidad de la aplicación no se puede representar mediante la tubería de renderizado de hardware.

El mayor problema de rendimiento que encontrará al representar en modo de software está relacionado con la velocidad de relleno, que se define como el número de píxeles que se están representando. Si le preocupa el rendimiento en el modo de representación de software, intente minimizar el número de veces que se vuelve a dibujar un píxel. Por ejemplo, si tiene una aplicación con un fondo azul, que luego representa una imagen ligeramente transparente sobre ella, representará todos los píxeles de la aplicación dos veces. Como resultado, se tardará dos veces en representar la aplicación con la imagen que si solo tuviera el fondo azul.

Niveles de representación de gráficos

Puede ser muy difícil predecir la configuración de hardware en la que se ejecutará la aplicación. Sin embargo, es posible que desee considerar un diseño que permita a la aplicación cambiar sin problemas las características al ejecutarse en hardware diferente, de modo que pueda aprovechar al máximo cada configuración de hardware diferente.

Para ello, WPF proporciona funcionalidad para determinar la funcionalidad de gráficos de un sistema en tiempo de ejecución. La funcionalidad de gráficos se determina mediante la categorización de la tarjeta de vídeo como uno de los tres niveles de funcionalidad de representación. WPF expone una API que permite a una aplicación consultar el nivel de funcionalidad de representación. Después, su aplicación puede tomar diferentes rutas de acceso de código en tiempo de ejecución según el nivel de renderizado admitido por el hardware.

Las características del hardware gráfico que más afectan a los niveles de representación son:

  • RAM de vídeo La cantidad de memoria de vídeo en el hardware gráfico determina el tamaño y el número de búferes que se pueden usar para crear gráficos.

  • Sombreador de píxeles Un sombreador de píxeles es una función de procesamiento de gráficos que calcula los efectos por píxel. Dependiendo de la resolución de los gráficos mostrados, podría haber varios millones de píxeles que se deben procesar para cada fotograma de pantalla.

  • Sombreador de vértices Un sombreador de vértices es una función de procesamiento de gráficos que realiza operaciones matemáticas en los datos de vértices del objeto.

  • Soporte para multitextura El soporte para multitextura hace referencia a la capacidad de aplicar dos o más texturas diferentes durante procesos de mezcla en un objeto gráfico tridimensional. El grado de compatibilidad con multitextura se determina por el número de unidades de multitextura en el hardware gráfico.

Las características de sombreador de píxeles, sombreador de vértices y multitextura se usan para definir niveles de versión específicos de DirectX, que, a su vez, se usan para definir los distintos niveles de representación en WPF.

Las características del hardware gráfico determinan la funcionalidad de representación de una aplicación WPF. El sistema WPF define tres niveles de representación:

  • Nivel de representación 0 Sin aceleración de hardware gráfico. El nivel de versión de DirectX es menor que la versión 7.0.

  • Nivel de representación 1 Aceleración parcial de hardware gráfico. El nivel de versión de DirectX es mayor o igual que la versión 7.0 y menor que la versión 9.0.

  • Nivel de representación 2 La mayoría de las características gráficas usan la aceleración de hardware gráfico. El nivel de versión de DirectX es mayor o igual que la versión 9.0.

Para obtener más información sobre los niveles de representación de WPF, vea Niveles de representación de gráficos.

Consulte también