A non-transitory computer readable storage medium storing computer software code which when executed on at least one processor performs a method of operating a graphics processing pipeline, the method comprising:
- for a set of vertices to be processed by the graphics processing pipeline:
- vertex shading circuitry of the graphics processing pipeline performing a first vertex shading operation for one or more vertices of the set of vertices, to generate vertex shaded attribute data for at least one but not all of a plurality of vertex attributes of the one or more vertices of the set;
- testing circuitry of the graphics processing pipeline determining, for respective vertices or groups of vertices of the one or more vertices that have been subjected to the first vertex shading operation, whether or not a second vertex shading operation to generate vertex shaded attribute data for at least one other vertex attribute of the plurality of vertex attributes of the one or more vertices of the set should be performed for the vertex or group of vertices, wherein the determining comprises using, at least in part, some or all of the vertex shaded attribute data generated by the first vertex shading operation;
- the testing circuitry, in response to determining that a second vertex shading operation should be performed for a vertex or group of vertices, sending a request for a second vertex shading operation to be performed for a group of plural vertices, wherein the request is sent before it is determined if another vertex or group of vertices in the set that has been subjected to the first vertex shading operation should be subjected to the second vertex shading operation;
- in response to the request from the testing circuitry, vertex shading circuitry of the graphics processing pipeline performing a second vertex shading operation for the group of plural vertices for which the request has been sent, to generate vertex shaded attribute data for the at least one other vertex attribute of the plurality of vertex attributes of the one or more vertices of the set;
- and
- storing information indicating vertices and/or groups of vertices that have been subjected to the second vertex shading operation;
- wherein the testing circuitry determining whether or not a second vertex shading operation to generate vertex shaded attribute data for at least one other vertex attribute of the plurality of vertex attributes of the one or more vertices of the set should be performed for the vertex or group of vertices further comprises:
- determining from information indicating vertices and/or groups of vertices that have already been subjected to the second vertex shading operation, whether a vertex or group of vertices has already been subjected to the second vertex shading operation;
- and
- when it is determined from the information that the vertex or group of vertices has already been subjected to the second vertex shading operation, then not sending the request for the group of plural vertices to be subjected to the second vertex shading operation;
- but when it is not determined that the vertex or group of vertices has already been subjected to the second vertex shading operation from the information, sending the request for the group of plural vertices to be subjected to the second vertex shading operation.