A tiling engine for use in a graphics processing system in which a rendering space is divided into a plurality of tiles, the tiling engine comprising: tiling logic configured to: receive a plurality of primitive blocks, each primitive block comprising one or more primitive sections and state data that is shared by the one or more primitive sections, each primitive section comprising one or more primitives; and for each primitive section of a received primitive block, determine whether the primitives of that primitive section fall, at least partially, within the bounds of a tile of the plurality of tiles; and a display list generator configured to: for each primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile, add information to a display list for the tile that identifies the primitive block; for each identified primitive block, add information to the display list identifying each primitive section of that primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile; and for each identified primitive section, add information to the display list identifying the primitives in that primitive section that fall, at least partially, within the bounds of the tile. tiling logic configured to: receive a plurality of primitive blocks, each primitive block comprising one or more primitive sections and state data that is shared by the one or more primitive sections, each primitive section comprising one or more primitives; and for each primitive section of a received primitive block, determine whether the primitives of that primitive section fall, at least partially, within the bounds of a tile of the plurality of tiles; and receive a plurality of primitive blocks, each primitive block comprising one or more primitive sections and state data that is shared by the one or more primitive sections, each primitive section comprising one or more primitives; and for each primitive section of a received primitive block, determine whether the primitives of that primitive section fall, at least partially, within the bounds of a tile of the plurality of tiles; and a display list generator configured to: for each primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile, add information to a display list for the tile that identifies the primitive block; for each identified primitive block, add information to the display list identifying each primitive section of that primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile; and for each identified primitive section, add information to the display list identifying the primitives in that primitive section that fall, at least partially, within the bounds of the tile. for each primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile, add information to a display list for the tile that identifies the primitive block; for each identified primitive block, add information to the display list identifying each primitive section of that primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile; and for each identified primitive section, add information to the display list identifying the primitives in that primitive section that fall, at least partially, within the bounds of the tile.