Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of processing graphics primitives using a graphics processing system comprising a memory and a graphics processor in communication with the memory, wherein the graphics processor is configured to generate a render output by rendering a plurality of primitives for the render output, wherein primitives are rendered by the graphics processor using associated primitive data including geometry data representing the primitives and state data indicative of the operations to be performed when rasterising and/or rendering the primitives, the method comprising: dividing the render output into a plurality of regions for rendering, each region comprising a respective area of the render output; and for a set of one or more primitive(s) that is received to be processed: obtaining associated geometry data for rendering the set of one or more primitive(s); determining for which of the plurality of regions of the render output the set of one or more primitive(s) should be rendered; and for each region of the render output it is determined the set of one or more primitive(s) should be rendered for, storing the geometry data for the set of one or more primitive(s) in memory along with an indication of associated state data that is to be used for rasterising and/or rendering the set of one or more primitive(s) in a respective data structure for the region, such that the geometry data and the indication of associated state data for the set of one or more primitive(s) to be rendered is stored in a respective, different data structure for each different region of the render output it is determined the set of one or more primitive(s) should be rendered for.
2. The method of claim 1 , wherein the step of storing the geometry data and state data in a respective data structure for a region comprises: determining whether a data structure for the region already exists in the memory, and when a data structure for the region already exists in the memory adding the primitive data to the existing data structure, whereas if no data structure for the region exists, the method comprises generating a new data structure for the region.
3. The method of claim 2 , comprising: when it is determined that new geometry data and state data for a set of one or more primitive(s) should be stored in one or more data structure(s) in memory, determining whether there is less than a threshold of available space in the memory, and when there is less than the threshold of available space in the memory: selecting one or more region(s) for which a data structure already exists in memory to be flushed from memory; reading the data out from the data structure(s) for the selected region(s) for use by the graphics processor; and then discarding the data structure(s) for the selected region(s) from memory to free up memory space.
4. The method of claim 3 , wherein the region(s) are selected to be flushed based on for which of the region(s) the greatest amount of primitive data is currently stored in the memory.
5. The method of claim 3 , wherein reading the data out from the data structure(s) for the selected region(s) for use by the graphics processor comprises passing the geometry data and indications of state data to the graphics processor for rendering the primitives for which such data is stored in the data structure(s) for the selected region(s).
6. The method of claim 3 , comprising selecting a first region to be flushed, rendering one or more primitive(s) for the first region using the geometry data and associated state data stored for the one or more primitive(s) in the respective data structure for the first region, and discarding the data structure for the first region, the method further comprising when it is determined that a subsequent primitive should be rendered for the first region, generating a new data structure in memory for the first region.
7. The method of claim 1 , wherein the memory comprises a plurality of memory blocks, and wherein generating a data structure for a region comprises: allocating a first memory block for the region and adding primitive data for the region into the first memory block until the first memory block is full; and when the first memory block is full, allocating a second memory block for the region and linking the first and second memory blocks such that the data structure includes a set of linked memory blocks.
8. A graphics processing system comprising a memory and a graphics processor in communication with the memory, wherein the graphics processor is configured to generate a render output by rendering a plurality of primitives for the render output, wherein primitives are rendered by the graphics processor using associated primitive data including geometry data representing the primitives and state data indicative of the operations to be performed when rasterising and/or rendering the primitives, the graphics processor comprising: a primitive sorting circuit that is configured to: for a set of one or more primitive(s) that is received to be processed: obtain associated geometry data for rendering the set of one or more primitive(s); determine for which region(s) of a plurality of regions that the render output has been divided into for rendering purposes, each region comprising a respective area of the render output, the set of one or more primitive(s) should be rendered; and a primitive data storing circuit, configured to: for each region of a render output it is determined by the primitive sorting circuit that a set of one or more primitive(s) should be rendered for, store the geometry data for the set of one or more primitive(s) in the memory along with an indication of associated state data that is to be used for rasterising and/or rendering the set of one or more primitive(s) in a respective data structure for the region, such that the geometry data and the indication of associated state data for a set of one or more primitive(s) to be rendered is stored in a respective, different data structure for each different region of the render output it is determined the set of one or more primitive(s) should be rendered for.
9. The graphics processing system of claim 8 , wherein the primitive data storing circuit is configured to, when storing the geometry data and the indication of state data in a respective data structure for a region: determine whether a data structure for the region already exists in the memory, and when a data structure for the region already exists in the memory add the primitive data to the existing data structure, whereas if no data structure for the region exists, the primitive data storing circuit is configured to generate a new data structure for the region.
10. The graphics processing system of claim 9 , wherein: when it is determined that new geometry data and state data for a set of one or more primitive(s) should be stored in one or more data structure(s) in memory, the primitive data storing circuit is configured to: determine whether there is less than a threshold of available space in the memory, and when there is less than the threshold of available space in the memory, a read-out circuit is configured to: select one or more region(s) for which a data structure already exists in memory to be flushed from memory; read the data out from the data structure(s) for the selected region(s) for use by the graphics processor; and then discard the data structure(s) for the selected region(s) from memory to free up memory space.
11. The graphics processing system of claim 10 , wherein the read-out circuit is configured to select region(s) to be flushed based on for which of the region(s) the greatest amount of primitive data is currently stored in the memory.
12. The graphics processing system of claim 10 , wherein the read-out circuit is configured to read the data out from the data structure(s) for the selected region(s) for use by the graphics processor by passing the geometry data and indications of state data to the graphics processor for rendering the primitives for which such data is stored in the data structure(s) for the selected region(s).
13. The graphics processing system of claim 10 , wherein the read-out circuit is configured to select a first region to be flushed, read out the geometry data and indications of associated state data stored in the respective data structure for the first region such that the data can be used to render one or more primitive(s), and discard the data structure for the first region, and wherein when it is determined that a subsequent primitive should be rendered for the first region the primitive data storing circuit is configured to generate a new data structure in memory for the first region.
14. The graphics processing system of claim 8 , wherein the memory comprises a plurality of memory blocks, and wherein the primitive data storing circuit is configured to generate a data structure for a region by: allocating a first memory block for the region and adding primitive data for the region into the first memory block until the first memory block is full; and when the first memory block is full, allocating a second memory block for the region and linking the first and second memory blocks such that the data structure includes a set of linked memory blocks.
15. A non-transitory computer readable storage medium storing software code that when executing on a data processor performs a method of processing graphics primitives using a graphics processing system comprising a memory and a graphics processor in communication with the memory, wherein the graphics processor is configured to generate a render output by rendering a plurality of primitives for the render output, wherein primitives are rendered by the graphics processor using associated primitive data including geometry data representing the primitives and state data indicative of the operations to be performed when rasterising and/or rendering the primitives, the method comprising: dividing the render output into a plurality of regions for rendering, each region comprising a respective area of the render output; and for a set of one or more primitive(s) that is received to be processed: obtaining associated geometry data for rendering the set of one or more primitive(s); determining for which of the plurality of regions of the render output the set of one or more primitive(s) should be rendered; and for each region of the render output it is determined the set of one or more primitive(s) should be rendered for, storing the geometry data for the set of one or more primitive(s) in memory along with an indication of associated state data that is to be used for rasterising and/or rendering the set of one or more primitive(s) in a respective data structure for the region, such that the geometry data and the indication of associated state data for the set of one or more primitive(s) to be rendered is stored in a respective, different data structure for each different region of the render output it is determined the set of one or more primitive(s) should be rendered for.
16. A method of processing graphics primitives using a graphics processing system comprising a memory and a graphics processor in communication with the memory, wherein the graphics processor is configured to generate a render output by rendering a plurality of primitives for the render output, wherein primitives are rendered by the graphics processor using associated primitive data including geometry data representing the primitives and state data indicative of the operations to be performed when rasterising and/or rendering the primitives, wherein the render output is divided into a plurality of regions for rendering, each region comprising a respective area of the render output, and wherein geometry and indications of state data that is to be used for rendering primitives is stored in respective, different data structures in memory for different regions, the method comprising: when new data for a set of one or more primitive(s) is to be stored in memory, determining whether there is less than a threshold of available space for that data in the memory, and when there is less than the threshold of available space in the memory: selecting one or more region(s) for which a data structure already exists in memory to be flushed from memory; reading the data out from the data structure(s) for the selected region(s) for use by the graphics processor; and then discarding the data structure(s) for the selected region(s) from memory to free up memory space.
17. A method of processing graphics primitives using a graphics processing system comprising a memory and a graphics processor in communication with the memory, wherein the graphics processor is configured to generate a render output by rendering a plurality of primitives for the render output, wherein primitives are rendered by the graphics processor using associated primitive data including geometry data representing the primitives and state data indicative of the operations to be performed when rasterising and/or rendering the primitives, the method comprising: dividing the render output into a plurality of regions for rendering, each region comprising a respective area of the render output; and for a set of one or more primitive(s) that is received to be processed: obtaining associated geometry data for rendering the set of one or more primitive(s); determining for which of the plurality of regions of the render output the set of one or more primitive(s) should be rendered; and for each region of the render output it is determined the set of one or more primitive(s) should be rendered for, storing the geometry data for the set of one or more primitive(s) in memory along with an indication of associated state data that is to be used for rasterising and/or rendering the set of one or more primitive(s) in a respective data structure for the region, such that the geometry data and the indication of associated state data for the set of one or more primitive(s) to be rendered is stored in a respective, different data structure for each different region of the render output it is determined the set of one or more primitive(s) should be rendered for; the method further comprising: when new data for a set of one or more primitive(s) is to be stored in memory, determining whether there is less than a threshold of available space for that data in the memory, and when there is less than the threshold of available space in the memory: selecting one or more region(s) for which a data structure already exists in memory to be flushed from memory; reading the data out from the data structure(s) for the selected region(s) for use by the graphics processor; and then discarding the data structure(s) for the selected region(s) from memory to free up memory space.
18. A graphics processing system comprising a memory system and a graphics processor, wherein the graphics processor is configured to generate a render output by rendering a plurality of primitives for the render output, wherein primitives are rendered by the graphics processor using associated primitive data including geometry data representing the primitives and state data indicative of the operations to be performed when rasterising and/or rendering the primitives, wherein the render output is divided into a plurality of regions for rendering, each region comprising a respective area of the render output, and wherein geometry data and indications of state data that is to be used for rendering primitives is stored in respective, different data structures in memory for different regions, the graphics processor including: a primitive data storing circuit that is configured to: track the available memory space to determine when there is less than a threshold of available memory space; and a read-out circuit that is configured, when it is determined by the primitive data storing circuit that there is less than the threshold of available space in the memory, to: select one or more region(s) for which a data structure already exists in memory to be flushed from memory; read the data out from the data structure(s) for the selected region(s) for use by the graphics processor; and then discard the data structure(s) for the selected region(s) from memory to free up memory space.
19. A graphics processing system comprising a memory and a graphics processor in communication with the memory, wherein the graphics processor is configured to generate a render output by rendering a plurality of primitives for the render output, wherein primitives are rendered by the graphics processor using associated primitive data including geometry data representing the primitives and state data indicative of the operations to be performed when rasterising and/or rendering the primitives, the graphics processor comprising: a primitive sorting circuit that is configured to: for a set of one or more primitive(s) that is received to be processed: obtain associated geometry data for rendering the set of one or more primitive(s); determine for which region(s) of a plurality of regions that the render output has been divided into for rendering purposes, each region comprising a respective area of the render output, the set of one or more primitive(s) should be rendered; a primitive data storing circuit, configured to: for each region of a render output it is determined by the primitive sorting circuit that a set of one or more primitive(s) should be rendered for, store the geometry data for the set of one or more primitive(s) in the memory along with an indication of associated state data that is to be used for rasterising and/or rendering the set of one or more primitive(s) in a respective data structure for the region, such that the geometry data and the indication of associated state data for a set of one or more primitive(s) to be rendered is stored in a respective, different data structure for each different region of the render output it is determined the set of one or more primitive(s) should be rendered for; and track the available memory space to determine when there is less than a threshold of available memory space; and a read-out circuit that is configured, when it is determined by the primitive data storing circuit that there is less than the threshold of available space in the memory, to: select one or more region(s) for which a data structure already exists in memory to be flushed from memory; read the data out from the data structure(s) for the selected region(s) for use by the graphics processor; and then discard the data structure(s) for the selected region(s) from memory to free up memory space.
Unknown
November 9, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.