A client machine comprising: a central processing unit, CPU; a graphics processing unit, GPU; and memory storing computer-executable instructions that, when executed by the CPU, cause the client machine to: load a client application configured to execute one of multiple installed programs that render graphics on a display associated with the client machine; send a request to a remote computing system for compiled shader code for a program of the multiple installed programs, the request including a hardware configuration of the client machine; receive an indication from the remote computing system that the compiled shader code is not available and, after receiving the indication that the compiled shader code is not available, the computer-executable instructions cause the client machine to: execute the program; compile, by a graphics driver of the client machine, a set of shaders as compiled shaders in machine code that is executable by the GPU; cache, by the graphics driver, the compiled shaders in a predefined memory location and in association with an application identifier, ID, of the program; generate a set of shader IDs for the compiled shaders; and send information to the remote computing system, the information including: the hardware configuration of the client machine, the application ID of the program, and the set of shader IDs for the compiled shaders. a central processing unit, CPU; a graphics processing unit, GPU; and memory storing computer-executable instructions that, when executed by the CPU, cause the client machine to: load a client application configured to execute one of multiple installed programs that render graphics on a display associated with the client machine; send a request to a remote computing system for compiled shader code for a program of the multiple installed programs, the request including a hardware configuration of the client machine; receive an indication from the remote computing system that the compiled shader code is not available and, after receiving the indication that the compiled shader code is not available, the computer-executable instructions cause the client machine to: execute the program; compile, by a graphics driver of the client machine, a set of shaders as compiled shaders in machine code that is executable by the GPU; cache, by the graphics driver, the compiled shaders in a predefined memory location and in association with an application identifier, ID, of the program; generate a set of shader IDs for the compiled shaders; and send information to the remote computing system, the information including: the hardware configuration of the client machine, the application ID of the program, and the set of shader IDs for the compiled shaders. load a client application configured to execute one of multiple installed programs that render graphics on a display associated with the client machine; send a request to a remote computing system for compiled shader code for a program of the multiple installed programs, the request including a hardware configuration of the client machine; receive an indication from the remote computing system that the compiled shader code is not available and, after receiving the indication that the compiled shader code is not available, the computer-executable instructions cause the client machine to: execute the program; compile, by a graphics driver of the client machine, a set of shaders as compiled shaders in machine code that is executable by the GPU; cache, by the graphics driver, the compiled shaders in a predefined memory location and in association with an application identifier, ID, of the program; generate a set of shader IDs for the compiled shaders; and send information to the remote computing system, the information including: the hardware configuration of the client machine, the application ID of the program, and the set of shader IDs for the compiled shaders. execute the program; compile, by a graphics driver of the client machine, a set of shaders as compiled shaders in machine code that is executable by the GPU; cache, by the graphics driver, the compiled shaders in a predefined memory location and in association with an application identifier, ID, of the program; generate a set of shader IDs for the compiled shaders; and send information to the remote computing system, the information including: the hardware configuration of the client machine, the application ID of the program, and the set of shader IDs for the compiled shaders. the hardware configuration of the client machine, the application ID of the program, and the set of shader IDs for the compiled shaders.