Intermediate value storage within a graphics processing apparatus
AssigneeArm Limited
InventorsSandeep KAKARLAPUDI, Jorn NYSTAD
Life of this patent
Estimating the term…
Abstract
A tile-based graphics processor includes tile processing circuitry that has both a tile buffer and a per-pixel general purpose data store. The per-pixel general purpose data store is read accessible and write accessible by the tile processing circuitry to store intermediate values. These intermediate values are generated by the tile processing circuitry and then consumed by the tile processing circuitry to generate the output values for the tile being processed.
Claims35
Apparatus for generating graphics values forming a frame of graphics data from a plurality of graphics primitives, said apparatus comprising:
- dividing circuitry configured to divide said frame into a plurality of tiles, each of said plurality of tiles comprising an array of adjacent pixel locations;
- binning circuitry configured to identify as overlapping graphics primitives for a given tile of said plurality of tiles those graphics primitives upon which output values depend for pixel locations to be generated for said given tile;
- and
- tile processing circuitry configured to execute for some or all overlapping graphics primitive for said given tile a sequence of programmable instructions for some or every pixel location overlapped by a given graphics primitive, said tile processing circuitry including a tile buffer and a per-pixel general purpose data store;
- wherein
- said tile processing circuitry is configured to execute said programmable instructions at pixel locations overlapped by primitives to perform write accesses and read accesses to said per-pixel general purpose data store for storing intermediate values during rendering said given tile to generate output values.
A method of generating graphics values forming a frame of graphics data from a plurality of graphics primitives, said method comprising the steps of:
- dividing said frame into a plurality of tiles, each of said plurality of tiles comprising an array of adjacent pixel locations;
- binning said graphics primitives to identify as overlapping graphics primitives for a given tile of said plurality of tiles those graphics primitives upon which output values depend for pixel locations to be generated for said given tile;
- and
- for each tile of said plurality of tiles respectively serving as said given selected tile:
- (i) providing for use during rendering said given tile a tile buffer for storing said output values and a per-pixel general purpose data store;
- (ii) performing processing operations by executing for some or all overlapping graphics primitive for said given tile a sequence of programmable instructions for some or every pixel location overlapped by a given graphics primitive, said processing operations including under programmable instruction control writing a plurality of intermediate values to said per-pixel general purpose data store for said given tile, reading said plurality of intermediate values from said per-pixel general purpose data store and using said intermediate values to generate output values.
Apparatus for generating graphics values forming a frame of graphics data from a plurality of graphics primitives, said apparatus comprising:
- dividing means for dividing said frame into a plurality of tiles, each of said plurality of tiles comprising an array of adjacent pixel locations;
- binning means for identifying as overlapping graphics primitives for a given tile of said plurality of tiles those graphics primitives upon which output values depend for pixel locations to be generated for said given tile;
- and
- tile processing means for separately processing each tile of said plurality of tiles as a selected tile, said tile processing means including tile buffer means for storing output values and per-pixel general purpose data storage means for storing intermediate values;
- wherein
- said tile processing means has write access and read access to said per-pixel general purpose data storage means for storing said intermediate values during rendering said selected tile to generate said output values for storing in said tile buffer means;
- and
- said tile processing means stores said output values for said subject tile from said tile buffer to a main memory to form part of said frame.
Dependencies are inferred from the claim text.