Methods and system for artifically and dynamically limiting the display resolution of an application

US9830889B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9830889-B2
Application numberUS-65117709-A
CountryUS
Kind codeB2
Filing dateDec 31, 2009
Priority dateDec 31, 2009
Publication dateNov 28, 2017
Grant dateNov 28, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. The method according to claim 1 , wherein the calculating, the filtering, the caching, the forcing, and the replacing are performed dynamically in response to a detecting an initializing of an execution of the application in the computing device. 3. The method according to claim 2 , further comprising: detecting a termination of the execution of the application in the computing device; forcing a second display re-enumeration of the display driver to receive a plurality of supported display settings; in response to the second display re-enumeration, querying the driver of the discrete GPU to determine a second plurality of display resolutions supported by the discrete GPU; and returning the second plurality of display resolutions as the list of resolutions supported by the display device, wherein the list of display resolutions is supported by the display device is supported by the discrete GPU irrespective of the application. 4. The method according to claim 1 , wherein the filtering the first plurality of display resolutions comprises: accessing the profile corresponding to the application from the plurality of profiles; and parsing the profile to derive memory usage requirements corresponding to the application. 5. The method according to claim 4 , wherein the memory usage requirements corresponding to the application is stored in a data structure comprised in the profile corresponding to the application. 6. The method according to claim 5 , wherein the data structure is a table. 7. The method according to claim 1 , wherein the first plurality of display resolutions comprises a selection of resolutions from the plurality of supported display resolutions. 8. The method according to claim 1 , wherein the first plurality of display resolutions comprises the maximum resolution in which a frame of graphical output is able to be rendered by the discrete GPU and, when stored with a plurality of graphical textures in the frame buffer comprised in the memory of the discrete GPU, will not exceed a size of the frame buffer. 9. The method according to claim 8 , wherein graphical output corresponding to the application is displayed in the display device at a resolution which does not exceed the maximum resolution. 10. The method according to claim 1 , wherein the forcing a display re-enumeration of the display driver is performed by an operating system executing on the computing device. 11. The method according to claim 10 , wherein the forcing a display re-enumeration comprises: making an application programming interface (API) call to an operating system executing on the computing device, wherein the API call comprises a flag; and querying the display driver for the first plurality of display resolutions in response to receiving the API call comprising the flag. 12. The method of claim 1 , further comprising: presenting the first plurality of display resolutions to a user of the system; prompting the user for a selection of a display resolution from the first plurality of display resolutions; receiving the selection of the display resolution; and setting the first display resolution to the selection. 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

Assignees

Inventors

Classifications

  • using a cache memory · CPC title

  • Resolution change, inclusive of the use of different resolutions for different screen areas · CPC title

  • G09G5/393Primary

    Arrangements for updating the contents of the bit-mapped memory · CPC title

  • Resolution modifying circuits, e.g. variable screen formats · CPC title

  • Graphics controller able to handle multiple formats, e.g. input or output formats · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9830889B2 cover?
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 d…
Who is the assignee on this patent?
Diard Franck, Kadaba Ganesh, Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G09G5/393. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 28 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).