A graphics processing system (42-43, 704) for a head-mounted display, HMD, comprising: a graphics processing unit, GPU, configured to generate pixel data rendered with one or more standard projections, such that the rendered pixel data is suitable for display on a planar, non-HMD display; and a distinct hardware distortion unit, HDU, having an output, the HDU configured to: perform a predefined fixed set of functions to transform the pixel data generated by the GPU into distorted pixel data which is suitable for display on the head mounted display, wherein the predefined fixed set of functions are configured to: step through pixels of the head mounted display in raster order, and for each pixel: perform an initial mapping of the pixel from a display pixel position to a pixel view direction; modify the pixel view direction by applying a further rotation and/or translation to the each pixel view direction based on updated view orientation data to compensate for motion of the wearer's head; map the modified pixel view direction to a pixel view location within said rendered pixel data; access a neighbourhood of pixels within said rendered pixel data at the pixel view location and perform a filtering operation; and output the filtered pixel data to the head mounted display in said raster order. a graphics processing unit, GPU, configured to generate pixel data rendered with one or more standard projections, such that the rendered pixel data is suitable for display on a planar, non-HMD display; and a distinct hardware distortion unit, HDU, having an output, the HDU configured to: perform a predefined fixed set of functions to transform the pixel data generated by the GPU into distorted pixel data which is suitable for display on the head mounted display, wherein the predefined fixed set of functions are configured to: step through pixels of the head mounted display in raster order, and for each pixel: perform an initial mapping of the pixel from a display pixel position to a pixel view direction; modify the pixel view direction by applying a further rotation and/or translation to the each pixel view direction based on updated view orientation data to compensate for motion of the wearer's head; map the modified pixel view direction to a pixel view location within said rendered pixel data; access a neighbourhood of pixels within said rendered pixel data at the pixel view location and perform a filtering operation; and output the filtered pixel data to the head mounted display in said raster order. step through pixels of the head mounted display in raster order, and for each pixel: perform an initial mapping of the pixel from a display pixel position to a pixel view direction; modify the pixel view direction by applying a further rotation and/or translation to the each pixel view direction based on updated view orientation data to compensate for motion of the wearer's head; map the modified pixel view direction to a pixel view location within said rendered pixel data; access a neighbourhood of pixels within said rendered pixel data at the pixel view location and perform a filtering operation; and output the filtered pixel data to the head mounted display in said raster order.