2008-09-26 16 views
7

Para delinear el trasfondo de esta pregunta: en el trabajo, usamos estaciones de trabajo Dell Precision. Mi actual tiene una NVidia Quadro FX1700. Mi equipo está desarrollando los componentes gráficos para un sistema de adquisición de datos en tiempo real. Así que siempre estamos buscando para ver si las operaciones de gráficos no utilizan demasiado tiempo de CPU. Para verificaciones rápidas, tenemos un par de programas de prueba que ejecutamos, que dibujan escenas a una velocidad especificada (por ejemplo, 10 fps) y usamos el antiguo Administrador de tareas para ver dónde está el uso de la CPU. Uno de estos programas es pesado en GDI DrawRectangle llamadas (que se llenan). Este programa siempre solía consumir aproximadamente el 40% del tiempo de uso de la CPU, pero desde aproximadamente un año más o menos (solo adivinarlo aquí), solo utiliza alrededor del 2-3% del tiempo del kernel. Entonces claramente está ocurriendo algo de aceleración de hardware aquí. Y, de hecho, si apago HW-accell, volvemos al 40% original de tiempo de usuario. Todo esto es, por supuesto, una buena noticia, porque ya estábamos pensando en ir a OpenGL. Año tras año, GDI nunca obtuvo el beneficio de la aceleración de hardware. Hasta hace un tiempo eso es así.GDI se ha acelerado. ¿Alguien sabe cuando sucedió esto?

¿Alguien sabe algo más sobre esto? ¿Microsoft hizo esto? ¿O es un proveedor de tarjetas gfx específico?

Editar

Thnx para las respuestas ya (Ferruccio, Torlack y Rob Walker), pero mi pregunta no ha recibido ninguna respuesta. Estamos hablando de un rectángulo lleno aquí. Probablemente la función más trivial de optimizar: simplemente envíe un par de coordenadas a la GPU y deje que se rompa. Sin embargo, siempre se implementó en el lado de la CPU. Hasta ahora, las respuestas me llevan a creer que NVidia finalmente vio la luz (después de más de 10 años) y acelerado GDI. Y no hay anuncio sobre esto? No hay información que se encuentre en esto en absoluto. Mis clientes internos me preguntan sobre la velocidad de los gráficos, y todo lo que puedo decir es "bueno, tuvimos suerte".

Edit2

Parece como que es conductor en relación de acuerdo a las diferentes respuestas. Entonces, NVidia ha fabricado controladores GDI repugnantes para sus tarjetas de estación de trabajo durante años. Realmente fue un hecho aceptado dentro de esta compañía que GDI no se aceleró y todas las pruebas lo confirmaron.

+7

No estoy de acuerdo con el cierre. GDI es bastante utilizado, por lo que su rendimiento es relevante, incluso cuando la respuesta está relacionada con un problema muy específico. – reinierpost

+4

Aunque la pregunta tiene 2,5 años, agregaré que tampoco estoy de acuerdo con el cierre. Esta es una pregunta potencialmente útil para mucha gente que está escribiendo código de gráficos. – nitro2k01

+1

@reinierpost: Ahora tiene la reputación suficiente para votar por la reapertura de la pregunta; tenga en cuenta que el propio autor cerró la pregunta, no la multitud o un moderador como uno esperaría a primera vista. Creo que en retrospectiva (octubre de 2008 han sido los primeros días de SO todavía ...) QBziZ debería haber enviado y aceptado * Edit2 * como su propia respuesta de resumen en lugar de cerrar la pregunta para permitir respuestas con más información más adelante eventualmente . Por eso voté para reabrir ahora mismo;) –

Respuesta

2

Hasta cierto punto, GDI siempre se ha acelerado. Incluso en los viejos días Win31 recuerdo tarjetas de compra (Number9) cuyo principal punto de venta fue la aceleración de hardware de GDI.

1

Vista tiene una nueva display driver architecture que proporcionaría una oportunidad para un aumento dramático en el rendimiento. ¿Estás comparando combinaciones de hardware/sistema operativo?

+0

El sistema operativo en el que he probado esto es XP service pack 2. – QBziZ

7

GDI funciona llamando varias funciones en el controlador de dispositivo de gráficos. Hay un conjunto básico de funciones que cada controlador debe implementar. Otras funciones pueden ser implementadas por el controlador. Si no lo son, GDI realizará esas funciones por sí mismo.

Si una función particular no está implementada en el hardware, entonces no tiene sentido que el controlador realice una implementación de software de esa función ya que GDI probablemente pueda hacer un mejor trabajo. GDI está muy bien optimizado para el rendimiento.

A medida que se implementan más funciones en el hardware, no solo esas funciones funcionan mucho mejor, sino que también hay menos trabajo para GDI, lo que resulta en menos tiempo de CPU en gráficos.

También es posible que el proveedor de la tarjeta de gráficos, en un esfuerzo por sacar una tarjeta al mercado rápidamente, no haya implementado todas las funciones de hardware posibles que la tarjeta podría realizar. Las versiones posteriores de ese controlador pueden implementar esa funcionalidad, lo que resulta en un mejor rendimiento.

+1

El hecho es que he estado trabajando con GDI durante más de 10 años, en diferentes plataformas de hardware y nunca sido acelerado por lo que puedo decir. Me gustaría saber si esta aceleración es sistemática ahora o solo específica del proveedor. – QBziZ

1

Muchas de las cosas en 2D se han acelerado durante un tiempo, cada nueva versión principal de Windows ha cambiado la forma en que los controladores de pantalla han funcionado. Creo que fue con XP que Windows renovó su capa de administrador de ventanas. Difícil de comparar, en realidad, ya que XP es más similar a Windows 2000/NT que cualquier versión anterior.

Un poco más de información en la wikipedia, Development of Windows XP.

Windows 2000, ciertamente, fue la primera ventana basada en NT-kernel para incluir DirectX, y también tuvo algunas mejoras gráficas. Windows 2000 (wikipedia)

No creo que haya habido cambios importantes en el modelo de controlador de pantalla/subsistema 2D entre lanzamientos. Entonces, si notaron un cambio como ese, es probable que se deba a algo que hizo nVidia.

5

GDI se aceleró durante bastante tiempo. Hasta donde recuerdo, realmente dependió de su hardware y controladores hasta cierto punto. Por qué has visto un salto en el rendimiento solo recientemente parece extraño.

Sin embargo, no se sienta satisfecho: la aceleración de hardware GDI ya no es compatible con Vista. El nuevo motor de composición de escritorio no lo admite. Sin embargo, en Vista, obtienes un movimiento rápido de las ventanas, ya que la aplicación no siempre tiene que volver a dibujar el contenido (¿y no creo que se rompa?).

+0

Gracias por la respuesta. Buen consejo sobre Vista. Trataré de verificar esto con mi pequeña aplicación de prueba lo antes posible. – QBziZ

Cuestiones relacionadas