1. A computing device for scheduling workload submissions for a virtualized graphics processing unit (GPU), the computing device comprising: a processor; a virtualization service to establish a virtualization environment comprising a plurality of virtual machines, each of the virtual machines comprising a graphics driver to communicate with the GPU and a plurality of command buffers to store GPU commands; and a memory having a plurality of instructions stored therein that, when executed by the processor, causes the computing device to: evaluate the GPU commands of all of the command buffers of all of the virtual machines; dynamically select, in response to output of the evaluating of the GPU commands, a scheduling policy from a plurality of different scheduling policies; switch the scheduling policy from a per-ring scheduling policy to a gang scheduling policy in response to detecting a cross-buffer dependency between two GPU commands that are in different command buffers of the same virtual machine; schedule at least one of the GPU commands according to the gang scheduling policy; and execute, by the GPU, the at least one of the GPU commands according to the gang scheduling policy.