Patent ID: 8525841

Claim:
A computer implemented method for processing graphics data, the method comprising: receiving graphics commands in a command buffer from one or more graphics APIs (application programming interfaces) of a plurality of applications, the graphics commands associated with graphics resources, wherein graphics resource usage of the graphics resources are specified by a plurality of counters having values indicating whether the graphics resources are currently in use; identifying a stream of graphics commands from the graphics commands maintained in the command buffer to update the graphics resource usage for the stream of graphics commands, the stream of graphics commands being executable in a graphics processing unit (GPU) without waiting for completion of other graphics commands maintained in the command buffer; submitting, via a graphics driver, the stream of graphics commands to the GPU atomically in a single transaction with the GPU based on availability of resources of the GPU monitored by the graphics driver, wherein the resources of the GPU include an internal buffer to receive the stream of graphics commands submitted, wherein the internal buffer contains graphics commands when the stream of graphics commands have been received, and wherein the stream of graphics commands are still maintained in the command buffer subsequent to the submitting; in response to a single notification from the GPU indicating that all graphics commands submitted to the GPU have been executed, the graphics driver identifying the executed graphics commands; and updating the graphics resource usage in view of graphics resources associated with the executed graphics commands, such that the graphics resources can be freed if the counters indicate the graphics resources are not currently in use.