1. A method comprising: identifying input attributes read by a shader program to generate output attributes; identifying a portion of the output attributes to be consumed by a destination shader program or a fixed-function hardware engine; and computing a size of an attribute storage buffer to be allocated for execution of the shader program based on the input attributes and the portion of the output attributes.