Buffers for display acceleration
First Claim
1. A computer-implemented method for processing graphics representations for display on a data processing system, the method comprising:
- generating a first set of graphics commands from a first client application executed by a central-processing unit (CPU), the first set of graphics commands in a first buffer that is associated with the first client application, the first set of graphics commands corresponding to a first image layer;
generating, asynchronously to the generation of the first set of graphics commands, a second set of graphics commands from a second client application executed by the CPU, the second set of graphics commands-stored in a second buffer that is associated with the second client application, the second set of graphics commands corresponding to a second image layer;
in response to detecting the generation of the second set of graphics commands, determining, by a compositing module executed by the CPU, whether composite processing is required to combine the first and second image layers as a composite image;
generating one or more graphics compositing commands for the compositing processing to combine the first image layer and the second image layer, in response to the determining that the compositing processing is required to combine the first image layer and the second image layer, the composite image corresponding to graphics commands including the first set of graphics commands, the second set of graphics commands and the compositing graphics commands; and
transmitting the first set of graphics commands, the second set of graphics commands, and the compositing graphics commands to a graphics queue to be processed by a GPU (Graphics Processing Unit) of a graphics system of the data processing system to display the composite image, wherein the GPU performs graphics processing operations based on the graphics queue in parallel with the compositing module generating the compositing graphics commands.
0 Assignments
0 Petitions
Accused Products
Abstract
Embodiments enable a graphics processor to more efficiently process graphics and compositing processing commands. In certain embodiments, a client application submits client graphics commands to a graphics driver. The client in certain embodiments can notify a window server that client graphics commands have been submitted. In response, the window server can generate compositing processing commands and provide these commands to the graphics driver. Advantageously, a graphics processor can execute the client graphics commands while the window server generates compositing processing commands. As a result, processing resource can be used more efficiently.
44 Citations
37 Claims
-
1. A computer-implemented method for processing graphics representations for display on a data processing system, the method comprising:
-
generating a first set of graphics commands from a first client application executed by a central-processing unit (CPU), the first set of graphics commands in a first buffer that is associated with the first client application, the first set of graphics commands corresponding to a first image layer; generating, asynchronously to the generation of the first set of graphics commands, a second set of graphics commands from a second client application executed by the CPU, the second set of graphics commands-stored in a second buffer that is associated with the second client application, the second set of graphics commands corresponding to a second image layer; in response to detecting the generation of the second set of graphics commands, determining, by a compositing module executed by the CPU, whether composite processing is required to combine the first and second image layers as a composite image; generating one or more graphics compositing commands for the compositing processing to combine the first image layer and the second image layer, in response to the determining that the compositing processing is required to combine the first image layer and the second image layer, the composite image corresponding to graphics commands including the first set of graphics commands, the second set of graphics commands and the compositing graphics commands; and transmitting the first set of graphics commands, the second set of graphics commands, and the compositing graphics commands to a graphics queue to be processed by a GPU (Graphics Processing Unit) of a graphics system of the data processing system to display the composite image, wherein the GPU performs graphics processing operations based on the graphics queue in parallel with the compositing module generating the compositing graphics commands. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory machine-readable medium having instructions stored therein, which when executed by a machine, cause the machine to perform a method for processing graphics representations for display on a data processing system, the method comprising:
-
generating a first set of graphics commands from a first client application executed by a central-processing unit (CPU), the first set of graphics commands stored in a first buffer that is associated with the first client application, the first set of graphics commands corresponding to a first image layer; generating, asynchronously to the generation of the first set of graphics commands, a second set of graphics commands from a second client application executed by the CPU, the second set of graphics commands stored in a second buffer that is associated with the second client application, the second set of graphics commands corresponding to a second image layer; in response to detecting the generation of the second set of graphics commands, determining, by a compositing module executed by the CPU, whether composite processing is required to combine the first and second image layers as a composite image; generating one or more graphics compositing commands for the compositing processing to combine the first image layer and the second image layer, in response to the determining that the compositing processing is required to the first image layer and the second image layer, the composite image corresponding to graphics commands including the first set of graphics commands, the second set of graphics commands and the compositing graphics commands; in response to a ready signal indicating that the first and second sets of graphics commands and the compositing graphics commands are ready for execution, transmitting the first set of graphics commands, the second set of graphics commands, and the compositing graphics commands as a batch of graphics commands to a graphics queue to be processed by the GPU, wherein the GPU executes graphics commands based on the graphics queue in parallel with the compositing module generating the compositing graphics commands. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A data processing system, comprising:
-
a central processing unit (CPU); a graphics system having a graphics processing unit (GPU); and a memory coupled to the CPU to store instructions, which when executed from the memory, cause the CPU to generate a first set of graphics commands from a first client application executed by the CPU via a graphics application programming interface (API), the first set of graphics commands stored in a first buffer that is associated with the first client application, the first set of graphics commands corresponding to a first image layer, generate, asynchronously to the generation of the first set of graphics commands, a second set of graphics commands from a second client application executed by the CPU via the graphics API, the second set of graphics commands stored in a second buffer that is associated with the second client application, the second set of graphics commands corresponding to a second image layer, in response to detecting the generation of the second set of graphics commands, determine, by a compositing module executed in the memory by the CPU, whether composite processing is required to combine the first and the second image layers as a composite image, generate one or more graphics compositing commands for the compositing processing to combine the first image layer and the second image layer, in response to the determining that the compositing processing is required to combine the first image layer and the second image layer, the composite image corresponding to graphics processing representations including the first set of graphics commands, the second set of graphics commands and the compositing graphics processing representations, and transmit the first set of graphics commands, the second set of graphics commands, and the compositing graphics commands as a batch of graphics commands to a graphics queue to be processed by the GPU, wherein the GPU executes graphics commands based on the graphics queue in parallel with the compositing module generating the compositing graphics commands. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A computer-implemented method for processing graphics representations for display on a data processing system, the method comprising:
-
generating a first set of graphics commands from a first client application executed by a central-processing unit (CPU), the first set of graphics commands stored in a first buffer that is associated with the first client application, the first set of graphics commands corresponding to a first image layer; generating, asynchronously to the generation of the first set of graphics commands, a second set of graphics commands from a second client application executed by the CPU, the second set of graphics commands stored in a second buffer that is associated with the second client application, the second set of graphics commands corresponding to a second image layer; in response to detecting the generation of the second set of graphics processing representations, determining, by a compositing module executed by the CPU, whether composite processing is required to combine the first and second image layers as a composite image; generating one or more graphics compositing commands for the compositing processing to combine the first image layer and the second image layer, in response to the determining that the compositing processing is required to combine the first image layer and the second image layer, the composite image corresponding to graphics commands including the first set of graphics commands, the second set of graphics commands and the compositing graphics commands; and performing graphics processing operations, by a graphics processing unit (GPU) of a graphics system of the data processing system, based on the first set of graphics commands, the second set of graphics commands, and the compositing graphics commands to display the composite image representing a combination of the first image layer, the second image layer, and an overlay layer having at least a portion of the first image layer and the second image layer, wherein the GPU executes graphics commands in parallel with the compositing module generating the compositing graphics commands. - View Dependent Claims (29, 30, 31, 32, 33)
-
-
34. A non-transitory computer-readable medium having instructions stored therein, which when executed by a machine, cause the machine to perform a method for processing graphics commands for display on a data processing system, the method comprising:
-
generating a first set of graphics commands from a first client application executed by a central-processing unit (CPU), the first set of graphics commands stored in a first buffer that is associated with the first client application, the first set of graphics commands corresponding to a first image layer; generating, asynchronously to the generation of the first set of graphics commands, a second set of graphics commands from a second client application executed by the CPU, the second set of graphics commands stored in a second buffer that is associated with the second client application, the second set of graphics commands corresponding to a second image layer; in response to detecting the generation of the second set of graphics commands, determining, by a compositing module executed by the CPU, whether composite processing is required to combine the first and second image layers as a composite image; generating one or more graphics compositing commands for the compositing processing to combine the first image layer and the second image layer, in response to the determining that the compositing processing is required to combine the first image layer and the second image layer, the composite image corresponding to graphics commands including the first set of graphics commands, the second set of graphics commands and the compositing graphics commands; performing graphics processing operations, by a graphics processing unit (GPU) of a graphics system of the data processing system, based on the first set of graphics commands, the second set of graphics commands, and the compositing graphics commands to display the composited image representing a combination of the first image layer, the second image layer, and an overlay layer having at least a portion of the first image layer and the second image layer, wherein the GPU executes the graphics commands in parallel with the compositing module generating the compositing graphics commands. - View Dependent Claims (35, 36, 37)
-
Specification