Computing system having multi-mode parallel graphics rendering subsystem including multiple graphics processing pipelines (GPPLS) and supporting automated division of graphics commands and data during automatic mode control
A computing system having a multi-mode parallel graphics rendering subsystem which includes multiple graphics processing pipelines (GPPLs) and automated division of graphics commands and data during automatic mode control. The multi-mode parallel graphics rendering subsystem supports multiple modes of parallel operation selected from the group consisting of object division, image division, and time division. The GPPLs support a parallel graphics rendering process that employs one or more of the object division, image division and/or time division modes of parallel operation in order to execute graphic commands and process graphics data, and render pixel-composited images containing graphics for display on a display device during the run-time of the graphics-based application. The multi-mode parallel graphics rendering subsystem includes a decomposition module, a distribution module and a recomposition module, for supporting the decomposition, distribution and recomposition stages of the graphics rendering process, respectively. The decomposition module includes a division control submodule for automatically processing graphics commands and data for division during the decomposition stage, and controlling the division of the graphics commands and data among the GPPLs, prior to the distribution stage, according to the mode of parallel operation instantiated at any instant during the run-time of the graphics-based application.
1 . A computing system having graphics rendering and display capabilities, comprising:
CPU space for storing one or more graphics-based applications and a graphics library for generating graphics commands and data (GCAD) during the run-time (i.e. execution) of the graphics-based application;
one or more CPUs for executing said graphics-based applications;
a display device for displaying images containing graphics during the execution of said graphics-based applications; and
a multi-mode parallel graphics rendering subsystem supporting multiple modes of parallel operation selected from the group consisting of object division, image division, and time division, and including
(i) a plurality of graphic processing pipelines (GPPLs) supporting a parallel graphics rendering process that employs one of said object division, image division and/or time division modes of parallel operation in order to execute graphic commands and process graphics data, and render pixel-composited images containing graphics for display on a display device during the run-time of said graphics-based application; and
(ii) an automatic mode controller for automatically controlling the mode of parallel operation of said multi-mode parallel graphics rendering subsystem during the run-time of said graphics-based application;
wherein each mode of parallel operation includes at least three stages, namely, decomposition, distribution and recomposition;
wherein said multi-mode parallel graphics rendering subsystem comprises:
a decomposition module for supporting the decomposition stage of parallel operation;
a distribution module for supporting the distribution stage of parallel operation; and
a recomposition module for supporting the recomposition stage of parallel operation; and
wherein said decomposition module includes a division control submodule for automatically processing graphics commands and data (GCAD) for division during said decomposition stage, and controlling the division of said graphics commands and data among said GPPLs, prior to said distribution stage, according to the mode of parallel operation instantiated at any instant during the run-time of said graphics-based application.
2 . The computing system of claim 1 , wherein said division control submodule controls the division of graphics commands and data to be processed by each GPPL, according to division of data among GPPLs in said object division mode, or the partition of the image screen among GPPLs in said image division mode.
3 . The computing system of claim 1 , wherein said decomposition module includes an interface and utilities submodule performs all the functions associated with interaction with the operating system (OS), said graphics library, and interfacing with said one or more GPPLs.
4 . The computing system of claim 3 , wherein said interface and utilities submodule supports the interception of the graphic commands from the standard graphic library, forwarding and creating graphic commands to the vendor's GPU driver, controlling registry, installations, OS services and utilities.
5 . The computing system of claim 4 , wherein said interface and utilities submodule supports the reading of performance data from different sources, and forwards said performance data to said automatic mode control module.
6 . The computing system of claim 5 , wherein said interface and utilities submodule further comprises software drivers that drive subcomponents within said decomposition, distribution and/or recomposition modules that are implemented in system architectures, in which both said decomposition and distribution modules are implemented as hardware components with a graphics hub structure.
7 . The computing system of claim 5 , wherein during said image division mode, said division control submodule assigns for duplication all the geometric data and common rendering commands to all GPUs, specific rendering commands to define clipping windows corresponding to image portions at each GPU, are assigned separately to each GPU.
8 . The computing system of claim 5 , wherein during said object division mode, polygon division control involves sending each polygon (in a scene) randomly to a different GPU within said multi-mode parallel graphics processing subsystem.
9 . The computing system of claim 1 , wherein a cohesive state across all of GPPLs is maintained, by continuously analyzing all incoming graphics commands, and duplicating state commands and some of the data to all GPPLs in order to preserve the valid state across all GPPLs.
10 . The computing system of claim 1 , wherein only one of said GPPLs is designated as the primary GPPL and is responsible for driving said display unit with a final pixel image composited within a frame buffer (FB) maintained by said primary GPPL, and all other GPPLs function as secondary GPPLs, supporting the pixel image recompositing process.
11 . The computing system of claim 5 , wherein said different sources are selected from the group consisting of GPUs, the GPU vendor's driver, and the chipset.
12 . The computing system of claim 1 , wherein said display device is a device selected from the group consisting of an flat-type display panel, a projection-type display panel, and other image display devices.
13 . The computing system of claim 1 , which is a machine selected from the group consisting of a PC-level computer, information server, laptop, game console system, portable computing system, and any computational-based machine supporting the real-time generation and display of 3D graphics.
14 . The computing system of claim 1 , wherein each said GPPL is a GPU-based GPPL which comprises:
(i) a video memory structure supporting a frame buffer including stencil, depth and color buffers, and
(ii) a graphics processing unit (GPU) supporting (1) a geometry subsystem having an input assembler, a vertex shader and a geometry shader, (2) a rasterizer, and (3) a pixel subsystem including a pixel shader receiving pixel data from said frame buffer and raster operators operating on pixel data in said frame buffer.
15 . The computing system of claim 1 , wherein each said GPPL is a CPU-based GPPL which comprises:
(i) a video memory structure supporting a frame buffer including stencil, depth and color buffers; and
(ii) a graphics processing pipeline realized by one cell of a multi-core CPU chip, consisting of a plurality of processors.
16 . The computing system of claim 15 , wherein said plurality of processors comprises a plurality of in-order SIMD processors.
17 . The computing system of claim 15 , wherein said CPU-based GPPL further comprises:
(iii) a texture sampler for loading texture maps from memory, filtering said texture maps for level-of-detail, and feeding said texture maps to the pixel processing portion of said CPU-based GPPL.