1. A method for calculating an attribute value, comprising: receiving an attribute interpolation opcode; obtaining pixel offsets dx and dy that specify a sub-pixel sample position (x+dx, y+dy) that is offset from a reference position (x,y) within a pixel; calculating an interpolated attribute for the sub-pixel sample position by evaluating the function A*(x+dx)+B*(y+dy)+C, wherein A, B, and C are attribute-specific plane equation coefficients; comparing the interpolated attribute for the sub-pixel sample position with the interpolated attribute for a second sub-pixel sample position within the pixel to determine whether the attribute value varies across the pixel; and upon determining that the attribute value varies across the pixel: obtaining additional pixel offsets that specify additional sub-pixel sample positions that are offset from the reference position within the pixel; calculating additional interpolated attributes for the additional sub-pixel sample positions; and combining the interpolated attributes for the sub-pixel sample position, the second sub-pixel sample position, and the additional sub-pixel sample positions to produce an interpolated attribute for the pixel.