1. A method for controlling image resolution in graphics systems at runtime comprising: providing a computer system having a CPU, one or more of an integrated or a discrete GPU, a display to display images, a non-transitory computer readable system memory and at least one application running on the computer system that generates at least one of a stream of graphic library commands and/or shader codes at run time; intercepting, analyzing and modifying the stream of graphics library commands and/or shaders codes generated by the running application at run time; (i) in the event that an on-the-fly change of resolution is desired for keeping a user's experience above a predefined minimal level, changing the resolution by modification of one or more of the: a. shader code, or b. graphics library commands; (ii) in the event that no change of resolution is desired, not changing the resolution.