Patent ID: 9607390
Date: 2017-03-28
CPC Classifications: G06T

Claim:
1. A method of performing rasterisation in a graphics processing system that includes a rasterisation stage for rasterising input primitives to generate graphics fragments to be processed by a rendering stage in order to generate output data for display in a render output area, each input primitive specifying vertex data, and having at least one edge equation associated therewith, the method comprising for each input primitive: determining from the vertex data a bounding box for the input primitive; performing a multi-level patch analysis in order to determine patches covered at least partially by the input primitive, at a first level the render output area being divided into one or more patches, and at each subsequent level the render output area being divided into a plurality of patches smaller than the patches of the preceding level; each patch having an array of grid points defining boundaries of a set of sub-patches within that patch; at each level the patch analysis comprising, for each of one or more selected patches at that level, performing as a default operation testing of the grid points of the selected patch against the at least one edge equation of the primitive to determine whether the primitive at least partially covers any of the sub-patches of that selected patch; for any selected patch for which it is determined that the primitive at least partially covers any of the sub-patches of that patch, and assuming the final level of the patch analysis has not been reached, the patch analysis further comprising sub-dividing that selected patch into the set of sub-patches, and for each sub-patch that the primitive at least partially covers, treating that sub-patch as a selected patch to be analysed at the next level of the patch analysis; and generating one or more graphics fragments for at least each sub-patch of the final level of the patch analysis determined to be covered at least partially by the primitive; when performing patch analysis of a selected patch, performing a bounding box evaluation step to determine if a special condition exists where the bounding box does not cover any of the grid points in the array of grid points, and, in the presence of said special condition, adopting an alternative operation for that selected patch instead of said default operation, said alternative operation determining whether the primitive at least partially covers any of the sub-patches of the selected patch without testing the grid points of the selected patch against the at least one edge equation of the primitive, wherein: said bounding box evaluation step determines existence of said special condition if the bounding box does not cover any of the grid points in the array of grid points, and the bounding box is contained entirely within a single sub-patch; each input primitive has a depth equation associated therewith; the default operation further comprises performing a depth calculation operation using the depth equation of the primitive in order to determine a depth range for each sub-patch; and in the event of said special condition being detected, said alternative operation further comprises determining the depth range without performing said depth calculation operation.