Parallel rendering engine
AssigneeAdobe Inc.
InventorsZhan Yu, Yumin Jia, Jinoh Oh, Haiting Lin
Life of this patent
Estimating the term…
Abstract
This application relates generally to parallel computer processing, and more specifically, to parallel processing within a rendering engine via parallel scene graphs. One or more parallel scene graphs or parallel data graphs may be provided to a rendering engine. The rendering engine may identify dependencies within the parallel data structures and process, in parallel, one or more aspects of a the parallel data structure.
Claims20
A system comprising:
- one or more processors;
- and
- a memory coupled with the one or more processors, the memory configured to store instructions that when executed by the one or more processors cause the one or more processors to:
- receive a first plurality of batches, each batch in the first plurality of batches comprising multiple first processing jobs and the first plurality of batches are associated with first data objects in a first processing stage;
- receive a second plurality of batches, each batch in the second plurality of batches comprising multiple second processing jobs and the second plurality of batches are associated with second data objects in a second processing stage;
- identify a first dependency link between one or more batches in the first plurality of batches, the first dependency link indicating a processing order associated with the one or more batches in the first plurality of batches;
- identify a second dependency link between one or more batches in the second plurality of batches, the second dependency link indicating a processing order associated with the one or more batches in the second plurality of batches;
- process, for each batch in the first plurality of batches, the multiple first processing jobs in parallel to produce a first layer of results;
- and
- in response to producing the first layer of results, process, for each batch in the second plurality of batches, the multiple second processing jobs in parallel to produce a second layer of results on top of the first layer.
A computer-implemented method comprising:
- receiving a first plurality of batches, each batch in the first plurality of batches comprising multiple first processing jobs and the first plurality of batches are associated with first data objects in a first processing stage;
- receiving a second plurality of batches, each batch in the second plurality of batches comprising multiple second processing jobs and the second plurality of batches are associated with second data objects in a second processing stage;
- identifying a first dependency link between one or more batches in the first plurality of batches, the first dependency link indicating a processing order associated with the one or more batches in the first plurality of batches;
- identifying a second dependency link between one or more batches in the second plurality of batches, the second dependency link indicating a processing order associated with the one or more batches in the second plurality of batches;
- processing, for each batch in the first plurality of batches, the multiple first processing jobs in parallel to produce a first layer of results;
- and
- in response to producing the first layer of results, processing, for each batch in the second plurality of batches, the multiple second processing jobs in parallel to produce a second layer of results on top of the first layer.
A non-transitory computer-readable storage medium having stored thereon instructions for causing at least one computer system for parallel processing, the instructions comprising:
- receiving a first plurality of batches, each batch in the first plurality of batches comprising multiple first processing jobs and the first plurality of batches are associated with first data objects in a first processing stage;
- receiving a second plurality of batches, each batch in the second plurality of batches comprising multiple second processing jobs and the second plurality of batches are associated with second data objects in a second processing stage;
- identifying a first dependency link between one or more batches in the first plurality of batches, the first dependency link indicating a processing order associated with the one or more batches in the first plurality of batches;
- identifying a second dependency link between one or more batches in the second plurality of batches, the second dependency link indicating a processing order associated with the one or more batches in the second plurality of batches;
- processing, for each batch in the first plurality of batches, the multiple first processing jobs in parallel to produce a first layer of results;
- and
- in response to producing the first layer of results, processing, for each batch in the second plurality of batches, the multiple second processing jobs in parallel to produce a second layer of results on top of the first layer.
Dependencies are inferred from the claim text.