A method of encoding a media stream, comprising: at a server system , wherein the server system includes a GPU , a plurality of encoder cores , a data buffer , and memory storing programs for execution by the GPU and the encoder cores : identifying by the encoder cores frame data of an image frame associated with an online gaming session and stored in the data buffer ; allocating the plurality of encoder cores to process a plurality of image tiles of the frame data defined in accordance with a rendering specification simultaneously and in parallel, wherein the plurality of image tiles includes a first image tile assigned to a first encoder core , and the first image tile includes a first sequence of blocks, including: at the first encoder core : obtaining from the data buffer a first block of the first sequence of blocks of the first image tile assigned to the first encoder core ; obtaining boundary information of the first block , the boundary information including one or more additional blocks (A-H) in the first image tile or one or more additional blocks (A'-H') belonging to two or more image tiles (1100A, 1100B, 1140A-1140D) including the first image tile ; while or prior to obtaining from the data buffer a second block that follows the first block in the first sequence of blocks, encoding the first block of the first sequence of blocks based on the boundary information; and transmitting the encoded first block to a client device of a user associated with the online gaming session. identifying by the encoder cores frame data of an image frame associated with an online gaming session and stored in the data buffer ; allocating the plurality of encoder cores to process a plurality of image tiles of the frame data defined in accordance with a rendering specification simultaneously and in parallel, wherein the plurality of image tiles includes a first image tile assigned to a first encoder core , and the first image tile includes a first sequence of blocks, including: at the first encoder core : obtaining from the data buffer a first block of the first sequence of blocks of the first image tile assigned to the first encoder core ; obtaining boundary information of the first block , the boundary information including one or more additional blocks (A-H) in the first image tile or one or more additional blocks (A'-H') belonging to two or more image tiles (1100A, 1100B, 1140A-1140D) including the first image tile ; while or prior to obtaining from the data buffer a second block that follows the first block in the first sequence of blocks, encoding the first block of the first sequence of blocks based on the boundary information; and transmitting the encoded first block to a client device of a user associated with the online gaming session. obtaining from the data buffer a first block of the first sequence of blocks of the first image tile assigned to the first encoder core ; obtaining boundary information of the first block , the boundary information including one or more additional blocks (A-H) in the first image tile or one or more additional blocks (A'-H') belonging to two or more image tiles (1100A, 1100B, 1140A-1140D) including the first image tile ; while or prior to obtaining from the data buffer a second block that follows the first block in the first sequence of blocks, encoding the first block of the first sequence of blocks based on the boundary information; and transmitting the encoded first block to a client device of a user associated with the online gaming session. <EOS>