A method comprising: receiving, by a computing device, graphics instructions that are sent from an external graphics device, wherein the graphics instructions are executed by the external graphics device to display a graphics image; receiving, by a computing device, state information that is sent from the external graphics device, wherein the state information is associated with execution of the graphics instructions on the external graphics device; executing, by the computing device, a simulation application that provides a simulated environment to simulate the hardware operation of the external graphics device; displaying, by the computing device during execution of the simulation application, a representation of the graphics image within the simulated environment according to the graphics instructions and the state information; receiving, by the computing device, performance information from the external graphics device, wherein the performance information is associated with execution of the graphics instructions on the external graphics device; analyzing, by the computing device, the performance information to identify one or more performance issues on the external graphics device during its execution of the graphics instructions; receiving user input via a graphical user interface provided by the computing device, the user input specifying a requested modification to the execution of the graphics instructions by the external graphics device; sending the requested modification to the external graphics device for processing; receiving a plurality of updated graphics instructions from the external graphics device, wherein the updated graphics instructions are associated with the requested modification to the execution of the graphics instructions by the external graphics device; receiving updated performance information from the external graphics device, wherein the updated performance information is associated with the requested modification to the execution of the graphics instructions by the external graphics device; analyzing the updated performance information to determine whether one or more of the performance issues have been resolved; and displaying an updated representation of the graphics image according to the updated graphics instructions and the updated performance information. receiving, by a computing device, graphics instructions that are sent from an external graphics device, wherein the graphics instructions are executed by the external graphics device to display a graphics image; receiving, by a computing device, state information that is sent from the external graphics device, wherein the state information is associated with execution of the graphics instructions on the external graphics device; executing, by the computing device, a simulation application that provides a simulated environment to simulate the hardware operation of the external graphics device; displaying, by the computing device during execution of the simulation application, a representation of the graphics image within the simulated environment according to the graphics instructions and the state information; receiving, by the computing device, performance information from the external graphics device, wherein the performance information is associated with execution of the graphics instructions on the external graphics device; analyzing, by the computing device, the performance information to identify one or more performance issues on the external graphics device during its execution of the graphics instructions; receiving user input via a graphical user interface provided by the computing device, the user input specifying a requested modification to the execution of the graphics instructions by the external graphics device; sending the requested modification to the external graphics device for processing; receiving a plurality of updated graphics instructions from the external graphics device, wherein the updated graphics instructions are associated with the requested modification to the execution of the graphics instructions by the external graphics device; receiving updated performance information from the external graphics device, wherein the updated performance information is associated with the requested modification to the execution of the graphics instructions by the external graphics device; analyzing the updated performance information to determine whether one or more of the performance issues have been resolved; and displaying an updated representation of the graphics image according to the updated graphics instructions and the updated performance information.