Un controlador ATI ™ de Open Graphics Library® (OpenGL®) es una interfaz de software desarrollada por ATI ™ Technologies para ser el puente entre el hardware de su tarjeta gráfica y la interfaz de programación abstracta (API) para la biblioteca OpenGL®. Hay diferentes controladores para cada sistema operativo y diferentes controladores para las distintas arquitecturas de tarjetas gráficas que se venden. El controlador OpenGL® ATI ™ está diseñado específicamente para hacer el mejor uso del hardware de gráficos mientras mantiene una interfaz compatible con OpenGL® API. El controlador incluye extensiones OpenGL® personalizadas que se pueden usar para acceder a características especiales o funciones aceleradas de la tarjeta gráfica de manera consistente dentro del marco OpenGL®. No todas las tarjetas gráficas ATI ™ tienen su propio controlador OpenGL® ATI ™ personalizado, lo que significa que algunas comparten un controlador común, lo que puede generar problemas cuando se solicitan determinadas funciones que el hardware no admite.
Una de las tareas más importantes que realiza el controlador OpenGL® ATI ™ es acceder al hardware de la tarjeta gráfica directamente a través de cualquier interfaz de hardware que esté utilizando para comunicarse con el sistema informático principal. Esto beneficia a los programadores, porque el fabricante produce los controladores dentro de especificaciones estrictas para el mejor rendimiento. Además, ATI ™ trabaja con la Junta de Revisión de Arquitectura (ARB) que mantiene la especificación OpenGL® de modo que, a medida que se desarrolla nuevo hardware, OpenGL® puede evolucionar simultáneamente y el soporte puede implementarse desde ambos lados.
Las operaciones que usan números de punto flotante, por ejemplo, se mueven a través de los controladores OpenGL® ATI ™ y luego se manejan mediante la unidad de procesamiento de gráficos (GPU) en la tarjeta gráfica, que tiene registros especiales para hacer las operaciones lo más rápido posible sin usar ningún de la potencia de procesamiento de las principales computadoras. Muchas operaciones de bajo nivel que tratan con fragmentos, vértices y matrices se pasan directamente a la GPU, en la mayoría de los casos, a través del controlador. Este tipo de funcionalidad sería imposible o muy poco confiable si el controlador no estuviera presente.
Los procedimientos gráficos completos se pueden optimizar a través del hardware. Por ejemplo, el controlador OpenGL® ATI ™ puede pasar información a la GPU para que el suavizado, la combinación y el muestreo múltiple se puedan realizar directamente en el hardware. El controlador también proporciona acceso a la memoria temporal dentro de la tarjeta para que las imágenes de textura o las matrices de vértices se puedan almacenar y operar completamente dentro del hardware de gráficos.
Existen algunas complicaciones al utilizar un controlador OpenGL® ATI ™. Hay tantos modelos de hardware de tarjetas gráficas ATI ™ que algunos controladores se comparten y pueden causar problemas de compatibilidad con determinadas llamadas a funciones. También hay algunos pasos de programación no estándar que no son OpenGL® que pueden necesitar ser realizados para que la tarjeta ATI ™ pueda implementar sus propias optimizaciones. Crear un programa que esté optimizado para una tarjeta gráfica ATI ™ también puede significar crear un programa que no sea compatible con otra marca de tarjeta.