Hay muchos artículos en internet pero aún no están claros, así que necesito una explicación clara de cómo funciona la aceleración de hardware con WPF.¿Cómo funciona la aceleración de hardware con WPF?
Respuesta
Su pregunta no proporciona ninguna especificación sobre lo que le produce confusión al leer los artículos en Internet, o qué es exactamente lo que quiere saber sobre la aceleración de hardware en WPF. Por lo tanto, intentaré darle un resumen general, aunque simplificado, de cómo funciona.
Para obtener una representación acelerada por GPU, Windows Presentation Foundation (WPF) representa y presenta gráficos a través de la interconexión de DirectX. La GPU o unidad de procesamiento de gráficos es el chip que alimenta su tarjeta de video. Básicamente, la aceleración de hardware descarga el trabajo de renderizar gráficos en su aplicación WPF desde el procesador principal (CPU) de su computadora al procesador de la tarjeta de video (GPU). Al usar hardware en su tarjeta de video que está específicamente diseñado para representar gráficos en lugar de funciones de software ejecutadas por la CPU, el rendimiento de los gráficos y la interfaz de usuario de su aplicación aumentan o se aceleran. El objetivo final es que las rutinas gráficas complejas se conviertan en encuadernadas (es decir, limitadas por las capacidades de la GPU), en lugar de con destino al procesador (es decir, limitadas por las capacidades y la velocidad de la CPU de la computadora). Esto libera la CPU para hacer otro trabajo, aprovecha al máximo las capacidades gráficas únicas de su tarjeta de video y acelera el rendimiento de su aplicación cada vez que el usuario se actualiza a una tarjeta de video más nueva, más rápida y más avanzada (a medida que se vuelven disponible).
Esto, por supuesto, asume que su tarjeta de video es compatible con la aceleración de hardware. De hecho, no todos lo hacen, y WPF acomoda esto con un enfoque de tres niveles:
Si su tarjeta de vídeo no proporcionar cualquier nivel de aceleración de hardware, como por ejemplo si se está ejecutando una versión de DirectX inferior a 7.0, WPF vuelve al modo de representación de nivel 0 o aceleración de software.
Si su tarjeta de vídeo es compatible con la aceleración parcial hardware, como si se está ejecutando una versión de DirectX entre 7,0 y 9,0, a continuación, utiliza WPF Nivel 1 modo de representación.
Si su tarjeta de vídeo compatible con plena aceleración de hardware para todos salida de gráficos, que corresponde a una versión de DirectX igual o mayor que 9,0, entonces WPF utiliza el modo de representación de nivel 2.
This MSDN page proporciona más información sobre estos niveles procesamiento de gráficos y exactamente qué características y capacidades de soporte de aceleración de hardware.
Y no sé si ya ha visto this blog post, pero con una mejor comprensión de lo que acabo de explicar, puede que tenga más sentido para usted cuando lo vuelva a leer ahora.
Recuerde, sin embargo, que parte del trato con WPF es que no tiene que preocuparse por los detalles y la idiosincrasia de este proceso. La tecnología es lo suficientemente inteligente como para utilizar optimizaciones de hardware siempre que sea posible, mientras que se recurre a la representación basada en software cuando sea necesario. Sus aplicaciones WPF funcionarán incluso en computadoras más antiguas con tarjetas de video heredadas, aunque más lentas que en un cliente más nuevo. Por lo tanto, esto es probablemente algo de lo que no debe preocuparse más allá de la curiosidad casual.
- 1. ¿Cómo se desactiva una aceleración de hardware en wpf?
- 2. QGL ¿Aceleración de hardware y hardware?
- 3. Android TextureView aceleración de hardware con lockCanvas()
- 4. Android: Habilite la aceleración de hardware
- 5. Android ffmpeg y aceleración de hardware
- 6. Lona en SurfaceView - aceleración por hardware
- 7. Detecta aceleración de hardware en tiempo de ejecución: Android
- 8. translate3d vs css left/top y aceleración de hardware
- 9. ¿Animar el valor de una transformación CSS3 con javascript no permite la aceleración de hardware?
- 10. ¿Dónde está la aceleración de hardware en el emulador de ICS?
- 11. ¿Cómo funciona la salida de GUI desde la aplicación al nivel de hardware?
- 12. ¿WPF funciona con C++?
- 13. La aceleración de XPath
- 14. La aceleración de Java
- 15. Deshabilitar aceleración de hardware de Adobe Flash Player en el código de inserción o AS
- 16. Aceleración de la búsqueda SOLR
- 17. Arquitectura de WPF y aceleración de gráficos Direct3D
- 18. ¿Cómo comenzar con la programación de la interfaz de hardware?
- 19. ¿Cómo funciona la propiedad WPF Button.IsCancel?
- 20. Webkit: CSS fuerza aceleración de hardware para transformaciones 2D sin usar propiedades 3D CSS
- 21. Habilitar aceleración de hardware en la aplicación para Android, la orientación de nido de abeja y las versiones anteriores
- 22. Android obtener la aceleración normalizada
- 23. Honeycomb Hardware Acceleration no parece funcionar con setColorFilter
- 24. Java Hardware Acceleration
- 25. WPF: ComboBox TextSearch, ¿cómo funciona?
- 26. Función de aceleración con la función FitBounds() de Google Maps
- 27. ¿De dónde viene la aceleración súper lineal?
- 28. Sin aceleración con encabezados precompilados en gcc (pero gran aceleración con Visual Studio)
- 29. ¿Recomendaciones/límites de hardware cuando se usa WPF?
- 30. ¿Cómo se puede extraer la identificación del hardware con Python?
Tengo un proyecto WPF, donde necesito renderizar 200,000 polígonos usando la función StreamGeometryContext y PolyLineTo en el OnRender del control del usuario. Cuando lo hice, las ventanas enteras se vuelven extremadamente lentas incluso para arrastrar la ventana. Todos los objetos poligonales y el bolígrafo están Congelados. No creo que la aceleración por hardware se esté utilizando aquí. ¿Cualquier sugerencia? Mi sistema es Widows 7 + Visual Studio 13. –
He actualizado el enlace de MSDN para que apunte a la versión .NET 4.0, ya que el enlace de la versión actual (sin versión) ahora está roto: MS parece haber eliminado el artículo de .NET 4.5+. – Bob