1. A method for task scheduling on an accelerated processing device (APD), comprising: on a condition that the APD determines to enqueue one or more tasks, enqueuing, by an enqueuing module based on the APD, the one or more tasks in a memory storage module; and on a condition that the APD requests dequeuing by a command processor based on the APD, dequeuing, by the command processor, the one or more queued tasks from the memory storage module; wherein the command processor retrieves the one or more queued tasks from the memory storage module and forwards the retrieved one or more queued tasks to a shader core of the APD.