1. A method for dividing three-dimensional patches into tasks for processing, the method comprising: receiving control points defining a three dimensional patch; determining if a number of vertices of the three dimensional patch is greater than a maximum value; outputting the three dimensional patch as a single task when the number of vertices is not greater than the maximum value; and breaking the three dimensional patch into multiple tasks that each include a number of vertices that is not greater than the maximum value when the number of vertices is greater than the maximum value and outputting the multiple tasks.