1. A method for remote visualization in which a server window contents is displayed remotely at a client, comprising the client carrying out the method comprising: creating a 3D rendering surface on a client graphics accelerator device to display a server window contents on said client, said server window contents being generated by a 3D graphics application executing on a server, the server being in communication with said client over a network, said client comprising a system memory, at least one central processing unit (CPU) for executing program instructions storable in the system memory, and said client graphics accelerator device, the client graphics accelerator device including a graphics processing unit (GPU) with programming functionality; receiving, via said network from said server, a plurality of server window contents updates, each update containing encoded data specifying a respective change to a respective portion of the server window contents generated by said 3D graphics application, the respective portion being less than the entire server window, wherein at least some of said plurality of server window updates comprise a respective compressed image fragment of the respective portion of the server window contents, and wherein at least some of said plurality of server window updates comprise at least one respective encoded drawing command of the respective portion of the server window contents without containing a respective compressed image fragment; uploading the encoded data in each said server window contents update to the client graphics accelerator device; for each said server window contents update, independently selecting a respective GPU program from among a plurality of available GPU programs for decoding the encoded data in the respective server window contents update, wherein a plurality of different GPU programs are independently selected for decoding respective encoded data representing respective updates to said server window contents; using said graphics processing unit (GPU) to decode the encoded data in each said server window content update by executing on the GPU the corresponding GPU program selected by said selecting a respective GPU program from among a plurality of available GPU programs; and rendering the decoded data from each server window content update to the 3D rendering surface.