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 (1000A, 1100A, 1120A, 1140A, 1202) assigned to a first encoder core, and the first image tile (1000A, 1100A, 1120A, 1140A, 1202) includes a first sequence of blocks, including: at the first encoder core: obtaining from the data buffer a first block (1002A, 1002B) of the first sequence of blocks of the first image tile (1100A, 1140A) assigned to the first encoder core; obtaining boundary information of the first block (1002A, 1002B), 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 (1100A, 1140A); 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 (1000A, 1100A, 1120A, 1140A, 1202) assigned to a first encoder core, and the first image tile (1000A, 1100A, 1120A, 1140A, 1202) includes a first sequence of blocks, including: at the first encoder core: obtaining from the data buffer a first block (1002A, 1002B) of the first sequence of blocks of the first image tile (1100A, 1140A) assigned to the first encoder core; obtaining boundary information of the first block (1002A, 1002B), 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 (1100A, 1140A); 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 (1002A, 1002B) of the first sequence of blocks of the first image tile (1100A, 1140A) assigned to the first encoder core; obtaining boundary information of the first block (1002A, 1002B), 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 (1100A, 1140A); 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.