windows - files - tag folders
GDI ha sido acelerado. ¿Alguien sabe cuando sucedió esto? (5)
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. Por lo tanto, siempre estamos mirando para ver si las operaciones de gráficos no consumen 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í.
¿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 (Ferrucio, Torlack y Rob Walker) pero mi pregunta no ha sido respondida todavía. 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 que está relacionado con el conductor según 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.
GDI funciona llamando a varias funciones en el controlador del dispositivo gráfico. 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 en particular no se implementa en 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 dedicado a los gráficos.
También es posible que el proveedor de la tarjeta gráfica, 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.
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.
Vista tiene una nueva arquitectura de controlador de pantalla que proporcionaría una oportunidad para un aumento dramático en el rendimiento. ¿Estás comparando combinaciones de hardware / sistema operativo?
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.
Más información sobre wikipedia, Desarrollo de 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.
GDI fue acelerado por 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 te alegres: 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?).