A method of providing image frames for display in a display apparatus comprising a change determiner unit, a rendering engine, a memory, a display controller and a display panel, wherein the memory has a swap buffer chain comprising at least three frame buffers including a current frame buffer, a first back frame buffer, and a second back frame buffer, each buffer handling every third frame, wherein the current frame buffer is read by the display controller to be output to the display panel, wherein each time a new frame is displayed, the first back frame buffer takes the place of the current frame buffer, and wherein frames in each of the frame buffers are sub-divided into a plurality of portions, the method comprising the steps of: determining that the rendering engine has written image information to a portion of a first frame in the first back frame buffer since a last time the current frame buffer was read by the display controller; determining that the rendering engine has written image information to a portion of a second frame in the second back frame buffer since the last time the current frame buffer was read by the display controller; determining that a portion of a current frame in the current frame buffer has changed by tracking which portion of the current frame in the current frame buffer, the first frame in the first back frame buffer, and the second frame in the second back frame buffer has changed since the last time the current frame buffer was read by the display controller, wherein the tracking includes detecting an interim change for the current frame buffer caused by a copying operation from at least one of the first back frame buffer and the second back frame buffer to the current frame buffer, and detecting a current change for the current frame buffer caused by a writing operation performed by the rendering engine to the current frame buffer, and wherein the rendering engine only writes image information to portions of the first and second frame buffers that have changed since a last writing operation to the current frame buffer; and responsive to determining that the portion of the current frame in the current frame buffer has changed, outputting the portion of the current frame that has changed along with any other portions of the current frame that have changed relative to the first and second frames. determining that the rendering engine has written image information to a portion of a first frame in the first back frame buffer since a last time the current frame buffer was read by the display controller; determining that the rendering engine has written image information to a portion of a second frame in the second back frame buffer since the last time the current frame buffer was read by the display controller; determining that a portion of a current frame in the current frame buffer has changed by tracking which portion of the current frame in the current frame buffer, the first frame in the first back frame buffer, and the second frame in the second back frame buffer has changed since the last time the current frame buffer was read by the display controller, wherein the tracking includes detecting an interim change for the current frame buffer caused by a copying operation from at least one of the first back frame buffer and the second back frame buffer to the current frame buffer, and detecting a current change for the current frame buffer caused by a writing operation performed by the rendering engine to the current frame buffer, and wherein the rendering engine only writes image information to portions of the first and second frame buffers that have changed since a last writing operation to the current frame buffer; and responsive to determining that the portion of the current frame in the current frame buffer has changed, outputting the portion of the current frame that has changed along with any other portions of the current frame that have changed relative to the first and second frames.