Patent ID: 8130400

Claim:
A method for printing including sorting and processing print data with an adaptive print driver using available plural parallel processors, the method comprising the steps of: querying and detecting a host computer hardware configuration with the print driver for a number of processors; accessing a configuration information record (CIR) maintained by the print driver and storing the number of processors available; determining an appropriate level of granularity using a granularity analyzer for rendering of a particular print job using the processors present with the granularity analyzer passing the print job along with the determined level of granularity to a job partitioner; partitioning the print job using the job partitioner into independent work units based on that level of granularity so that the work units will then be processed by independent threads of execution so that rendering of the work units can occur at least in part in parallel; attaching metadata to each work unit to facilitate reassembling the work units in the correct sequence for printing after rendering; storing said work units in a synchronizing FIFO; rasterizing a work unit of the work units at least in part in parallel using one or more rendering threads on one or more of the processors; and reassembling data resulting from the rasterizing in the correct sequence using an assembler and said metadata before transferring the data to a printer.