1. A computer system, comprising: a central processing unit; a graphics processing unit; memory configured to be accessed by the graphics processing unit during execution of commands; the central processing unit configured to execute an operating system that is configured to manage 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 that is configured to manage 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 resource specified by the commands from the application using descriptors stored in the memory to access the resources, and wherein the commands specify the resources to be used by the shaders by indicating root arguments, wherein the root arguments have a structure defined by the application using a root signature, wherein the shader accesses resources using the descriptors stored in the memory as specified by the root arguments.