WO2000013145A1 - Method and apparatus for rasterizing in a hierarchical order - Google Patents
Method and apparatus for rasterizing in a hierarchical order Download PDFInfo
- Publication number
- WO2000013145A1 WO2000013145A1 PCT/US1999/019353 US9919353W WO0013145A1 WO 2000013145 A1 WO2000013145 A1 WO 2000013145A1 US 9919353 W US9919353 W US 9919353W WO 0013145 A1 WO0013145 A1 WO 0013145A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- tiles
- memory
- tile
- smaller
- level
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/122—Tiling
Definitions
- the present invention relates generally to systems for computer graphics.
- the present invention includes a method and apparatus for
- Each primitive is defined in terms of its
- the rasterization stage into collections of pixel values.
- the rasterization stage is often
- a frame buffer is a memory that includes
- frame buffer defines a corresponding pixel included in an output device
- Each memory location includes a series of bits. Typically, these bits are divided into separate portions defining red, blue and green intensities. Each memory location may also
- the graphics processor renders each primitive
- the graphics processor accomplishes this task by determining
- the rasterization stage is followed by a display stage where a display
- controller transforms the pixel values stored in the frame buffer into signals that drive
- the display controller accomplishes this task by
- the number of these accesses may be quite large.
- Frame buffers are typically fabricated using arrays of dynamic random access
- DRAM dynamic random access memory
- this two-step addressing scheme may be used.
- a sequence of column addresses may be supplied to a DRAM
- a page miss location included in a new row, referred to as a page miss, is much slower.
- Memory tiling is an
- the cache memory collects accesses performed by
- a given rasterization may alternately
- An embodiment of the present invention includes a method and apparatus for
- the graphics pipeline is a sequence of components included in a
- the frame buffer is a random access memory device that includes a series of
- the memory locations in the frame buffer correspond to pixels
- Each memory location includes a
- location includes four eight bit bytes. Three of these bytes define red, blue and
- the fourth byte, alpha defines the pixel's coverage or
- the memory locations included in the frame buffer are preferably organized
- the frame buffer are organized to correspond to rectangular tiles of pixels included in
- 111 locations included in a single tile may vary between different frame buffer
- the tile size will be a power of two. This provides a
- each tile is fabricated using DRAM or DRAM-like memory components it is preferable for each tile to map to some portion of DRAM row.
- each DRAM row is fabricated using DRAM or DRAM-like memory components it is preferable for each tile to map to some portion of DRAM row.
- 117 includes one or more memory tiles.
- the display controller scans the memory locations included in the frame
- the display controller converts the red, blue and
- the display controller sends these
- the display controller continually controls the output signals to the output device being used.
- the graphics processor rasterizes graphics primitives into the frame buffer.
- the graphics processor determines which frame buffer
- memory locations are then initialized to reflect the attributes of the primitive
- the graphics processor uses a graphics processor's instructions to generate a graphics image.
- a graphics processor uses a graphics processor's instructions to generate a graphics image.
- the tile hierarchy includes three
- the lowest level of the hierarchy is made up of four pixel by four pixel low-
- the eight-by-eight tiles are grouped into sixteen-by-sixteen high-level tiles.
- the graphics processor begins the process of rasterizing a primitive by
- the graphics processor selects one of the primitive's vertices as a starting vertex.
- the graphics processor moves left-to-right, top- to-bottom through the remaining low-level tiles that are included in same mid-level
- the graphics processor rasterizes each of these low-
- processor moves left-to-right, top-to-bottom through the remaining mid-level tiles that
- the graphics processor has completely rasterized the first high-level tile.
- processor moves left-to-right, top-to-bottom through the remaining high-level tiles
- the graphics processor rasterizes each of these high-level
- the graphics processor has completely rasterized the primitive.
- the primitive is rasterized in a bottom-up fashion.
- processor rasterizes low-level tiles, mid-level tiles and high-level tiles, completing
- temporal locality of accesses within a given memory tile may also enhance cache
- buffer interaction is performed on a tile-by-tile basis.
- FIG. 1 is a block diagram of a host computer system shown as an
- FIG. 2 is a block diagram of a frame buffer in accordance with an
- FIG. 180 Figure 3 is a block diagram of a memory tile in accordance with an
- Figure 4 is a block diagram of an exemplary graphics primitive overlaying a
- Figure 5 is a block diagram showing the value of an edge function computed
- Figure 6 is a block diagram of a rasterization apparatus in accordance with an
- FIG. 7 is a block diagram of a edge evaluator in accordance with an
- a host computer system 100 is shown as a representative
- 198 includes a host processor, or host processors, of which host processors 102a
- Host processors 102 represent a wide range of
- Host computer system 100 may include
- Host processors 102 are connected to a sequence of components beginning
- controller 106 is followed by a system memory 108. Host processors 102 use this
- host processors 102 send virtual memory access
- Memory request unit 104 translates the
- controller 106 then accesses system memory 108 to perform the requested
- memory controller 106 and system 213 memory 108 support a range of page types, including tiled and linear pages.
- Memory controller 106 and system memory 108 also support a range of page sizes
- Memory controller 106 also functions as an interface that allows other
- memory controller 106 controls access system memory 108.
- memory controller 106 controls access system memory 108.
- graphics processor 110 performs the majority of its processing
- Input/output controller 112 functions as a channel allowing host
- disk drives non-volatile storage systems
- keyboards modems
- network adapters such as disk drives, keyboards, modems, network adapters,
- host computer system 100 is shown as a representative
- Graphics processor 110 uses one or more frame buffers of the type shown in
- Frame buffer 200 is a random access
- memory device and includes a series of memory locations of which memory
- Each memory location 202a, 202b and 202c are representative. Each memory location 202
- Memory locations 202 are arranged into a series of rows and columns. For
- Each memory location 202 includes a series of bits with the number and
- each memory location 202 includes four eight bit bytes.
- alpha 243 byte included in each memory location 202, is referred to as alpha and defines the
- Frame buffer 200 is typically fabricated using an array of memory
- frame buffer 200 is dynamically allocated within system memory 108.
- frame buffer 200 may be included within other suitable locations,
- graphics processor 110 such as graphics processor 110.
- Frame buffer 200 preferably includes a series of memory tiles of which
- Each memory tile 204a and 204b are representative.
- Each memory tile 204 includes a
- frame buffer 200 is largely implementation dependent. Thus, frame buffer 200 may be configured
- memory tiles 255 to include large or small memory tiles 204.
- the dimensions of memory tiles 204 are
- frame buffer 200 may include tall or
- each memory tile 204 frame buffer 200 to include a mixture of memory tiles 204 having a range of sizes and dimensions. For the specific embodiment shown in Figure 2, each memory tile
- 204 includes a total of two-hundred and fifty-six memory locations 202 arranged as a
- Frame buffer 200 preferably uses an addressing scheme where more
- frame buffer 200 is fabricated using DRAM or DRAM-like
- each memory tile 204 it is preferable for each memory tile 204 to map to some
- each DRAM row includes one or more memory tiles
- TILE HIERARCHY 273 Within frame buffer 200, memory tiles 204 represent the highest level in a tile
- memory tile 204 is shown to include four mid-level tiles 300a through 300d. In turn,
- each mid-level tile 300 includes four low-level tiles 302a through 302d. The overall
- level tiles 302 are grouped into eight-by-eight mid-level tiles 300 and eight-by-eight
- mid-level tiles 300 are grouped into sixteen-by-sixteen memory tiles 204.
- Hierarchies including more or fewer levels, are equally possible.
- RASTERIZATION METHOD 282 An embodiment of the present invention provides a method for efficiently
- the rasterization method is intended to work in
- Graphics processor 110 begins the process of rasterizing a primitive by
- Graphics processor 110 selects one of the primitive's vertices as a starting vertex.
- graphics processor 110 moves
- graphics processor When the last of these low-level tiles 302 has been rasterized, graphics processor
- processor 110 moves left-to-right, top-to-bottom through the remaining mid-level tiles
- Graphics processor 110 rasterizes each of these mid-level tiles 300 that include
- graphics processor 110 has
- processor 110 moves left-to-right, top-to-bottom through the remaining memory files 204 that span the primitive. Graphics processor 110 rasterizes each of these
- Figure 4 shows an exemplary
- Primitive 400 is a triangular
- primitive 400 is spanned by
- graphics processor 110 selects a starting pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel 400 of the first pixel.
- vertex from the vertices of primitive 400.
- the choice of vertex is
- graphics processor 110 After selecting the starting vertex, graphics processor 110 rasterizes the
- low-level tile 302-1 includes the starting vertex. After rasterizing low-level tile 302-1 ,
- graphics processor 110 moves left-to-right, top-to bottom within the mid-level tile 300
- Graphics processor 110 rasterizes each low- level tile 302 within this mid-level tile that includes pixels in primitive 400.
- graphics processor 110 moves right and rasterizes low-level tile 302-2
- graphics processor 110 has completely rasterized the first mid-
- graphics processor 110 jumps to low-level tile 302-4 in the next mid-level
- Graphics processor 110 selects mid-level tiles 300 using the same left-to-
- graphics processor 110 moves left-to-right, top-to bottom within the
- mid-level file 300 that includes the low-level tile 302-4.
- graphics
- processor 110 moves right and rasterizes low-level tile 302-5, down and left to
- graphics processor 110 has completely rasterized the first
- graphics processor 110 jumps to low-level tile 302-8 in the
- Graphics processor 110 selects memory tiles 204 using the
- graphics processor 110 moves
- graphics processor 110 moves down and rasterizes low-level tile 302-9. By rasterizing low-level tile 302-9, graphics processor 110 completes
- graphics processor 110 selects memory tiles
- mid-level tiles 300 and low-level tiles 302 using a left-to-right, top-to-bottom
- graphics processor 110 may traverse memory tiles 204 using a first pattern of
- 363 modifies the pattern of traversal to exclude memory tiles 204, mid-level tiles 300 and
- graphics processor 110 is preferably configured to
- the lookahead mechanism determines, as the
- graphics processor 110 is rasterizing a given low-level tile 302, which low-level tile
- the lookahead mechanism is preferably configured to
- graphics processor 110 372 may be configured to exhaustively traverse low-level tiles 302 within mid-level tiles
- Graphics processor 110 uses the tile hierarchy to control the order in which
- low-level tiles 302 are selected during rasterization of graphics primitives.
- graphics processor 110 is preferably
- graphics processor 110 achieves this concurrency by defining each edge of each
- graphics processor 110 calculates each of the primitive's edge
- processor 110 would calculate each of these equations for each memory location
- Graphics processor 110
- Graphics processor 110 preferably uses an additive process to evaluate edge
- Figure 5 shows the values calculated by graphics process 110
- 396 processor 110 calculates the value F(x,y) for memory location 202a located at the
- Graphics processor 110 calculates the
- graphics processor 110
- graphics processor 110 calculates
- location 202a have values calculated by adding appropriate multiples of A and ⁇ .
- FIG. 6 An apparatus of this type is shown in Figure 6 and generally designated
- Rendering apparatus 600 includes a set of three edge evaluators 602a
- Each edge evaluator is connected by an input and control bus 604 to
- Each edge evaluator 602 is also
- Adder trees 606 are
- Each edge evaluator 602 is configured to accept a set of parameters that
- the parameters include an initial value for the equation and
- Graphics processor 110 sends these parameters to
- edge evaluators 602 using input and control bus 604. Once initialized, edge
- 429 evaluators 602 are configured to compute successive values for their associated
- Edge evaluators 602 compute these values by adding A or B to their
- graphics processor 110 Before rasterizing a given primitive, graphics processor 110 computes initial
- Graphics processor 110 then initializes
- edge evaluators 602 to include the initial values and appropriate values for A and ⁇ . 438 Once initialization is complete, edge evaluators 602 output the value of their
- each edge evaluator 602 441 of each edge evaluator 602 is passed to a respective adder tree 606.
- adder tree 206 re-computes the value it received from its associated edge evaluator
- And gate 608 combines the three sets of sixteen values produced by the
- output values shows which memory locations 204 within the low-level tile 302 being
- the set of sixteen output values are included within the primitive.
- the set of sixteen output values are
- fragment selection unit 610 passed to fragment selection unit 610.
- graphics processor 110 repeatedly
- edge evaluators 602 directs edge evaluators 602 to reevaluate their output functions to reflect movement
- adder trees 606 apply the reevaluated function to each of the memory
- edge evaluators 602 Details of edge evaluators 602 are better appreciated by reference to Figure
- edge evaluator 602 includes A register 700 and B
- Edge evaluator 602 also includes X save registers 704 and Y save registers 706. As
- X save registers 704 and Y save registers 706 are register sets. Each set
- 465 includes one register for each level in the tile hierarchy being used. For the
- Edge evaluator 602 also includes a current
- edge evaluator 602 i.e., the current value of
- step direction multiplexer 710 The control input of step direction
- multiplexer 710 is connected to input and control bus 604. This allows graphics
- processor 110 to select the output of step direction multiplexer 710 as either the
- control input of current/restore multiplexer 714 is connected to input and control bus
- multiplexer 714 as either the output of X save registers 704, Y save registers 706 or
- the output of current/restore multiplexer 714 is connected to a
- adder 712 483 second input of adder 712.
- the output of adder 712 is connected to a first data input of an initialization
- multiplexer 716 as either the output of adder 712 or a value specified by graphics
- the output of adder 712 is also connected to the inputs of X save registers
- processor 110 to selectively save the output of select the output of adder 712 in
- a register 700 and B register 702 are connected to input and
- register 702 to include values for A and ⁇ , respectively.
- graphics processor 110 computes an initial
- Graphics processor 110 then uses input and
- 504 110 also uses input and control bus 604 to store the values A and ⁇ in A register
- edge evaluator 602 is the initial value for the edge function computed by graphics
- graphics processor 110 uses input and
- control bus 604 to cause step direction multiplexer 710 to select A register 700 or B
- a register 700 is selected to cause edge evaluator 602 to reevaluate
- graphics processor 110 causes edge evaluator 602 to move the rasterization
- the movement may be left-to-right (when A
- tile hierarchy ensures that rasterization within a given memory
- tile 204 is completed before rasterization within another memory tile 204 is initiated.
- given memory tile 204 may also enhance cache memory performance. This is
- the present invention provides an efficient method
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE69939480T DE69939480D1 (en) | 1998-09-02 | 1999-08-23 | DEVICE AND METHOD FOR SURGERY IN A HIERARCHICAL ORDER |
JP2000568059A JP4477237B2 (en) | 1998-09-02 | 1999-08-23 | Rasterization method and apparatus by hierarchical order |
AU55842/99A AU5584299A (en) | 1998-09-02 | 1999-08-23 | Method and apparatus for rasterizing in a hierarchical order |
EP99942475A EP1116187B1 (en) | 1998-09-02 | 1999-08-23 | Method and apparatus for rasterizing in a hierarchical order |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/145,516 | 1998-09-02 | ||
US09/145,516 US6611272B1 (en) | 1998-07-02 | 1998-09-02 | Method and apparatus for rasterizing in a hierarchical tile order |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2000013145A1 true WO2000013145A1 (en) | 2000-03-09 |
Family
ID=22513458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1999/019353 WO2000013145A1 (en) | 1998-09-02 | 1999-08-23 | Method and apparatus for rasterizing in a hierarchical order |
Country Status (6)
Country | Link |
---|---|
US (3) | US6611272B1 (en) |
EP (1) | EP1116187B1 (en) |
JP (1) | JP4477237B2 (en) |
AU (1) | AU5584299A (en) |
DE (1) | DE69939480D1 (en) |
WO (1) | WO2000013145A1 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003529859A (en) * | 2000-03-31 | 2003-10-07 | インテル・コーポレーション | Tile graphics architecture |
US8085264B1 (en) | 2006-07-26 | 2011-12-27 | Nvidia Corporation | Tile output using multiple queue output buffering in a raster stage |
US8872833B2 (en) | 2003-09-15 | 2014-10-28 | Nvidia Corporation | Integrated circuit configuration system and method |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8928676B2 (en) | 2006-06-23 | 2015-01-06 | Nvidia Corporation | Method for parallel fine rasterization in a raster stage of a graphics pipeline |
US9070213B2 (en) | 2006-07-26 | 2015-06-30 | Nvidia Corporation | Tile based precision rasterization in a graphics pipeline |
US9117309B1 (en) | 2005-12-19 | 2015-08-25 | Nvidia Corporation | Method and system for rendering polygons with a bounding box in a graphics processor unit |
US9123173B2 (en) | 2005-12-15 | 2015-09-01 | Nvidia Corporation | Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline |
US9171350B2 (en) | 2010-10-28 | 2015-10-27 | Nvidia Corporation | Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
US9710894B2 (en) | 2013-06-04 | 2017-07-18 | Nvidia Corporation | System and method for enhanced multi-sample anti-aliasing |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6798421B2 (en) * | 2001-02-28 | 2004-09-28 | 3D Labs, Inc. Ltd. | Same tile method |
JP2003263650A (en) * | 2002-03-12 | 2003-09-19 | Sony Corp | Image processor and image processing method |
US8732644B1 (en) | 2003-09-15 | 2014-05-20 | Nvidia Corporation | Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits |
US8775997B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8711161B1 (en) | 2003-12-18 | 2014-04-29 | Nvidia Corporation | Functional component compensation reconfiguration system and method |
US8427490B1 (en) | 2004-05-14 | 2013-04-23 | Nvidia Corporation | Validating a graphics pipeline using pre-determined schedules |
US7505043B2 (en) * | 2004-08-30 | 2009-03-17 | Qualcomm Incorporated | Cache efficient rasterization of graphics data |
US8723231B1 (en) | 2004-09-15 | 2014-05-13 | Nvidia Corporation | Semiconductor die micro electro-mechanical switch management system and method |
US8624906B2 (en) * | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
US8738891B1 (en) | 2004-11-15 | 2014-05-27 | Nvidia Corporation | Methods and systems for command acceleration in a video processor via translation of scalar instructions into vector instructions |
US8427496B1 (en) | 2005-05-13 | 2013-04-23 | Nvidia Corporation | Method and system for implementing compression across a graphics bus interconnect |
US20060282604A1 (en) * | 2005-05-27 | 2006-12-14 | Ati Technologies, Inc. | Methods and apparatus for processing graphics data using multiple processing circuits |
US8225231B2 (en) | 2005-08-30 | 2012-07-17 | Microsoft Corporation | Aggregation of PC settings |
US9092170B1 (en) | 2005-10-18 | 2015-07-28 | Nvidia Corporation | Method and system for implementing fragment operation processing across a graphics bus interconnect |
US8698811B1 (en) | 2005-12-15 | 2014-04-15 | Nvidia Corporation | Nested boustrophedonic patterns for rasterization |
US8390645B1 (en) | 2005-12-19 | 2013-03-05 | Nvidia Corporation | Method and system for rendering connecting antialiased line segments |
US7768520B2 (en) * | 2006-05-03 | 2010-08-03 | Ittiam Systems (P) Ltd. | Hierarchical tiling of data for efficient data access in high performance video applications |
US7843468B2 (en) * | 2006-07-26 | 2010-11-30 | Nvidia Corporation | Accellerated start tile search |
US8427487B1 (en) | 2006-11-02 | 2013-04-23 | Nvidia Corporation | Multiple tile output using interface compression in a raster stage |
US8482567B1 (en) | 2006-11-03 | 2013-07-09 | Nvidia Corporation | Line rasterization techniques |
US8059124B2 (en) * | 2006-11-28 | 2011-11-15 | Adobe Systems Incorporated | Temporary non-tiled rendering of 3D objects |
US8300050B2 (en) | 2006-11-28 | 2012-10-30 | Adobe Systems Incorporated | Temporary low resolution rendering of 3D objects |
US8471862B2 (en) * | 2007-03-09 | 2013-06-25 | Ati Technologies Ulc | Offset tiles in vector graphics |
US8683126B2 (en) | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
US8698819B1 (en) | 2007-08-15 | 2014-04-15 | Nvidia Corporation | Software assisted shader merging |
US8411096B1 (en) | 2007-08-15 | 2013-04-02 | Nvidia Corporation | Shader program instruction fetch |
US9024957B1 (en) | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US8659601B1 (en) | 2007-08-15 | 2014-02-25 | Nvidia Corporation | Program sequencer for generating indeterminant length shader programs for a graphics processor |
US20090091576A1 (en) * | 2007-10-09 | 2009-04-09 | Jayanta Kumar Maitra | Interface platform |
US8724483B2 (en) | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
US8009169B2 (en) * | 2007-11-09 | 2011-08-30 | Vivante Corporation | Efficient tile-based rasterization |
US8780123B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US9064333B2 (en) | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
GB2458488C (en) | 2008-03-19 | 2018-09-12 | Imagination Tech Ltd | Untransformed display lists in a tile based rendering system |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8610830B2 (en) * | 2008-09-11 | 2013-12-17 | Apple Inc. | Video rotation method and device |
US8411046B2 (en) | 2008-10-23 | 2013-04-02 | Microsoft Corporation | Column organization of content |
US20100107100A1 (en) | 2008-10-23 | 2010-04-29 | Schneekloth Jason S | Mobile Device Style Abstraction |
US8489851B2 (en) | 2008-12-11 | 2013-07-16 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
GB0823254D0 (en) * | 2008-12-19 | 2009-01-28 | Imagination Tech Ltd | Multi level display control list in tile based 3D computer graphics system |
GB0823468D0 (en) * | 2008-12-23 | 2009-01-28 | Imagination Tech Ltd | Display list control stream grouping in tile based 3D computer graphics systems |
US8238876B2 (en) | 2009-03-30 | 2012-08-07 | Microsoft Corporation | Notifications |
US8175653B2 (en) | 2009-03-30 | 2012-05-08 | Microsoft Corporation | Chromeless user interface |
US8836648B2 (en) | 2009-05-27 | 2014-09-16 | Microsoft Corporation | Touch pull-in gesture |
US20110063309A1 (en) * | 2009-09-16 | 2011-03-17 | Nvidia Corporation | User interface for co-processing techniques on heterogeneous graphics processing units |
US8405668B2 (en) | 2010-11-19 | 2013-03-26 | Apple Inc. | Streaming translation in display pipe |
US20120159395A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Application-launching interface for multiple modes |
US20120159383A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Customization of an immersive environment |
US8612874B2 (en) | 2010-12-23 | 2013-12-17 | Microsoft Corporation | Presenting an application change through a tile |
US8689123B2 (en) | 2010-12-23 | 2014-04-01 | Microsoft Corporation | Application reporting in an application-selectable user interface |
US9423951B2 (en) | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
US8893033B2 (en) | 2011-05-27 | 2014-11-18 | Microsoft Corporation | Application notifications |
US9104440B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9158445B2 (en) | 2011-05-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US20120304132A1 (en) | 2011-05-27 | 2012-11-29 | Chaitanya Dev Sareen | Switching back to a previously-interacted-with application |
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US9658766B2 (en) | 2011-05-27 | 2017-05-23 | Microsoft Technology Licensing, Llc | Edge gesture |
US8687023B2 (en) | 2011-08-02 | 2014-04-01 | Microsoft Corporation | Cross-slide gesture to select and rearrange |
US20130057587A1 (en) | 2011-09-01 | 2013-03-07 | Microsoft Corporation | Arranging tiles |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US8922575B2 (en) | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US9244802B2 (en) | 2011-09-10 | 2016-01-26 | Microsoft Technology Licensing, Llc | Resource user interface |
US8933952B2 (en) | 2011-09-10 | 2015-01-13 | Microsoft Corporation | Pre-rendering new content for an application-selectable user interface |
US9146670B2 (en) | 2011-09-10 | 2015-09-29 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
US9223472B2 (en) | 2011-12-22 | 2015-12-29 | Microsoft Technology Licensing, Llc | Closing applications |
US9128605B2 (en) | 2012-02-16 | 2015-09-08 | Microsoft Technology Licensing, Llc | Thumbnail-image selection of applications |
US9450952B2 (en) | 2013-05-29 | 2016-09-20 | Microsoft Technology Licensing, Llc | Live tiles without application-code execution |
US9390541B2 (en) * | 2013-04-09 | 2016-07-12 | Intel Corporation | Programmable tile shader |
EP3126969A4 (en) | 2014-04-04 | 2017-04-12 | Microsoft Technology Licensing, LLC | Expandable application representation |
CN105378582B (en) | 2014-04-10 | 2019-07-23 | 微软技术许可有限责任公司 | Calculate the foldable cap of equipment |
EP3129847A4 (en) | 2014-04-10 | 2017-04-19 | Microsoft Technology Licensing, LLC | Slider cover for computing device |
GB2524121B (en) * | 2014-06-17 | 2016-03-02 | Imagination Tech Ltd | Assigning primitives to tiles in a graphics processing system |
US10254942B2 (en) | 2014-07-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Adaptive sizing and positioning of application windows |
US10678412B2 (en) | 2014-07-31 | 2020-06-09 | Microsoft Technology Licensing, Llc | Dynamic joint dividers for application windows |
US10592080B2 (en) | 2014-07-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Assisted presentation of application windows |
US10642365B2 (en) | 2014-09-09 | 2020-05-05 | Microsoft Technology Licensing, Llc | Parametric inertia and APIs |
US9674335B2 (en) | 2014-10-30 | 2017-06-06 | Microsoft Technology Licensing, Llc | Multi-configuration input device |
GB2570172B (en) * | 2018-06-29 | 2020-02-12 | Imagination Tech Ltd | Conservative Rasterization Using Gradients |
GB2591802B (en) | 2020-02-07 | 2022-03-23 | Imagination Tech Ltd | Graphics processing method and system for rendering items of geometry based on their size |
GB2591803B (en) | 2020-02-07 | 2022-02-23 | Imagination Tech Ltd | Graphics processing method and system for rendering items of geometry based on their size |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0447225A2 (en) * | 1990-03-16 | 1991-09-18 | Hewlett-Packard Company | Methods and apparatus for maximizing column address coherency for serial and random port accesses in a frame buffer graphics system |
US5226175A (en) * | 1989-07-21 | 1993-07-06 | Graphic Edge, Inc. | Technique for representing sampled images |
US5598517A (en) * | 1995-01-10 | 1997-01-28 | Evans & Sutherland Computer Corp. | Computer graphics pixel rendering system with multi-level scanning |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4780709A (en) * | 1986-02-10 | 1988-10-25 | Intel Corporation | Display processor |
GB2238683A (en) * | 1989-11-29 | 1991-06-05 | Philips Electronic Associated | A thin film transistor circuit |
US5251296A (en) * | 1990-03-16 | 1993-10-05 | Hewlett-Packard Company | Methods and apparatus for generating arbitrarily addressed, arbitrarily shaped tiles in computer graphics systems |
US5321809A (en) * | 1992-09-11 | 1994-06-14 | International Business Machines Corporation | Categorized pixel variable buffering and processing for a graphics system |
US5446836A (en) * | 1992-10-30 | 1995-08-29 | Seiko Epson Corporation | Polygon rasterization |
US5471248A (en) * | 1992-11-13 | 1995-11-28 | National Semiconductor Corporation | System for tile coding of moving images |
US5729672A (en) * | 1993-07-30 | 1998-03-17 | Videologic Limited | Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces |
TW335466B (en) * | 1995-02-28 | 1998-07-01 | Hitachi Ltd | Data processor and shade processor |
FR2735267B1 (en) * | 1995-06-08 | 1999-04-30 | Hewlett Packard Co | SYSTEM AND METHOD OF TWO-DIMENSIONAL INTERLACED WEFT-BUFFER TRIANGLE SWEEPING CONVERTER |
US5815168A (en) * | 1995-06-23 | 1998-09-29 | Cirrus Logic, Inc. | Tiled memory addressing with programmable tile dimensions |
US5977977A (en) * | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
US5852443A (en) * | 1995-08-04 | 1998-12-22 | Microsoft Corporation | Method and system for memory decomposition in a graphics rendering system |
US5808690A (en) * | 1996-01-02 | 1998-09-15 | Integrated Device Technology, Inc. | Image generation system, methods and computer program products using distributed processing |
US5963210A (en) * | 1996-03-29 | 1999-10-05 | Stellar Semiconductor, Inc. | Graphics processor, system and method for generating screen pixels in raster order utilizing a single interpolator |
US5990912A (en) * | 1997-06-27 | 1999-11-23 | S3 Incorporated | Virtual address access to tiled surfaces |
US5922043A (en) * | 1997-07-30 | 1999-07-13 | Lsi Logic Corporation | Reduced hardware linear interpolator |
US6111583A (en) * | 1997-09-29 | 2000-08-29 | Skyline Software Systems Ltd. | Apparatus and method for three-dimensional terrain rendering |
US6144392A (en) * | 1998-04-30 | 2000-11-07 | Ati Technologies, Inc. | Method and apparatus for formatting a texture in a frame buffer |
US6246415B1 (en) * | 1998-04-30 | 2001-06-12 | Silicon Graphics, Inc. | Method and apparatus for culling polygons |
US6215507B1 (en) * | 1998-06-01 | 2001-04-10 | Texas Instruments Incorporated | Display system with interleaved pixel address |
-
1998
- 1998-09-02 US US09/145,516 patent/US6611272B1/en not_active Expired - Lifetime
-
1999
- 1999-08-23 WO PCT/US1999/019353 patent/WO2000013145A1/en active Application Filing
- 1999-08-23 EP EP99942475A patent/EP1116187B1/en not_active Expired - Lifetime
- 1999-08-23 DE DE69939480T patent/DE69939480D1/en not_active Expired - Lifetime
- 1999-08-23 AU AU55842/99A patent/AU5584299A/en not_active Abandoned
- 1999-08-23 JP JP2000568059A patent/JP4477237B2/en not_active Expired - Fee Related
-
2003
- 2003-03-07 US US10/383,276 patent/US7042460B2/en not_active Expired - Fee Related
-
2004
- 2004-11-24 US US10/997,103 patent/US6972768B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226175A (en) * | 1989-07-21 | 1993-07-06 | Graphic Edge, Inc. | Technique for representing sampled images |
EP0447225A2 (en) * | 1990-03-16 | 1991-09-18 | Hewlett-Packard Company | Methods and apparatus for maximizing column address coherency for serial and random port accesses in a frame buffer graphics system |
US5598517A (en) * | 1995-01-10 | 1997-01-28 | Evans & Sutherland Computer Corp. | Computer graphics pixel rendering system with multi-level scanning |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003529859A (en) * | 2000-03-31 | 2003-10-07 | インテル・コーポレーション | Tile graphics architecture |
JP4719399B2 (en) * | 2000-03-31 | 2011-07-06 | インテル・コーポレーション | Tile graphics architecture |
US8872833B2 (en) | 2003-09-15 | 2014-10-28 | Nvidia Corporation | Integrated circuit configuration system and method |
US9123173B2 (en) | 2005-12-15 | 2015-09-01 | Nvidia Corporation | Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline |
US9117309B1 (en) | 2005-12-19 | 2015-08-25 | Nvidia Corporation | Method and system for rendering polygons with a bounding box in a graphics processor unit |
US8928676B2 (en) | 2006-06-23 | 2015-01-06 | Nvidia Corporation | Method for parallel fine rasterization in a raster stage of a graphics pipeline |
US8085264B1 (en) | 2006-07-26 | 2011-12-27 | Nvidia Corporation | Tile output using multiple queue output buffering in a raster stage |
US9070213B2 (en) | 2006-07-26 | 2015-06-30 | Nvidia Corporation | Tile based precision rasterization in a graphics pipeline |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
US9171350B2 (en) | 2010-10-28 | 2015-10-27 | Nvidia Corporation | Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up |
US9710894B2 (en) | 2013-06-04 | 2017-07-18 | Nvidia Corporation | System and method for enhanced multi-sample anti-aliasing |
Also Published As
Publication number | Publication date |
---|---|
AU5584299A (en) | 2000-03-21 |
JP2003524810A (en) | 2003-08-19 |
EP1116187B1 (en) | 2008-09-03 |
EP1116187A1 (en) | 2001-07-18 |
US6611272B1 (en) | 2003-08-26 |
DE69939480D1 (en) | 2008-10-16 |
US6972768B2 (en) | 2005-12-06 |
JP4477237B2 (en) | 2010-06-09 |
US20050088448A1 (en) | 2005-04-28 |
US7042460B2 (en) | 2006-05-09 |
US20030142103A1 (en) | 2003-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1116187B1 (en) | Method and apparatus for rasterizing in a hierarchical order | |
US5844576A (en) | Tiled linear host texture storage | |
EP1066600B1 (en) | Block- and band-oriented traversal in three-dimensional triangle rendering | |
US6278645B1 (en) | High speed video frame buffer | |
US6714196B2 (en) | Method and apparatus for tiled polygon traversal | |
EP0447225B1 (en) | Methods and apparatus for maximizing column address coherency for serial and random port accesses in a frame buffer graphics system | |
US5864512A (en) | High-speed video frame buffer using single port memory chips | |
US6885384B2 (en) | Method of creating a larger 2-D sample location pattern from a smaller one by means of X, Y address permutation | |
US6326975B1 (en) | Priority methods for texture map storage | |
JP3316593B2 (en) | Memory space allocation method and apparatus | |
JPH09179999A (en) | Method and device for image generation | |
US6992673B2 (en) | Memory access device, semiconductor device, memory access method, computer program and recording medium | |
US5444845A (en) | Raster graphics system having mask control logic | |
JP2000090280A (en) | Linear surface memory for spatially tiled algorithm/ mechanism | |
US5903280A (en) | Image display apparatus that reduces necessary memory capacity for operation | |
US7769247B2 (en) | Method and apparatus for data re-arrangement | |
EP2169623A1 (en) | Semiconductor device, graphics controller, and information processing method | |
US20020101420A1 (en) | Triangle shading method for a 3D graphic system | |
Ng | Dynamic memory mapping for window based display system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
ENP | Entry into the national phase |
Ref country code: JP Ref document number: 2000 568059 Kind code of ref document: A Format of ref document f/p: F |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 1999942475 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWP | Wipo information: published in national office |
Ref document number: 1999942475 Country of ref document: EP |