A GPU pipeline comprising a tessellation unit and post-tessellation blender hardware (106, 400, 700), wherein the blender hardware comprises: an input for receiving an input domain space vertex output by the tessellation unit, the input domain space vertex comprising UV coordinates of the vertex, a blend weight of the vertex and where UV coordinates of neighbour vertices are not inherent from the UV coordinates of the vertex itself, the UV coordinates of the neighbour vertices; a content addressable memory arranged to store data tuples, each data tuple comprising UV coordinates, a patch reference and an index; a counter arranged to be incremented when a data tuple is evicted from the content addressable memory; a blend unit arranged to receive the blend weight of the input domain space vertex, world space vertices for the input domain space vertex and its neighbour vertices generated in a single task by a domain shader, and to generate a single world space vertex for the input domain space vertex; a task manager; an output index buffer; and an output vertex buffer for receiving the single world space vertex from the blend unit, wherein the content addressable memory is arranged to, on receipt of the input domain space vertex, to determine if the UV coordinates of the input domain space vertex are stored in the content addressable memory and in response to the UV coordinates being stored in a data tuple in the content addressable memory, output the index from the data tuple to the output index buffer and in response to the UV coordinates not being stored in the content addressable memory, evict a data tuple from the content addressable memory, add the UV coordinates to a new data tuple with an index having a value equal to a value of the counter and output the index to the output index buffer and output the input vertex to the task manager, and wherein the task manager is arranged to receive input vertices from the content addressable memory, to pack UV coordinates for the input vertex and neighbour vertices of the input vertex into jobs within a same task and in response to determining that the task is full to output all the jobs in the task to the domain shader, wherein the task is full when all task entries of the task are occupied by jobs. an input for receiving an input domain space vertex output by the tessellation unit, the input domain space vertex comprising UV coordinates of the vertex, a blend weight of the vertex and where UV coordinates of neighbour vertices are not inherent from the UV coordinates of the vertex itself, the UV coordinates of the neighbour vertices; a content addressable memory arranged to store data tuples, each data tuple comprising UV coordinates, a patch reference and an index; a counter arranged to be incremented when a data tuple is evicted from the content addressable memory; a blend unit arranged to receive the blend weight of the input domain space vertex, world space vertices for the input domain space vertex and its neighbour vertices generated in a single task by a domain shader, and to generate a single world space vertex for the input domain space vertex; a task manager; an output index buffer; and an output vertex buffer for receiving the single world space vertex from the blend unit, wherein the content addressable memory is arranged to, on receipt of the input domain space vertex, to determine if the UV coordinates of the input domain space vertex are stored in the content addressable memory and in response to the UV coordinates being stored in a data tuple in the content addressable memory, output the index from the data tuple to the output index buffer and in response to the UV coordinates not being stored in the content addressable memory, evict a data tuple from the content addressable memory, add the UV coordinates to a new data tuple with an index having a value equal to a value of the counter and output the index to the output index buffer and output the input vertex to the task manager, and wherein the task manager is arranged to receive input vertices from the content addressable memory, to pack UV coordinates for the input vertex and neighbour vertices of the input vertex into jobs within a same task and in response to determining that the task is full to output all the jobs in the task to the domain shader, wherein the task is full when all task entries of the task are occupied by jobs.