1. A graphics processing unit supporting procedural textures, comprising: a memory storing data defining a texture, the data comprising texture parameters and a reference to instructions implementing a texel shader; and a processing unit with a cache; wherein the processing unit stores results of processing a texel shader in the cache, and wherein the cache is shared among processing threads executing on the graphics processing unit.