BUFFERS FOR DISPLAY ACCELERATION
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.
7 Citations
74 Claims
-
1-37. -37. (canceled)
-
38. A computer-implemented method for processing graphics commands for display of a data processing system, the method comprising:
-
in response to a first set of graphics commands received from a first client application executed by a central-processing unit (CPU) via a graphics application programming interface (API), storing the first set of graphics commands in a first command buffer that is associated with the first client application, wherein the first set of graphics commands represents a first image layer; in response to a second set of graphics commands received from a second client application executed by the CPU via the graphics API, storing the second set of graphics commands in a second command buffer that is associated with the second client application, wherein the second set of graphics commands represents a second image layer, wherein the first and second command buffers are configured to buffer the first and second sets of graphics commands until the first and second sets of the graphics commands are ready to be processed by a graphics processing unit (GPU) of a graphics system of the data processing system; generating, by a compositing module executed by the CPU, one or more graphics compositing commands for compositing the first image layer and the second image layer, in response to determining that there is a need to composite the first image layer and the second image layer, wherein the compositing module is configured to monitor or to receive a notification concerning the first and second sets of graphics commands received from the first and second client applications; 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 the graphics commands from the graphics queue in parallel with the compositing module generating the compositing graphics commands. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. 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 commands for display of a data processing system, the method comprising:
-
in response to a first set of graphics commands received from a first client application executed by a central-processing unit (CPU) via a graphics application programming interface (API), storing the first set of graphics commands in a first command buffer that is associated with the first client application, wherein the first set of graphics commands represents a first image layer; in response to a second set of graphics commands received from a second client application executed by the CPU via the graphics API, storing the second set of graphics commands in a second command buffer that is associated with the second client application, wherein the second set of graphics commands represents a second image layer, wherein the first and second command buffers are configured to buffer the first and second sets of graphics commands until the first and second sets of the graphics commands are ready to be processed by a graphics processing unit (GPU) of a graphics system of the data processing system; generating, by a compositing module executed by the CPU, one or more graphics compositing commands for compositing the first image layer and the second image layer, in response to determining that there is a need to composite the first image layer and the second image layer, wherein the compositing module is configured to monitor or to receive a notification concerning the first and second sets of graphics commands received from the first and second client applications; 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 the graphics commands from the graphics queue in parallel with the compositing module generating the compositing graphics commands. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55)
-
-
56. 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 in response to a first set of graphics commands received from a first client application executed by the CPU via a graphics application programming interface (API), store the first set of graphics commands in a first command buffer that is associated with the first client application, wherein the first set of graphics commands represents a first image layer, in response to a second set of graphics commands received from a second client application executed by the CPU via the graphics API, store the second set of graphics commands in a second command buffer that is associated with the second client application, wherein the second set of graphics commands represents a second image layer, wherein the first and second command buffers are configured to buffer the first and second sets of graphics commands until the first and second sets of the graphics commands are ready to be processed by the GPU of the graphics system of the data processing system, generate, by a compositing module executed in the memory by the CPU, one or more graphics compositing commands for compositing the first image layer and the second image layer, in response to determining that there is a need to composite the first image layer and the second image layer, wherein the compositing module is configured to monitor or to receive a notification concerning the first and second sets of graphics commands received from the first and second client applications, 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, 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 the graphics commands from the graphics queue in parallel with the compositing module generating the compositing graphics commands. - View Dependent Claims (57, 58, 59, 60, 61, 62, 63, 64)
-
-
65. A computer-implemented method for processing graphics commands for display of a data processing system, the method comprising:
-
in response to a first set of graphics commands received from a first client application executed by a central-processing unit (CPU) via a graphics application programming interface (API), storing the first set of graphics commands in a first command buffer that is associated with the first client application, wherein the first set of graphics commands represents a first image layer; in response to a second set of graphics commands received from a second client application executed by the CPU via the graphics API, storing the second set of graphics commands in a second command buffer that is associated with the second client application, wherein the second set of graphics commands represents a second image layer, wherein the first and second command buffers are configured to buffer the first and second sets of graphics commands until the first and second sets of the graphics commands are ready to be processed by a graphics processing unit (GPU) of a graphics system of the data processing system; generating, by a compositing module executed by the CPU, one or more graphics compositing commands for compositing the first image layer and the second image layer, in response to determining that there is a need to composite the first image layer and the second image layer, wherein the compositing module is configured to monitor or to receive a notification concerning the first and second sets of graphics commands received from the first and second client applications; executing, by the GPU, the first set of graphics commands, the second set of graphics commands, and the compositing graphics commands as a batch of graphics commands to display a 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 (66, 67, 68, 69, 70)
-
-
71. 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 of a data processing system, the method comprising:
-
in response to a first set of graphics commands received from a first client application executed by a central-processing unit (CPU) via a graphics application programming interface (API), storing the first set of graphics commands in a first command buffer that is associated with the first client application, wherein the first set of graphics commands represents a first image layer; in response to a second set of graphics commands received from a second client application executed by the CPU via the graphics API, storing the second set of graphics commands in a second command buffer that is associated with the second client application, wherein the second set of graphics commands represents a second image layer, wherein the first and second command buffers are configured to buffer the first and second sets of graphics commands until the first and second sets of the graphics commands are ready to be processed by a graphics processing unit (GPU) of a graphics system of the data processing system; generating, by a compositing module executed by the CPU, one or more graphics compositing commands for compositing the first image layer and the second image layer, in response to determining that there is a need to composite the first image layer and the second image layer, wherein the compositing module is configured to monitor or to receive a notification concerning the first and second sets of graphics commands received from the first and second client applications; executing, by the GPU, the first set of graphics commands, the second set of graphics commands, and the compositing graphics commands as a batch of graphics commands to display a 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 (72, 73, 74)
-
Specification