A graphics driver can support multiple devices and multiple concurrent use of each device. Therefore, initialization/termination occur in three distinct layers, each layer with its own timing. Initialization occurs in the following order, with termination in the reverse order: