1. A graphics processing unit comprising: a shader execution unit configured to execute a plurality of shader routines in order to perform a predetermined sequence of shader operations; a rendering unit configured to perform at least one rendering operation on data output by the shader execution unit; a controller configured to allocate to the shader execution unit individual shader routines from a set of shader routines, in order to cause the predetermined sequence of shader operations to be performed; the predetermined sequence of shader operations including a tessellation operation, the tessellation operation receiving as inputs tessellation control data and an input list of input data for M input vertices, and generating at least output data for P output vertices; the controller being configured to allocate to the shader execution unit, for each output vertex of the P output vertices, a tessellation shader routine from said set of shader routines; the shader execution unit being configured, each time the tessellation shader routine is executed for an associated output vertex: (i) to compute, in dependence on the tessellation control data and the associated output vertex, tessellation coordinate data; and (ii) to compute from the input data for the M input vertices, and the tessellation coordinate data generated in step (i), the output data for the associated output vertex.