A method of updating a remote display unit in communication with a computing system, the method comprising: (a) accessing, by a thread executing on a computing system, display update information from an update queue storing drawing commands issued by an application executing on the computing system, the display update information comprising an image; (b) storing the display update information to a cache; (c) applying, by the thread, a lossy compression algorithm to a portion of the image to create a lossy display update; (d) transmitting, by a driver executing on the computing system, the lossy update to the remote display; (e) waiting a predetermined period of time after the transmission of the lossy update; (f) examining the update queue to determine whether new display update information has been added to the update queue and, if new display update information exists then (f-1) applying, by the thread, a lossy compression algorithm to the new update information to create a second lossy display update; and (f-2) transmitting, by the driver, the second lossy display update to the remote display, otherwise (f-3) applying, by the thread, a lossless compression algorithm to the same portion of the image stored in the cache to create a lossless display update, the lossless display update comprising a lossless version of the portion of the image; and (f-4) transmitting, by the driver, the lossless display update to the remote display, (a) accessing, by a thread executing on a computing system, display update information from an update queue storing drawing commands issued by an application executing on the computing system, the display update information comprising an image; (b) storing the display update information to a cache; (c) applying, by the thread, a lossy compression algorithm to a portion of the image to create a lossy display update; (d) transmitting, by a driver executing on the computing system, the lossy update to the remote display; (e) waiting a predetermined period of time after the transmission of the lossy update; (f) examining the update queue to determine whether new display update information has been added to the update queue and, if new display update information exists then (f-1) applying, by the thread, a lossy compression algorithm to the new update information to create a second lossy display update; and (f-2) transmitting, by the driver, the second lossy display update to the remote display, otherwise (f-3) applying, by the thread, a lossless compression algorithm to the same portion of the image stored in the cache to create a lossless display update, the lossless display update comprising a lossless version of the portion of the image; and (f-4) transmitting, by the driver, the lossless display update to the remote display, (f-1) applying, by the thread, a lossy compression algorithm to the new update information to create a second lossy display update; and (f-2) transmitting, by the driver, the second lossy display update to the remote display, otherwise (f-3) applying, by the thread, a lossless compression algorithm to the same portion of the image stored in the cache to create a lossless display update, the lossless display update comprising a lossless version of the portion of the image; and (f-4) transmitting, by the driver, the lossless display update to the remote display,