2011-01-27 20 views
12

Mi equipo está desarrollando aplicaciones WPF para su implementación en una plataforma de hardware para netbooks Intel Atom Z530. El Intel Atom Z530 viene con gráficos integrados Intel GMA 500, que tiene un núcleo GPU PowerVR SGX 535. El núcleo GPU PowerVR SGX 535 es el núcleo gráfico exacto utilizado en el conjunto de chips A4 de Apple para el iPad.Rendimiento lento de WPF en gráficos integrados GMA 500

Mi pregunta es: ¿Por qué WPF es tan lento con los gráficos PowerVR SGX 535?

En realidad, desactivamos la aceleración de hardware para que nuestra aplicación WPF obtenga un mejor rendimiento (transiciones de pantalla a pantalla, transiciones de diálogo, interacción de gráficos 2D). La pila de tecnología del iPad puede lograr un mejor rendimiento de la interfaz de usuario con el mismo núcleo de gráficos de hardware.

¡Gracias por cualquier idea!

+0

No sé si esto ayuda: ¿Podría intentar actualizar el controlador de video con la versión más reciente, DirectX, e intentar instalar .Net 4 (quizás resuelva algún error y actualice, incluso si está ejecutando .net 3.5) y Win7 para ver si tiene un mejor rendimiento en este dispositivo. – Tony

+0

Gracias por el comentario del conductor. Hemos probado tanto el controlador Intel XP GMA 500 como el controlador IEGD. Ambos tienen un rendimiento similar. Sin embargo, encontramos un gran rendimiento OpenGL con el controlador IEGD. – Bjorn

+0

He oído que Intel afirma que el controlador GMA 500 tiene un error específico de WPF que no planean solucionar. También escuché que la tubería GMA 500 es demasiado pequeña para WPF porque WPF hace todos los diseños de pantalla en la tubería de gráficos. GMA 500 solo espera una carga de trabajo en 3D y no puede asumir la responsabilidad de todas las representaciones de pantalla. – Bjorn

Respuesta

1

Estoy casi seguro de que los procesadores Atom con esos gráficos nunca fueron siquiera considerados cuando WPF estaba en su diseño y las primeras fases de implementación. WPF estuvo en desarrollo hace más de cinco años, mucho antes de que existieran los gráficos GMA 500.

Es posible que tenga mejores resultados con la pila Silverlight 4, que sin duda fue diseñada para entornos livianos. Mucho de lo que es posible en WPF es similar o idéntico en Silverlight. Si no está utilizando gráficos 3D de WPF o cualquiera de las otras características, es posible que pueda obtener un puerto fácil de XAML, al menos.

+0

Las soluciones gráficas integradas de "bajo rendimiento" casi siempre han existido: -] Sin embargo, es cierto que WPF fue diseñado para una pila de hardware con algún tipo de rendimiento. En una nota relacionada, el entorno de host y cualquier transferencia (por ejemplo, GDI <-> DX, si se usa) pueden marcar una gran diferencia. Creo que Windows 7 solucionó algunos de los problemas extra largos del pipeline. –

+0

Tienen, eso es cierto, pero la gente de Microsoft Avalon (más tarde WPF) no se dirigió a ellos; se movieron casi de inmediato a ofrecer Silverlight para una solución liviana. –

+0

Gracias por la recomendación de Silverlight. Nuestro proyecto está comprometido con WPF en este momento y no tenemos la opción de cambiar en este momento. – Bjorn

2

¿Está ejecutando .Net 4 en Windows Embedded Standard 7? Descubrí que WPF funciona mucho mejor en Windows 7 que XP.

¿Cuáles son sus problemas específicos de rendimiento?

Si se trata de animación, intente utilizar la composición en caché (función .Net 4) para aplicar un mapa de bits en cualquier fondo que pueda animar. Además, asegúrese de compartir y congelar todos los pinceles que usa.

Si se trata de gráficos, desplácese a DrawingVisuals en lugar de utilizar Shapes u otras contstructs de nivel superior. También puede usar GDI + para dibujar en WriteableBitmaps como último recurso.

Además, los átomos de doble núcleo también proporcionarán una interfaz de usuario WPF significativamente más suave en mi experiencia. Pruebe un Atom D510 o D525 si es posible. Usan mucha más energía y emiten más calor, pero la mejora de la experiencia del usuario valió la pena para mi producto.

Y tenga en cuenta que las aplicaciones iOS son código nativo. WPF proporciona un nivel de abstracción mucho más alto y un desarrollo mucho más rápido a expensas de un rendimiento generalmente más lento, especialmente cuando los recursos de hardware son limitados.

+0

Estamos ejecutando .NET 3.5 SP1 en Windows Embedded Standard 2009. – Bjorn

+0

El problema más básico que tenemos son las transiciones de pantalla a pantalla. El diseño y renderización de pantallas básicas (TextBlock, Label, TextBox, Button, Grid) lleva más de 1 segundo. – Bjorn

2

He descubierto que todos los chipsets GMA en XP tienen un rendimiento WPF terrible. No solo bajas velocidades de cuadros, sino terribles fallas gráficas y artefactos. Las superficies se verán transparentes, las superficies de video se convertirán en un lío distorsionado, los mouse se volverán confusos.

Nuestra solución ha sido desactivar la aceleración de hardware a través de un parche de registro que ofrecemos a los clientes que tienen problemas.

Cuestiones relacionadas