Position conflict detection and avoidance in a programmable graphics processor
First Claim
1. A method of processing graphics data in a graphics processing unit including a fragment processing unit associated with a conflict detection unit and a buffer comprising:
- receiving a fragment associated with a location in the buffer;
tracking in the conflict detection unit a pending write to the location in the buffer;
shading at least a portion of the fragments to produce shaded fragment data;
waiting to read the location in the buffer until the pending write to the location in the buffer is completed;
updating the conflict detection unit when the pending write to the location is completed;
shading the fragment using data read from the location in the buffer to produce additional shaded fragment data;
writing the shaded fragment data to at least one location in the buffer; and
writing the additional shaded fragment data to a location in the buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
Apparatuses and methods for detecting position conflicts during fragment processing are described. Prior to executing a program on a fragment, a conflict detection unit, within a fragment processor checks if there is a position conflict indicating a RAW (read after write) hazard may exist. A RAW hazard exists when there is a pending write to a destination location that source data will be read from during execution of the program. When the fragment enters a processing pipeline, each destination location that may be written during the processing of the fragment is entered in conflict detection unit. During processing, the conflict detection unit is updated when a pending write to a destination location is completed.
31 Citations
24 Claims
-
1. A method of processing graphics data in a graphics processing unit including a fragment processing unit associated with a conflict detection unit and a buffer comprising:
-
receiving a fragment associated with a location in the buffer; tracking in the conflict detection unit a pending write to the location in the buffer; shading at least a portion of the fragments to produce shaded fragment data; waiting to read the location in the buffer until the pending write to the location in the buffer is completed; updating the conflict detection unit when the pending write to the location is completed; shading the fragment using data read from the location in the buffer to produce additional shaded fragment data; writing the shaded fragment data to at least one location in the buffer; and writing the additional shaded fragment data to a location in the buffer. - View Dependent Claims (2, 3, 4, 18, 19, 20, 21, 24)
-
-
5. A method for processing fragments under control of a fragment program in a fragment processing unit, comprising:
-
processing a first fragment as specified by the fragment program; determining in a conflict detection unit that a write to a location in a buffer utilized in the processing is pending prior to reading the location in the buffer; storing an instruction for processing the first fragment waiting for the write to complete; processing another fragment as specified by the fragment program while waiting for the write to complete; reading, responsive to the conflict detection unit, the location in the buffer; and processing responsive to the conflict detection unit, the first fragment in the fragment processing unit as specified by the fragment program upon determining that the write to the buffer location is complete. - View Dependent Claims (6, 7, 8)
-
-
9. A programmable graphics processor for execution of program instructions comprising:
-
a conflict detection unit configured to selectively store at least a portion of a position associated with a plurality of fragments and generate a position conflict status for each of the plurality of fragments; a read interface responsive to the positions stored by the conflict detection unit and configured to read data associated with one of the positions from a graphics memory and output the data to a fragment processing unit; the fragment processing unit configured to receive a fragment associated with the one position, and the data from the read interface and generate a processed fragment; and a write interface configured to write the processed fragment to the graphics memory. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 22, 23)
-
Specification