1. A computer system, comprising: a central processing unit; a graphics processing unit; memory accessible by the graphics processing unit during execution of commands; the central processing unit executing an operating system that manages access, by applications running on the central processing unit, to resources in the computer system including the graphics processing unit and memory, wherein the operating system provides an application programming interface managing execution of commands by the graphics processing unit and through which the applications running on the central processing unit specify, through a runtime engine, commands to the graphics processing unit, wherein the application running on the central processing unit is operative at runtime to specify commands through the application programming interface including commands specifying shaders to be executed by the graphics processing unit and resources to be used by the shaders, wherein at runtime the graphics processing unit is operative to execute the shaders using the resources specified by the commands from the application, using descriptors stored in the memory to access the resources, wherein the descriptors are stored in one or more descriptor heaps in the memory, and wherein the commands from the application through the application programming interface specify the resources to be used by the shaders by indicating one or more descriptor tables, wherein a descriptor table specifies a range within the one or more descriptor heaps storing the descriptors for the resources to be accessed.