Methods and system for artifically and dynamically limiting the display resolution of an application
First Claim
1. A method for limiting a display resolution of an application executing in a discrete graphics processing unit (GPU) in a computing device, the method comprising:
- in response to an initialization of the application with graphical output generated by the discrete GPU, referencing a profile corresponding to the application from a plurality of profiles corresponding to a plurality of applications to determine a memory usage required by the graphical output of the application;
querying a memory of the discrete GPU to determine a size of a frame buffer of the discrete GPU;
calculating, based on the memory usage, a maximum resolution for graphical output of the application generated by the discrete GPU to prevent graphics resources from being transferred to and be stored in a main memory of the computing device, wherein the memory usage includes storage space for graphics resources that comprise a plurality of graphical textures, wherein the memory usage does not exceed the size of the frame buffer;
filtering a first plurality of display resolutions to remove display resolutions that would cause the memory usage of the application to exceed the size of the frame buffer;
caching the filtered first plurality of display resolutions in a display driver corresponding to a display device of the computing device;
forcing a first display re-enumeration of the display driver in response to an API call from the application while executing the application in the computing device to an operating system of the computing device to receive a list of resolutions supported by the display device;
in response to the first display re-enumeration, replacing the list of resolutions supported by the display device with the filtered first plurality of display resolutions that does not exceed the maximum resolution; and
displaying graphical output corresponding to the application on the display device according to a first display resolution of the filtered first plurality of display resolutions,wherein a user is not able to select a resolution of graphical output for the application that exceeds the maximum resolution.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention are directed to provide a method and system for automatically applying artificial limits to display resolutions in a computing system to improve performance. Embodiments are described herein that automatically limits the display resolution of an application executing in a discrete graphics processing unit operating from configurations with limited means of data transfer to the system memory. By automatically limiting the resolution in certain detected circumstances, the rate of generated graphics data may be dramatically increased. Another embodiment is also provided which allows for the automatic detection of an application'"'"'s initialization and pro-actively limiting the user-selectable resolutions in which the output of the application may be displayed in to a maximum resolution calculated for optimal performance. The application'"'"'s termination is also detected, whereupon a comprehensive list of supported resolutions becomes available.
-
Citations
17 Claims
-
1. A method for limiting a display resolution of an application executing in a discrete graphics processing unit (GPU) in a computing device, the method comprising:
-
in response to an initialization of the application with graphical output generated by the discrete GPU, referencing a profile corresponding to the application from a plurality of profiles corresponding to a plurality of applications to determine a memory usage required by the graphical output of the application; querying a memory of the discrete GPU to determine a size of a frame buffer of the discrete GPU; calculating, based on the memory usage, a maximum resolution for graphical output of the application generated by the discrete GPU to prevent graphics resources from being transferred to and be stored in a main memory of the computing device, wherein the memory usage includes storage space for graphics resources that comprise a plurality of graphical textures, wherein the memory usage does not exceed the size of the frame buffer; filtering a first plurality of display resolutions to remove display resolutions that would cause the memory usage of the application to exceed the size of the frame buffer; caching the filtered first plurality of display resolutions in a display driver corresponding to a display device of the computing device; forcing a first display re-enumeration of the display driver in response to an API call from the application while executing the application in the computing device to an operating system of the computing device to receive a list of resolutions supported by the display device; in response to the first display re-enumeration, replacing the list of resolutions supported by the display device with the filtered first plurality of display resolutions that does not exceed the maximum resolution; and displaying graphical output corresponding to the application on the display device according to a first display resolution of the filtered first plurality of display resolutions, wherein a user is not able to select a resolution of graphical output for the application that exceeds the maximum resolution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system for limiting a display resolution of an application executing in a discrete graphics processing unit (GPU) of a computing device, the system comprising:
-
the discrete GPU for rendering graphical output; a display device communicatively coupled to the discrete GPU for displaying the graphical output; a graphics memory communicatively coupled to the discrete GPU, the graphics memory comprising a frame buffer; a processor of the computing device, coupled to a main memory of the computing device, for executing an operating system; a plurality of device drivers, comprised in the operating system, including a display driver corresponding to the display device and a graphics driver corresponding to the discrete GPU; and a plurality of applications including the application hosted on the operating system, wherein in response to an initialization of the application of the plurality of applications, an API call is generated from the application to the operating system of the computing device, a display re-enumeration of the display driver is forced in response to the API call, a list of resolutions supported by the display device is received in response to the display re-enumeration, and the list of resolutions supported by the display device is replaced with a filtered first plurality of display resolutions that does not exceed a maximum resolution for graphical output of the application, wherein the filtered first plurality of display resolutions is calculated by determining a size of the frame buffer for the graphics memory by querying the graphics memory and referencing a profile corresponding to the application from a plurality of profiles corresponding to a plurality of applications to determine a memory usage required by graphical output of the application, and by removing display resolutions that would cause the memory usage of the application to exceed the size of the frame buffer, wherein the memory usage includes storage space for graphics resources that comprise a plurality of graphical textures; wherein the maximum resolution is calculated such that graphics resources generated by the discrete GPU as graphical output of the application is prevented from being transferred to and be stored in the main memory of the computing device, further wherein a user is not able to select a resolution of graphical output of the application that exceeds the maximum resolution. - View Dependent Claims (14, 15)
-
-
16. A method for limiting resolution of an application executing in a discrete graphics processing unit (GPU) of a computing device, the method comprising:
-
in the computing device comprising the discrete GPU comprising a graphics memory, detecting an initialization of the application in response to the detecting the initialization of the application, referencing a profile corresponding to the application from a plurality of profiles corresponding to a plurality of applications to determine a memory usage required by graphical output of the application; querying the graphics memory to determine a size of a frame buffer corresponding to the graphics memory; calculating, based on the memory usage, a maximum resolution for graphical output of the application generated by the discrete GPU to prevent graphics resources from being transferred to and be stored in a main memory of the computing device, wherein the memory usage includes storage space for the graphics resources that comprise a plurality of graphical textures, and wherein the memory usage does not exceed the size of the frame buffer; filtering a list of supported display resolutions to remove display resolutions that would cause the memory usage of the application to exceed the size of the frame buffer; and limiting the display resolution of graphical output corresponding to the application in a display device to a resolution no greater than the maximum resolution, wherein calculating the maximum resolution for graphical output comprises receiving an API call from the application executing to an operating system of the computing device and forcing a re-enumeration of a plurality of resolutions supported by the display device in response thereto, further wherein a user is not able to select a resolution of graphical output of the application that exceeds the maximum resolution. - View Dependent Claims (17)
-
Specification