IP Library Granted Patent US 8,144,159
Granted Patent B2
US 8,144,159 · App. 13/111,089 · Granted Mar 27, 2012

Partial display updates in a windowing system using a programmable graphics processing unit

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,144,159
App. No.
13/111,089
Granted
Mar 27, 2012
Kind
B2
Abstract

Techniques to generate partial display updates in a buffered window system in which arbitrary visual effects are permitted to any one or more windows (e.g., application-specific window buffers) are described. Once a display output region is identified for updating, the buffered window system is interrogated to determine which regions within each window, if any, may effect the identified output region. Such determination considers the consequences any filters associated with a window impose on the region needed to make the output update.

Claims (39)

1. A method to generate a display-wide visual effect using one or more processing units, comprising:

copying content from an image buffer into a second buffer;

filtering by executing one or more fragment programs on a graphics processing unit capable of executing a plurality of fragment programs in parallel, the second buffer's contents back into the image buffer to generate a specified visual effect, wherein the image buffer is associated with a system frame buffer; and

compositing by executing one or more fragment programs on the graphics processing unit, an application-specific window buffer into the image buffer, wherein the act of compositing is performed by the graphics processing unit after the act of filtering and wherein the application-specific window buffer comprises a backing store associated with a computer application executing in a computer's buffered window system.

2. The method of claim 1 , wherein the act of filtering comprises filtering less than all of the second buffer's contents.

3. The method of claim 1 , wherein the specified visual effect comprises one or more of the following visual effects: color effects, distortion effects, stylized effects, composition effects, half-tone effects, transition effects, tile effects, gradient effects, sharpen effects and blur effects.

4. The method of claim 1 , further comprising transferring contents of the image buffer to the system frame buffer after the act of compositing.

5. A method to generate a display-wide visual effect, comprising:

filtering, by executing one or more fragment programs on a graphics processing unit, first content from an application-specific window buffer and second content from an image buffer into a second buffer to create third content using the graphics processing unit to generate a specified visual effect wherein the graphics processing unit is capable of executing a plurality of fragment programs in parallel and wherein the application-specific window buffer comprises a backing store associated with a computer application executing in a computer's buffered window system; and

transferring, using the graphics processing unit, the third content of the second buffer into the image buffer, said image buffer associated with a system frame buffer.

6. The method of claim 5 , wherein the act of filtering comprises filtering less than all of the first content from the application-specific window buffer.

7. The method of claim 5 , wherein the specified visual effect comprises one or more of the following visual effects: color effects, distortion effects, stylized effects, composition effects, half-tone effects, transition effects, tile effects, gradient effects, sharpen effects and blur effects.

8. A method to generate a display-wide visual effect, comprising:

compositing, by executing one or more fragment programs on a graphics processing unit, first content from an application-specific window buffer into an image buffer to create second content, said image buffer associated with a system frame buffer wherein the application-specific window buffer comprises a backing store associated with a computer application executing in a computer's buffered window system;

copying the second content from the image buffer into a second buffer to create third content; and

filtering, by executing one or more fragment programs on the graphics processing unit, the third content in the second buffer into the image buffer using the graphics processing unit to generate a specified visual effect wherein the graphics processing unit is capable of executing a plurality of fragment programs in parallel.

9. The method of claim 8 , wherein the act of filtering first content comprises filtering less than all content in the application-specific window buffer.

10. The method of claim 8 , wherein the specified visual effect comprises one or more of the following visual effects: color effects, distortion effects, stylized effects, composition effects, half-tone effects, transition effects, tile effects, gradient effects, sharpen effects and blur effects.

11. A non-transitory computer-readable medium having computer-executable instructions stored therein for causing one or more programmable processing units to perform the method recited in claim 1 .

12. A non-transitory computer-readable medium having computer-executable instructions stored therein for causing one or more programmable processing units to perform the method recited in claim 5 .

13. A non-transitory computer-readable medium having computer-executable instructions stored therein for causing one or more programmable processing units to perform the method recited in claim 8 .

14. A computer system, comprising:

a central processing unit;

memory, operatively coupled to the central processing unit, said memory adapted to provide a plurality of application-specific window buffers, at least one assembly buffer, and at least one frame buffer;

a display port operatively coupled to the frame buffer and adapted to couple to a display device;

a graphics processing unit operatively coupled to the memory and capable of executing a plurality of fragment programs in parallel; and

one or more programs for causing the graphics processing unit to perform the method recited in claim 1 .

15. A computer system, comprising:

a central processing unit;

memory, operatively coupled to the central processing unit, said memory adapted to provide a plurality of application-specific window buffers, at least one assembly buffer, and at least one frame buffer;

a display port operatively coupled to the frame buffer and adapted to couple to a display device;

a graphics processing unit operatively coupled to the memory and capable of executing a plurality of fragment programs in parallel; and

one or more programs for causing the graphics processing unit to perform the method recited in claim 5 .

16. A computer system, comprising:

a central processing unit;

memory, operatively coupled to the central processing unit, said memory adapted to provide a plurality of application-specific window buffers, at least one assembly buffer, and at least one frame buffer;

a display port operatively coupled to the frame buffer and adapted to couple to a display device;

a graphics processing unit operatively coupled to the memory and capable of executing a plurality of fragment programs in parallel; and

one or more programs for causing the graphics processing unit to perform the method recited in claim 8 .