A non-transitory program storage device, readable by a processor and comprising instructions stored thereon to cause the processor to: create an indirect command buffer configured to be encoded into by a graphics processor ; encode, within a command buffer , a first command that references the indirect command buffer , wherein the first command is to be executed by the graphics processor and causes the graphics processor to encode a set of commands within the indirect command buffer ; characterized in that the instructions cause the processor to: encode, within the command buffer , a second command that is to be executed by the graphics processor , wherein execution of the second command causes execution of the set of commands encoded within the indirect command buffer ; commit the command buffer that includes the first command and the second command for execution on the graphics processor , wherein the processor does not further encode commands into the command buffer after committing the command buffer for execution; encode, within a second command buffer , a third command that triggers a re-execution of the set of commands encoded within the indirect command buffer by the graphics processor ; and commit the second command buffer that includes the third command for execution on the graphics processor , wherein the processor does not encode commands into the second command buffer after committing the second command buffer for execution. create an indirect command buffer configured to be encoded into by a graphics processor ; encode, within a command buffer , a first command that references the indirect command buffer , wherein the first command is to be executed by the graphics processor and causes the graphics processor to encode a set of commands within the indirect command buffer ; characterized in that the instructions cause the processor to: encode, within the command buffer , a second command that is to be executed by the graphics processor , wherein execution of the second command causes execution of the set of commands encoded within the indirect command buffer ; commit the command buffer that includes the first command and the second command for execution on the graphics processor , wherein the processor does not further encode commands into the command buffer after committing the command buffer for execution; encode, within a second command buffer , a third command that triggers a re-execution of the set of commands encoded within the indirect command buffer by the graphics processor ; and commit the second command buffer that includes the third command for execution on the graphics processor , wherein the processor does not encode commands into the second command buffer after committing the second command buffer for execution. encode, within the command buffer , a second command that is to be executed by the graphics processor , wherein execution of the second command causes execution of the set of commands encoded within the indirect command buffer ; commit the command buffer that includes the first command and the second command for execution on the graphics processor , wherein the processor does not further encode commands into the command buffer after committing the command buffer for execution; encode, within a second command buffer , a third command that triggers a re-execution of the set of commands encoded within the indirect command buffer by the graphics processor ; and commit the second command buffer that includes the third command for execution on the graphics processor , wherein the processor does not encode commands into the second command buffer after committing the second command buffer for execution. <EOS>