EP-4736016-A1 - INTELLIGENT DRIVER CONFIGURABILITY
Abstract
An apparatus and method for efficiently providing stability when updated graphics drivers are used in different hardware configurations. A client device includes one or more processors or another type of an integrated circuit that receives a given graphics driver package. When executed by the client device, the operating system stores the components of the authenticated graphics driver package in a protected system folder as part of a staging step. When the client device executes an application, the client device selects between a user mode driver (UMD) of the given graphics driver package and UMDs of the previously staged graphics driver packages. This selection is based on history information collected during past execution of the application. The client device executes the application using installations of the selected UMD and the kernel mode driver (KMD) of the given graphics driver package.
Inventors
- COOPER, NEIL
- MURADYAN, Koryun
Assignees
- ATI Technologies ULC
Dates
- Publication Date
- 20260506
- Application Date
- 20240618
Claims (20)
- 1. A processor comprising: circuitry configured to: receive a process of a first application; select a first user mode driver of a previously staged graphics driver package different from a most-recently staged graphics driver package; and execute the process of the first application using the first user mode driver to translate instructions of the first application to commands.
- 2. The processor as recited in claim 1, wherein the circuitry is further configured to execute the process of the first application using a kernel mode driver of the most-recently staged graphics driver package.
- 3. The processor as recited in claim 1, wherein, while executing the process of the first application, the circuitry is further configured to update performance characteristics associated with the first application and the first user mode driver.
- 4. The processor as recited in claim 3, wherein the circuitry is further configured to select the first user mode driver based further in part on one or more of the performance characteristics.
- 5. The processor as recited in claim 3, wherein the performance characteristics comprise at least a number of crashes of the first application.
- 6. The processor as recited in claim 3, wherein the circuitry is further configured to store a copy of one or more user mode drivers of previously staged graphics driver packages in protected holding locations in a memory.
- 7. The processor as recited in claim 3, wherein the circuitry is further configured to: receive a process of a second application; select a second user mode driver of the most-recently staged graphics driver package based at least in part on one or more of performance characteristics associated with the second application and the second user mode driver; and execute the process of the second application using the second user mode driver to translate instructions of the second application to commands.
- 8. A method comprising: receiving, by circuitry of a first processor, a process of a first application; selecting, by the circuitry, a first user mode driver of a previously staged graphics driver package different from a most-recently staged graphics driver package; and executing, by the circuitry, the process of the first application using the first user mode driver to translate instructions of the first application to commands executable by a second processor different from the first processor.
- 9. The method as recited in claim 8, further comprising executing, by the circuitry, the process of the first application using a kernel mode driver of the most-recently staged graphics driver package.
- 10. The method as recited in claim 8, wherein, while executing the process of the first application, the method further comprises updating, by the circuitry, performance characteristics associated with the first application and the first user mode driver.
- 11. The method as recited in claim 10, further comprising selecting, by the circuitry, the first user mode driver based further in part on one or more of the performance characteristics.
- 12. The method as recited in claim 10, wherein the performance characteristics comprise at least a number of launches of the first application.
- 13. The method as recited in claim 10, further comprising storing, by the circuitry, a copy of one or more user mode drivers of previously staged graphics driver packages to protected holding locations in a memory.
- 14. The method as recited in claim 10, further comprising: receiving, by the circuitry, a process of a second application; selecting, by the circuitry, a second user mode driver of the most-recently staged graphics driver package based at least in part on one or more of performance characteristics associated with the second application and the second user mode driver; and executing, by the circuitry, the process of the second application using the second user mode driver to translate instructions of the second application to commands executable by the second processor.
- 15. A computing system comprising: a first processor configured to execute applications; and a second processor configured to execute applications; and wherein circuitry of the first processor is configured to: receive a process of a first application; select a first user mode driver of a previously staged graphics driver package different from a most-recently staged graphics driver package; and execute the process of the first application using the first user mode driver to translate instructions to commands executable by the second processor.
- 16. The computing system as recited in claim 15, wherein the circuitry is further configured to execute the process of the first application using a kernel mode driver of the most-recently staged graphics driver package.
- 17. The computing system as recited in claim 15, wherein, while executing the process of the first application, the circuitry is further configured to update performance characteristics associated with the first application and the first user mode driver.
- 18. The computing system as recited in claim 17, wherein the circuitry is further configured to select the first user mode driver based further in part on one or more of the performance characteristics.
- 19. The computing system as recited in claim 17, wherein the performance characteristics comprise at least a number of timeout detection and recovery (TDR) events of the first application.
- 20. The computing system as recited in claim 17, wherein the circuitry is further configured to store a copy of one or more user mode drivers of previously staged graphics driver packages to protected holding locations in a memory.
Description
INTELLIGENT DRIVER CONFIGURABILITY CROSS REFERENCE TO RELATED APPLICATION [0001] The present application claims priority to U.S. Patent Application Serial No. 18/346,053 filed June 30, 2023, entitled INTELLIGENT DRIVER CONFIGURABILITY, the entire contents of which are incorporated herein by reference. BACKGROUND Description of the Relevant Art [0002] Video graphics applications rely on graphics drivers for support. A graphics driver translates function calls in a video graphics application to commands particular to a piece of hardware such as a highly parallel data processor. With frequent releases of new applications and updated versions of preexisting applications, stability of these applications executed in particular computing environments is not always guaranteed. For example, users have a variety of computing environments with a large number of combinations of hardware and software configurations. Prior to a release making a particular updated version of a graphics driver available to users, testing the updated version of the graphics driver in the large number of combinations of hardware and software configurations while also meeting a short time-to-market metric is not possible many times. [0003] In view of the above, efficient methods and apparatuses for providing stability when updated graphics drivers are used in different hardware configurations are desired. BRIEF DESCRIPTION OF THE DRAWINGS [0004] FIG. 1 is a generalized diagram of apparatus that provides stability when updated graphics drivers are used in different hardware configurations. [0005] FIG. 2 is a generalized diagram of computing system layering model that provides stability when updated graphics drivers are used in different hardware configurations. [0006] FIG. 3 is a generalized diagram of driver selector that provides stability when updated graphics drivers are used in different hardware configurations. [0007] FIG. 4 is a generalized diagram of computing system that provides stability when updated graphics drivers are used in different hardware configurations. [0008] FIG. 5 is a generalized diagram of a method that provides stability when updated graphics drivers are used in different hardware configurations. [0009] FIG. 6 is a generalized diagram of a method that provides stability when updated graphics drivers are used in different hardware configurations. [0010] FIG. 7 is a generalized diagram of a method that provides stability when updated graphics drivers are used in different hardware configurations. [0011] While the invention is susceptible to various modifications and alternative forms, specific implementations are shown by way of example in the drawings and are herein described in detail. It should be understood, however, that drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the invention is to cover all modifications, equivalents and alternatives falling within the scope of the present invention as defined by the appended claims. DETAILED DESCRIPTION [0012] In the following description, numerous specific details are set forth to provide a thorough understanding of the present invention. However, one having ordinary skill in the art should recognize that the invention might be practiced without these specific details. In some instances, well-known circuits, structures, and techniques have not been shown in detail to avoid obscuring the present invention. Further, it will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements are exaggerated relative to other elements. [0013] Apparatuses and methods that provide stability for updated graphics drivers used in different hardware configurations are contemplated. In various implementations, a client device includes hardware, such as circuitry, of one or more processors or another type of an integrated circuit that includes circuitry for receiving a given graphics driver package. For example, a user requests the given graphics driver package, and the client device receives a copy of the given graphics driver package that is downloaded from a network such as the Internet. In an implementation, the client device receives the downloaded copy of the given graphics driver package, and when executed by the circuitry of the client device, the operating system authenticates the graphics driver package. After successful authentication, the operating system stores the components of the graphics driver package in a protected system folder. The process of copying the graphics driver package to the protected system folder after authentication is called “staging.” [0014] The graphics driver package includes multiple components such as at least two driver files, an installation file, a catalog file, and device files. The two driver files of the graphics driver package inc