Accelerated Open Graphics Library® (OpenGL®) mode in computer graphics is a state that can be activated in a computer graphics card to use the hardware abilities of the graphics card to perform some or all of the OpenGL® commands and renderings instead of defaulting to purely software-based functionality. Not all graphics cards support a hardware-accelerated OpenGL® mode, and some that do support the mode do not fully accelerate all the commands available in the OpenGL® library. Depending on the hardware and drivers used in a particular computer or device, accelerated OpenGL® mode occasionally might actually be slower than software rendering mode, whether because of conflicts or just because a computer processor is faster than the graphics processor. When writing applications that use accelerated OpenGL® mode, it can be difficult to accurately detect and use the mode exclusively, because the implementation of how to handle accelerated modes is not standardized and can vary greatly from one driver to the next.
The OpenGL® graphics library is an abstract programming interface (API) that provides a buffer between graphics hardware and the software written to access it. In general, OpenGL® works with a client-server model, meaning the software becomes a client that then sends drawing requests and information to the server, which usually is the OpenGL® driver and hardware. The driver that is provided either by the operating system or the graphics card manufacturer can vary greatly in its internal implementation, so some more advanced hardware functionality is not always standardized. Hardware-accelerated OpenGL® mode is one of the features that is left to the graphics card manufacturers for implementation.
When a program uses hardware-accelerated OpenGL® mode, what actually happens is that an OpenGL® function call is made and passed to the driver. Should the driver detect that acceleration is active or that a specific operation has direct hardware support, then the function is passed directly to the graphics processing unit (GPU) located on the graphics card. If there is no acceleration active or present, then the command will be processed and executed through standard software calls and algorithms. In most cases, hardware acceleration provides much faster rendering times than pure software.
Some graphics cards support an accelerated OpenGL® mode, but only at a specific resolution and color depth. This means a graphics card might automatically use an accelerated mode if, when a program initializes OpenGL®, it requests a specific resolution and color depth. Graphics hardware can be very different, so this mode is not always apparent and sometimes can be difficult to automatically detect from within a program without user input. In addition to the driver and hardware having to support an accelerated OpenGL® mode, the monitor or display device also must have native support for the resolution and color depth requested, otherwise switching to an accelerated mode will fail and could prevent a program from executing.