2010-05-30 12 views
5

Tengo que ejecutar una aplicación wpf en un entorno que tenga todas las mismas PC dell con un chip gráfico intel gma 3000 (onbard, Q963/Q965). La aplicación hace únicamente con software de renderización (Expresado así también por la RenderCapability.Tier -property y también Perforator del Kit de herramientas de rendimiento muestra que.Cómo saber si una tarjeta gráfica proporciona procesamiento de hardware para wpf

En todas estas máquinas, se instala DirectX 9c y DXDiag afirma en muchos, pero no en todo esto máquinas, que Direct-3d y Direct-Draw-acceleration están activadas. También verifiqué el registro si la configuración de estas máquinas deshabilitaba el procesamiento de wpf-hw, pero ese tampoco es el caso. En una máquina también actualicé el controlador de video y dx sin éxito

Si interpreto los recursos correctamente, entonces en una PC que tiene DirectX 9c instalado (y D3D-acceleration está activo), también se realiza la representación del hardware wpf. Pero en las máquinas anteriores se instala DX9c, h sin embargo, no hay representación de hw. De acuerdo con la especificación proporcionada por la publicación de Daniel Bern, también creo que al menos la representación en el nivel 1 debe ser posible y activa.

Lo único que no me importa es la memoria, porque el sistema de gráficos asigna dinámicamente la memoria del sistema y no tiene memoria propia. ¿Cómo puedo averiguar si un chip de gráficos específico tiene que admitir la representación de hardware para wpf o no? ¿Es así que con DirectX 9c activo también se admite la reproducción de hardware o también hay otros requisitos que deben cumplirse que van más allá de lo que requiere dx9c? La segunda pregunta es, si wpf representa a través de dx, se hace a través de direct-3d o se usa el dibujo directo. ¿Hay alguna buena documentación sobre este tema?


Resultó que en el pc clientes de la aceleración-3d-directa fue activa (en DXDiag), frecuencia se elevó no funcional. Los programas de prueba para probar el 3d directo siempre terminaron en errores. Esto convierte el problema en un problema de soporte y abriré un ticket en el departamento de soporte de las empresas involucradas.

La pregunta sobre qué componente de dx se utiliza para procesar wpf en el hardware se puede responder de la siguiente manera: La representación se realiza a través de la Capa de integración de medios (MIL). Si DirectX (versión apropiada) está disponible y es operable, MIL escribe todos los comandos de representación directamente a D3D. Adicionalmente, DirectShow (o su sucesor) se usa para procesar videos. La capa de integración multimedia es un código no administrado y parece que hay muy poca documentación sobre.

Los hechos anteriores me llevaron a la percepción de que un DirectX9c activo es un claro indicador de que hw-rendering para wpf puede y tendrá lugar. Por lo tanto, la pregunta de qué chip es compatible con hw-rendering puede responderse verificando si el chip admite dx9c (para la representación de nivel 2). La especificación de requisitos se puede encontrar en here (gracias a Daniel Bern).

ACTUALIZACIÓN

La razón por la D3D y renderizado de hardware no funcionan en el caso anterior era una aplicación que registró un controlador de vídeo espejo para proporcionar servicios de terminal remoto, tal como lo hace el encuentro en red (que era el software de la departamento de soporte que se usó para administrar remotamente la PC del cliente). La desactivación de este controlador de espejo condujo a un 3d directo funcional y, por lo tanto, se realizó la representación de hardware de WPF. Sin embargo, el nivel de renderizado fue solo el nivel 1 (creo que debido a la limitación de la memoria de video).

Espero que esta publicación ayude a otras personas que tienen un problema similar.

Aquí algunos enlaces para entrar en el tema:

WPF Architecture Overview, Hardware Acceleration in WPF, Introducing Direct2D, Advanced WPF Application Performance Tuning and Analysis, RenderCapability.Tier returns not the render mode

Respuesta

Cuestiones relacionadas