A system to implement a geometry processing phase of tile-based rendering, the system comprising: a plurality of parallel geometry pipelines , each geometry pipeline configured to: receive a subset of ordered geometry groups , each geometry group comprising vertex data for one or more vertices; generate, for each received geometry group , one or more geometry blocks associated with that geometry group, each geometry block comprising transformed vertex data relating to at least a portion of the vertices in the corresponding geometry group and primitive data for one or more primitives formed from the at least a portion of the vertices; compress each geometry block to generate a corresponding compressed geometry block and store the compressed geometry block in memory; and generate, for each geometry block , a corresponding primitive position block that is associated with the same geometry group as that geometry block , each primitive position block comprising position information relating to at least a portion of the primitives in the corresponding geometry block; and a geometry to tiling arbiter configured to receive the primitive position blocks generated by the plurality of geometry pipelines and forward the received primitive position blocks to a plurality of tiling pipelines in an order based on the order of the geometry groups . a plurality of parallel geometry pipelines , each geometry pipeline configured to: receive a subset of ordered geometry groups , each geometry group comprising vertex data for one or more vertices; generate, for each received geometry group , one or more geometry blocks associated with that geometry group, each geometry block comprising transformed vertex data relating to at least a portion of the vertices in the corresponding geometry group and primitive data for one or more primitives formed from the at least a portion of the vertices; compress each geometry block to generate a corresponding compressed geometry block and store the compressed geometry block in memory; and generate, for each geometry block , a corresponding primitive position block that is associated with the same geometry group as that geometry block , each primitive position block comprising position information relating to at least a portion of the primitives in the corresponding geometry block; and receive a subset of ordered geometry groups , each geometry group comprising vertex data for one or more vertices; generate, for each received geometry group , one or more geometry blocks associated with that geometry group, each geometry block comprising transformed vertex data relating to at least a portion of the vertices in the corresponding geometry group and primitive data for one or more primitives formed from the at least a portion of the vertices; compress each geometry block to generate a corresponding compressed geometry block and store the compressed geometry block in memory; and generate, for each geometry block , a corresponding primitive position block that is associated with the same geometry group as that geometry block , each primitive position block comprising position information relating to at least a portion of the primitives in the corresponding geometry block; and a geometry to tiling arbiter configured to receive the primitive position blocks generated by the plurality of geometry pipelines and forward the received primitive position blocks to a plurality of tiling pipelines in an order based on the order of the geometry groups . <EOS>