A method comprising: receiving at least one command stream that includes inter-command dependency information wherein the command stream comprises dependency information for each of the commands, wherein the at least one command stream comprises first, second and third commands, wherein the second and third commands have a first order in the at least one command stream such that the second command precedes the third command; determining, based on the inter-command dependency information, that the second command depends upon prior execution of the first command; determining that the first command is associated with a first one of a plurality of processing pipelines and that the second command and third command are associated with a second, different one of the plurality of processing pipelines; distributing, by a processor, the third command to the second one of the plurality of processing pipelines after determining that the third command has no dependencies; and after distributing the third command to the second one of the plurality of processing pipelines, distributing, by the processor, the second command to the second one of the plurality of processing pipelines such that the second command and third command execute in a second order that is different than the first order further comprising: maintaining a first sliding window to represent completion statuses of commands associated with the first one of the plurality of processing pipelines; and maintaining a second sliding window to represent completion statuses of commands associated with the second one of the plurality of processing pipelines wherein the at least one command stream comprises a first set of ordered commands associated with the first one of the plurality of processing pipelines and a second set of ordered commands associated with the second one of the plurality of processing pipelines, and wherein the first sliding window comprises a command counter that represents a start location of the first sliding window, wherein the start location corresponds to a last command in the first set of ordered commands for which no preceding command remains unexecuted by the first one of the plurality of processing pipelines. receiving at least one command stream that includes inter-command dependency information wherein the command stream comprises dependency information for each of the commands, wherein the at least one command stream comprises first, second and third commands, wherein the second and third commands have a first order in the at least one command stream such that the second command precedes the third command; determining, based on the inter-command dependency information, that the second command depends upon prior execution of the first command; determining that the first command is associated with a first one of a plurality of processing pipelines and that the second command and third command are associated with a second, different one of the plurality of processing pipelines; distributing, by a processor, the third command to the second one of the plurality of processing pipelines after determining that the third command has no dependencies; and after distributing the third command to the second one of the plurality of processing pipelines, distributing, by the processor, the second command to the second one of the plurality of processing pipelines such that the second command and third command execute in a second order that is different than the first order further comprising: maintaining a first sliding window to represent completion statuses of commands associated with the first one of the plurality of processing pipelines; and maintaining a second sliding window to represent completion statuses of commands associated with the second one of the plurality of processing pipelines wherein the at least one command stream comprises a first set of ordered commands associated with the first one of the plurality of processing pipelines and a second set of ordered commands associated with the second one of the plurality of processing pipelines, and wherein the first sliding window comprises a command counter that represents a start location of the first sliding window, wherein the start location corresponds to a last command in the first set of ordered commands for which no preceding command remains unexecuted by the first one of the plurality of processing pipelines. maintaining a first sliding window to represent completion statuses of commands associated with the first one of the plurality of processing pipelines; and maintaining a second sliding window to represent completion statuses of commands associated with the second one of the plurality of processing pipelines wherein the at least one command stream comprises a first set of ordered commands associated with the first one of the plurality of processing pipelines and a second set of ordered commands associated with the second one of the plurality of processing pipelines, and wherein the first sliding window comprises a command counter that represents a start location of the first sliding window, wherein the start location corresponds to a last command in the first set of ordered commands for which no preceding command remains unexecuted by the first one of the plurality of processing pipelines.