Tile region protection in a graphics processing system
AssigneeImagination Technologies Limited
InventorsIan King, Jamie Broome
Life of this patent
Estimating the term…
Abstract
A graphics processing system for performing tile-based rendering of a scene that includes safety-critical elements. The graphics processing system includes a geometry engine configured to, in a geometry processing phase, identify protected tiles that include safety-critical elements; a fragment processing engine configured to, in a fragment processing phase, process each of the protected tiles first and second times so as to, respectively, generate first and second fragment-processed outputs; and a check unit configured to, for each of the protected tiles, compare the first and second fragment-processed outputs and raise a fault signal if the first and second fragment-processed outputs do not match.
Claims18
A graphics processing unit for performing tile-based rendering of a scene, wherein a rendering space used to render a frame to be rendered is divided into a plurality of tiles, the graphics processing unit comprising:
- a geometry engine configured to:
- receive geometry data describing primitives of the scene to be rendered and an indication of which of the primitives of the scene are safety-critical;
- and
- in a geometry processing phase:
- in dependence on the received geometry data, identify which of the primitives of the scene at least partially overlap with each tile of the plurality of tiles of the frame to be rendered;
- and
- in dependence on the received indication, mark as protected tiles those tiles of the plurality of tiles which are at least partially overlapped by one or more primitives of the scene that are indicated to be safety-critical elements;
- and
- output, for subsequent use in a fragment processing phase, information indicating which of the plurality of tiles are marked as protected tiles;
- wherein the geometry engine is configured to perform the geometry processing phase first and second times for the frame to be rendered so as to, respectively, generate first and second geometry-processed outputs for comparison to determine whether the first and second geometry-processed outputs match;
- a fragment processing engine configured to, in the fragment processing phase, in dependence on the information indicating which of the plurality of tiles were marked as protected tiles in the geometry processing phase:
- process each of the protected tiles first and second times at one or more physical cores of the graphics processing unit so as to, respectively, generate first and second fragment-processed outputs for comparison to determine whether the first and second fragment-processed outputs match, and
- process each non-protected tile of the plurality of tiles a single time, non-protected tiles being those tiles of the plurality of tiles which were not marked as protected tiles;
- wherein the graphics processing unit is operable to, in the event that the first and second geometry-processed outputs generated for the frame match and the respective first and second fragment-processed outputs generated for each of the protected tiles match, generate a rendered output for the frame using processed protected tiles of the plurality of tiles and processed non-protected tiles of the plurality of tiles.
A method of performing, at a graphics processing unit, tile-based rendering of a scene, the method comprising:
- dividing a rendering space used to render a frame to be rendered into a plurality of tiles;
- receiving geometry data describing primitives of the scene to be rendered and an indication of which of the primitives of the scene are safety-critical;
- in a geometry processing phase:
- in dependence on the received geometry data, identifying which primitives of the scene at least partially overlap with each tile of the plurality of tiles of the frame to be rendered;
- in dependence on the received indication, marking as protected tiles those tiles of the plurality of tiles which are at least partially overlapped by one or more primitives of the scene that are indicated to be safety-critical primitives;
- and
- outputting, for subsequent use by a fragment processing phase, information indicating which of the plurality of tiles are marked as protected tiles;
- wherein the geometry processing phase is performed first and second times for the frame to be rendered so as to, respectively, generate first and second geometry-processed outputs for comparison to determine whether the first and second geometry-processed outputs match;
- in the fragment processing phase, in dependence on the information indicating which of the plurality of tiles were marked as protected tiles in the geometry processing phase:
- processing each of the protected tiles first and second times at one or more physical cores of the graphics processing unit so as to, respectively, generate first and second fragment-processed outputs for comparison to determine whether the first and second fragment-processed outputs match, and
- processing each non-protected tile of the plurality of tiles a single time, non-protected tiles being those tiles of the plurality of tiles which were not marked as protected tiles;
- and
- in the event that the first and second geometry-processed outputs generated for the frame match and the respective first and second fragment-processed outputs generated for each of the protected tiles match, generating a rendered output for the frame using processed protected tiles of the plurality of tiles and processed non-protected tiles of the plurality of tiles.
Dependencies are inferred from the claim text.