15. A computing device configured to process data in multiple application programming interface (API) contexts, the computing device comprising: a central processing unit (CPU); a system memory; a first graphics processing unit (GPU) coupled to the CPU; a second GPU coupled to the CPU; a first API; a first software driver configured to: receive a first set of commands from an application via the first API, generate a first API context associated with the first API, generate a first push buffer of commands based on the first set of commands, wherein one or more commands in the first push buffer of commands and a first set of data are processed within the first API context to produce intermediate data, and generate a transfer command included in the first push buffer of commands; a second API that is unrelated to the first API; and a second software driver configured to: receive a second set of commands from the application via the second API, and generate a second API context associated with the second API, generate a second push buffer of commands based on the second set of commands, wherein one or more commands in the second push buffer of commands and the intermediate data are processed within the second API context to produce result data, wherein the transfer command, when processed within the first API context, causes the transfer of the intermediate data from an intermediate storage location for the first API context to an intermediate storage location for the second API context, each of the intermediate storage locations being part of a frame buffer memory that is separate from the system memory.
15. A computing device configured to process data in multiple application programming interface (API) contexts, the computing device comprising: a central processing unit (CPU); a system memory; a first graphics processing unit (GPU) coupled to the CPU; a second GPU coupled to the CPU; a first API; a first software driver configured to: receive a first set of commands from an application via the first API, generate a first API context associated with the first API, generate a first push buffer of commands based on the first set of commands, wherein one or more commands in the first push buffer of commands and a first set of data are processed within the first API context to produce intermediate data, and generate a transfer command included in the first push buffer of commands; a second API that is unrelated to the first API; and a second software driver configured to: receive a second set of commands from the application via the second API, and generate a second API context associated with the second API, generate a second push buffer of commands based on the second set of commands, wherein one or more commands in the second push buffer of commands and the intermediate data are processed within the second API context to produce result data, wherein the transfer command, when processed within the first API context, causes the transfer of the intermediate data from an intermediate storage location for the first API context to an intermediate storage location for the second API context, each of the intermediate storage locations being part of a frame buffer memory that is separate from the system memory. 16. The computing device of claim 15 , wherein the transfer of the intermediate data from the intermediate storage location for the first API context to the intermediate storage location for the second API context is trigged by the first software driver that is configured to push the intermediate data to the intermediate storage location for the second API context.