1. A method for tessellation in a tile-based graphics rendering pipeline by a graphics processor, the method comprising: generating an input visibility stream for each tile of a frame before rendering the frame, the input visibility stream indicating whether or not an input primitive is visible in each tile when rendered; generating an output visibility stream for each tile of the frame before rendering the frame, the output visibility stream including an indication of whether or not an output primitive is visible in the tile based on a depth test, wherein the output primitive is determined to be visible if any pixel produced by rasterizing the output primitive is determined to be visible, and wherein the output primitive is produced by tessellating the input primitive, wherein the output visibility stream comprises a series of bits that indicate for every output primitive whether it contributes to the rendered tile or not and the input visibility stream comprises a series of bits that indicate for every input primitive whether it contributes to the rendered tile or not; and tessellating the input primitives to create the output primitives for a current tile based on the input visibility stream and the output visibility stream, wherein tessellating the input primitives comprises: skipping tessellation for the input primitives indicated by the input visibility stream as not contributing to the current tile; and performing tessellation, based on the output visibility stream, for input primitives indicated by the input visibility stream as contributing to the current tile, wherein tessellation is skipped for a portion of the input primitives for which corresponding output primitives are indicated as not contributing to the current tile by the output visibility stream.