1. An apparatus comprising: a system memory that is accessible via a system bus; and a graphics processing unit (GPU) comprising: a local memory; a memory copy engine configured to retrieve first data from the system memory via the system bus, perform one or more modification tasks on the first data, store the modified first data into the local memory, retrieve second data from the local memory, perform one or more modification tasks on the second data, and store the modified second data into the system memory via the system bus, wherein the modification tasks comprise at least one of gathering and compacting data, color conversion of data, compression of data, decompression of data, or conversion of data generated by one shader program into a data form usable by another shader program and store the second data into the system memory via the system bus; and a shader processor configured to retrieve the modified first data from the local memory, process the modified first data to generate the second data, and store the second data into the local memory, wherein the memory copy engine is further configured to indicate to the shader processor that the memory copy engine completed at least one of storing the modified first data into the local memory or storing the modified second data into the system memory.