Assignments for parallel rasterization
First Claim
1. A computer-implemented method for rasterizing an image into a pixel array, the method comprising:
- generating, by a computer, a plurality of assignments, each assignment specifying one or more graphics objects and a region of the pixel array into which the specified graphics objects are to be rasterized, wherein assignments are generated based on an estimated workload for each region;
establishing, by the computer, a plurality of processes for rasterizing objects into the pixel array, each process being operable to receive an assignment and to rasterize the objects of the assignment into the region of the assignment;
selecting assignments for concurrent execution by the processes, the assignments being selected so that no two concurrently executing assignments have overlapping regions; and
concurrently executing the selected assignments by separate processes to rasterize the respective objects of the assignments into their respective regions; and
wherein generating a plurality of assignments includes generating an assignment queue; and
the assignments are ordered in the assignment queue based at least in part on a paint order of objects specified in the assignments.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus, including computer program products, to rasterize an image by generating assignments and allocating the assignments among multiple processor threads such that no two processor threads are rasterizing concurrently into overlapping regions of a pixel array. Multiple assignments are generated. Each assignment specifies one or more graphics objects and a region of the pixel array into which the specified graphics objects are to be rasterized. Multiple processes are established for rasterizing objects into a pixel array. Each process is operable to receive an assignment and to rasterize the objects of the assignment into the region of the assignment. Assignments are selected for concurrent execution by processes so that no two selected assignments have overlapping regions. The selected assignments are concurrently executed by separate processes to rasterize the respective objects of the assignments into their respective regions.
26 Citations
18 Claims
-
1. A computer-implemented method for rasterizing an image into a pixel array, the method comprising:
-
generating, by a computer, a plurality of assignments, each assignment specifying one or more graphics objects and a region of the pixel array into which the specified graphics objects are to be rasterized, wherein assignments are generated based on an estimated workload for each region; establishing, by the computer, a plurality of processes for rasterizing objects into the pixel array, each process being operable to receive an assignment and to rasterize the objects of the assignment into the region of the assignment; selecting assignments for concurrent execution by the processes, the assignments being selected so that no two concurrently executing assignments have overlapping regions; and concurrently executing the selected assignments by separate processes to rasterize the respective objects of the assignments into their respective regions; and wherein generating a plurality of assignments includes generating an assignment queue; and
the assignments are ordered in the assignment queue based at least in part on a paint order of objects specified in the assignments. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product, encoded on a computer-readable storage device, operable to cause data processing apparatus to perform operations comprising:
-
generating a plurality of assignments, each assignment specifying one or more graphics objects and a region of the pixel array into which the specified graphics objects are to be rasterized, wherein assignments are generated based on an estimated workload for each region; establishing a plurality of processes for rasterizing objects into the pixel array, each process being operable to receive an assignment and to rasterize the objects of the assignment into the region of the assignment; selecting assignments for concurrent execution by the processes, the assignments being selected so that no two concurrently executing assignments have overlapping regions; concurrently executing the selected assignments by separate processes to rasterize the respective objects of the assignments into their respective regions; and wherein generating a plurality of assignments includes generating an assignment queue; and
the assignments are ordered in the assignment queue based at least in part on a paint order of objects specified in the assignments. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
a display device; a computer readable medium including a program product; and one or more processors configured to interact with the display device, execute the program product and perform operations comprising; generating a plurality of assignments, each assignment specifying one or more graphics objects and a region of the pixel array into which the specified graphics objects are to be rasterized, wherein assignments are generated based on an estimated workload for each region; establishing a plurality of processes for rasterizing objects into the pixel array, each process being operable to receive an assignment and to rasterize the objects of the assignment into the region of the assignment; selecting assignments for concurrent execution by the processes, the assignments being selected so that no two concurrently executing assignments have overlapping regions; concurrently executing the selected assignments by separate processes to rasterize the respective objects of the assignments into their respective regions; and wherein generating a plurality of assignments includes generating an assignment queue; and
the assignments are ordered in the assignment queue based at least in part on a paint order of objects specified in the assignments. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification