A computer-implemented method of performing intersection testing between one or more rays and elements (101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112) identified by nodes (200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212) of a hierarchical acceleration structure, wherein: a ray is defined by ray information; a node identifies one or more elements for intersection testing, wherein at least some of the elements identified by the overall hierarchical acceleration structure are represented by a further node of the hierarchical acceleration structure; wherein the computer-implemented method comprises iteratively performing a serial-mode ray intersection process of: obtaining one or more ray requests, each ray request identifying a ray and a node of the hierarchical structure identifying elements for which the ray of the ray request will undergo intersection testing; processing the one or more ray requests and the hierarchical acceleration structure to identify, for each ray request, any intersections between the ray of the ray request and the elements identified by the node of the ray request; and for each ray request: determining if the ray intersects with more than a first predetermined number of elements represented by further nodes of the hierarchical acceleration structure; and in response to the ray intersecting with more than the first predetermined number of element represented by further nodes, generating up to the first predetermined number of new ray requests, each new ray request identifying the ray of the ray request and a further node that represents an element identified as intersecting the ray of the ray request. a ray is defined by ray information; a node identifies one or more elements for intersection testing, wherein at least some of the elements identified by the overall hierarchical acceleration structure are represented by a further node of the hierarchical acceleration structure; obtaining one or more ray requests, each ray request identifying a ray and a node of the hierarchical structure identifying elements for which the ray of the ray request will undergo intersection testing; processing the one or more ray requests and the hierarchical acceleration structure to identify, for each ray request, any intersections between the ray of the ray request and the elements identified by the node of the ray request; and for each ray request: determining if the ray intersects with more than a first predetermined number of elements represented by further nodes of the hierarchical acceleration structure; and in response to the ray intersecting with more than the first predetermined number of element represented by further nodes, generating up to the first predetermined number of new ray requests, each new ray request identifying the ray of the ray request and a further node that represents an element identified as intersecting the ray of the ray request. determining if the ray intersects with more than a first predetermined number of elements represented by further nodes of the hierarchical acceleration structure; and in response to the ray intersecting with more than the first predetermined number of element represented by further nodes, generating up to the first predetermined number of new ray requests, each new ray request identifying the ray of the ray request and a further node that represents an element identified as intersecting the ray of the ray request.