EP1594091A2

System and method for providing an enhanced graphics pipeline

Abstract

An enhanced graphics pipeline is provided that enables common core hardware to perform as different components of the graphics pipeline, programmability of primitives including lines and triangles by a component in the pipeline, and a stream output before or simultaneously with the rendering a graphical display with the data in the pipeline. The programmer does not have to optimize the code, as the common core will balance the load of functions necessary and dynamically allocate those instructions on the common core hardware. The programmer may program primitives using algorithms to simplify all vertex calculations by substituting with topology made with lines and triangles. The programmer takes the calculated output data and can read it before or while it is being rendered. Thus, a programmer has greater flexibility in programming. By using the enhanced graphics pipeline, the programmer can optimize the usage of the hardware in the pipeline, program vertex, line or triangle topologies altogether rather than each vertex alone, and read any calculated data from memory where the pipeline can output the calculated information.

EP1594091A2, drawing sheet 1
Sheet 1 of 11

Term

Term ended

Projected expiry passed 19 April 2025, 1.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

65 claims: 7 independent, 58 dependent

  1. 1
    A method for dynamically configuring a graphics pipeline, comprising:via a graphics application programming interface (API), specifying one or more work items to be performed by a plurality of common core elements of a graphics processing unit (GPU), each of which is dynamically configurable to perform specialized processing for vertices, pixels or primitives;and based on said one or more work items, determining an optimal configuration for said plurality of common core elements as a combination of at least one of a common core element configured for processing vertices, a common element configured for processing pixels and a common element configured for processing primitives.
  2. 16
    A common core element included in a graphics processing unit, comprising:dynamically configurable subelements such that configuration of said subelements of the common core element specializes said common core element for processing one of vertices, pixels and primitives.
  3. 26
    A graphics processing unit, comprising:a plurality of common core elements that each include dynamically configurable subelements such that configuration of said subelements of the common core element specializes said common core element for processing one of vertices, pixels and primitives.
  4. 36
    A graphics subsystem having a dynamically configurable graphics pipeline, comprising:means for receiving one or more work items via a graphics application programming interface (API) to be performed by a plurality of common core elements of a graphics processing unit (GPU), each ofwhich is dynamically configurable to perform specialized processing for vertices, pixels or primitives;and means for determining an optimal configuration for said plurality of common core elements based on said one or more work items as a combination of at least one of a common core element configured for processing vertices, a common element configured for processing pixels and a common element configured for processing primitives.
  5. 48
    A data processing method, comprising:programming a common core element of a graphics processing unit such that it is configured to perform a first function;inputting a first stream of data to the common core element;performing said first function on the first stream of data;dynamically reprogramming the common core element such that it is configured to perform a second function;inputting a second stream of data to the common core element;performing said second function on the second stream of data.
  6. 58
    A computer readable medium comprising computer executable modules having computer executable instructions for interfacing from a host system to a graphics subsystem having a graphics processing unit (GPU) including a plurality of common core subunits, the modules carrying out the method of:specifying at least one stream of graphics data to be processed by the GPU;and transmitting according to a pre-defined format said at least one stream of graphics data to be processed by the GPU according to at least one functionality to be carried out on said at least one stream of graphics data, wherein the format is recognized by the GPU, whereby the plurality of common core subunits of the GPU are dynamically configured for specialized processing suited to carrying out the at least one functionality.
  7. 64
    A graphics system, comprising:a graphics processing unit (GPU) including a plurality of common core subunits for processing streams of graphics data wherein each common core subunit of the plurality of common core subunits comprises at least one processing element that is dynamically configurable such that the at least one processing element performs at least one of a plurality of programmed functions downloaded to the GPU for processing on said streams of graphics data.