← Back to Patent Explorer
US5880737A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system for accessing texture data in environments with high latency in a graphics rendering system

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1996-06-27
•
Granted: 1999-03-09
•
Expires: 2016-06-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system for accessing texture data in a graphics rendering system allows texture data to be stored in memories with high latency or in a compressed format. The system utilizes a texture cache to temporarily store blocks of texture data retrieved from an external memory during rendering operations. In one implementation, geometric primitives are stored in a queue long enough to absorb the latency of fetching and possibly decompressing a texture block. The geometric primitives are converted into texture block references, and these references are used to fetch texture blocks from memory. A rasterizer rasterizes each geometric primitives as the necessary texture data becomes available in the texture cache. In another implementation, geometric primitives are converted into pixels, including a pixel address, color data, and a texture request. These pixels are stored in a queue long enough to absorb the latency of a texture block fetch. The texture requests are read from the queue and used to fetch the appropriate texture blocks. As texture data becomes available in the texture cache, the texture data is sampled as necessary and combined with the pixel data read from the queue to compute output pixels.

Inventors

  • 👤 Kent E. Griffin
  • 👤 Mark L. Kenworthy
  • 👤 James E. Veres
  • 👤 Joseph W. Chauvin
  • 👤 Michael A. Toelle
  • 👤 Howard Good

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 23:50
CPC Classifications
G; G06; G06T; G06T11/00; G06T11/10; G06T11/40; G06T13/00; G06T13/80; G06T15/00; G06T15/005; G06T15/04; G06T15/50; G06T15/60

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 146 words
Apparatus for accessing texture data in a graphics rendering system, the apparatus comprising: a set-up engine operable to receive geometric primitive data, and operable to produce texture references from the geometric primitive data; a first queue in communication with the set-up engine, the first queue operable to receive the texture references from the set-up engine and operable to buffer the texture references; a texture fetch unit coupled to the first queue and operable to issue a first set of requests for texture data corresponding to the texture references from memory; a texture cache operable to store the texture data; and a rasterizer in communication with the set-up engine, the rasterizer operable to issue a second set of requests for the texture data corresponding to the texture references and to compute pixel data from the geometric primitive data and the texture data fetched to the texture cache.
Claim 2
Dependent Claim 146 words
Apparatus for accessing texture data in a graphics rendering system, the apparatus comprising: a set-up engine operable to receive geometric primitive data, and operable to produce texture references from the geometric primitive data; a first queue in communication with the set-up engine, the first queue operable to receive the texture references from the set-up engine and operable to buffer the texture references; a texture fetch unit coupled to the first queue and operable to issue a first set of requests for texture data corresponding to the texture references from memory; a texture cache operable to store the texture data; and a rasterizer in communication with the set-up engine, the rasterizer operable to issue a second set of requests for the texture data corresponding to the texture references and to compute pixel data from the geometric primitive data and the texture data fetched to the texture cache.
Claim 3
Dependent Claim 13 words
The apparatus of claim 1 wherein the texture data comprises a texture map.
Claim 4
Dependent Claim 13 words
The apparatus of claim 1 wherein the texture data comprises a shadow map.
Claim 5
Dependent Claim 13 words
The apparatus of claim 1 wherein the texture data includes a color table.
Claim 6
Dependent Claim 33 words
The apparatus of claim 1 further including a decompression unit in communication with the memory, the decompression unit operable to decompress compressed texture data and store the decompressed data in the texture cache.
Claim 7
Dependent Claim 45 words
The apparatus of claim 5 further including a compressed cache in communication with the memory, and the decompression unit, the compressed cache operable to temporarily store the compressed texture data retrieved from memory as the decompression unit decompresses compressed blocks of the compressed texture data.
Claim 8
Dependent Claim 26 words
The apparatus of claim 5 wherein the decompression unit is operable to perform decompression on texture blocks compressed using a discrete cosine transform form of compression.
Claim 9
Dependent Claim 31 words
The apparatus of claim 5 wherein the decompression unit is operable to perform decompression on texture blocks compressed using a lossless form of compression that includes Huffman and run length encoding.
Claim 10
Dependent Claim 14 words
The apparatus of claim 5 wherein the decompression unit includes two parallel decompression blocks.
Claim 11
Dependent Claim 37 words
The apparatus of claim 1 wherein the texture references comprise texture addresses, and the texture fetch unit includes a texture address generator operable to determine memory addresses of texture blocks stored in memory from the texture addresses.
Claim 12
Dependent Claim 33 words
The apparatus of claim 1 wherein the rasterizer includes a scan convert engine operable to interpolate color data, and a texture filter engine operable to filter texture data retrieved from the texture cache.
Claim 13
Dependent Claim 23 words
The apparatus of claim 1 wherein the set-up engine includes a pre-rasterizer operable to convert the geometric primitive data to the texture references.
Claim 14
Dependent Claim 140 words
Apparatus for accessing texture data in a graphics rendering system, the apparatus comprising: a first queue operable to store primitives; a pre-rasterizer in communication with the first queue, and operable to receive primitives from the first queue and convert the primitives into texture data requests; a second queue, the second queue in communication with the pre-rasterizer and operable to store the texture data requests; a texture cache; a texture fetch unit in communication with the second queue, the texture fetch unit operable to retrieve texture data from memory, and operable to store the texture data in the texture cache; a post-rasterizer in communication with the first queue, operable to receive the primitives from the first queue, the post-rasterizer in communication with the texture cache, and the post-rasterizer operable to rasterize the primitives using texture data retrieved from the texture cache.
Claim 15
Dependent Claim 140 words
Apparatus for accessing texture data in a graphics rendering system, the apparatus comprising: a first queue operable to store primitives; a pre-rasterizer in communication with the first queue, and operable to receive primitives from the first queue and convert the primitives into texture data requests; a second queue, the second queue in communication with the pre-rasterizer and operable to store the texture data requests; a texture cache; a texture fetch unit in communication with the second queue, the texture fetch unit operable to retrieve texture data from memory, and operable to store the texture data in the texture cache; a post-rasterizer in communication with the first queue, operable to receive the primitives from the first queue, the post-rasterizer in communication with the texture cache, and the post-rasterizer operable to rasterize the primitives using texture data retrieved from the texture cache.
Claim 16
Dependent Claim 16 words
The apparatus of claim 13 wherein the texture data requests comprise a list of texture blocks.
Claim 17
Dependent Claim 29 words
The apparatus of claim 13 wherein the pre-rasterizer is operable to control texture block replacement in the texture cache to prevent exceeding the memory capacity of the texture cache.
Claim 18
Dependent Claim 27 words
The apparatus of claim 13 wherein the pre-rasterizer is operable to compress texture data requests to a single request for each texture block retrieved from the memory.
Claim 19
Dependent Claim 26 words
The apparatus of claim 13 wherein the post-rasterizer is operable to remove the primitives from the queue after the post-rasterizer completes rasterizing each of the primitives.
Claim 20
Dependent Claim 41 words
The apparatus of claim 13 further including a decompression engine in communication with the memory, the decompression engine operable to receive compressed texture data and to decompress the compressed texture data and transfer the decompressed texture data to the texture cache.
Claim 21
Independent Claim 79 words
A method for accessing texture data from memory during rendering operations performed in a graphics rendering system, the method comprising: queuing geometric primitives; converting the queued geometric primitives into texture references; queuing the texture references; fetching texture data blocks from memory; caching the texture data blocks in a texture cache; rasterizing the queued geometric primitives to generate output pixel data, the rasterizing step including accessing the texture data blocks as the texture blocks become available in the texture cache.
Claim 22
Independent Claim 79 words
A method for accessing texture data from memory during rendering operations performed in a graphics rendering system, the method comprising: queuing geometric primitives; converting the queued geometric primitives into texture references; queuing the texture references; fetching texture data blocks from memory; caching the texture data blocks in a texture cache; rasterizing the queued geometric primitives to generate output pixel data, the rasterizing step including accessing the texture data blocks as the texture blocks become available in the texture cache.
Claim 23
Dependent Claim 15 words
The method of claim 19 further including: decompressing compressed texture blocks fetched from the memory.
Claim 24
Dependent Claim 19 words
The method of claim 19 wherein the texture data includes a texture map or portion of a texture map.
Claim 25
Dependent Claim 143 words
Apparatus for accessing texture data in a graphics rendering system, the apparatus comprising: a rasterizer operable to receive geometric primitive data, and operable to generate pixel data including a texture request; a texture reference data queue in communication with the rasterizer, and operable to receive the pixel data; a texture fetch unit in communication with the texture reference data queue, operable to convert the texture requests into addresses of texture blocks in memory, and operable to fetch the texture blocks from the memory; a texture cache in communication with the texture fetch unit, and operable to store the texture blocks; and a texture filter engine in communication with the texture cache and the texture reference data queue, and operable to read the pixel data from the texture reference data queue and to read texture samples from the texture cache and generate output pixels.
Claim 26
Dependent Claim 143 words
Apparatus for accessing texture data in a graphics rendering system, the apparatus comprising: a rasterizer operable to receive geometric primitive data, and operable to generate pixel data including a texture request; a texture reference data queue in communication with the rasterizer, and operable to receive the pixel data; a texture fetch unit in communication with the texture reference data queue, operable to convert the texture requests into addresses of texture blocks in memory, and operable to fetch the texture blocks from the memory; a texture cache in communication with the texture fetch unit, and operable to store the texture blocks; and a texture filter engine in communication with the texture cache and the texture reference data queue, and operable to read the pixel data from the texture reference data queue and to read texture samples from the texture cache and generate output pixels.
Claim 27
Dependent Claim 26 words
The apparatus of claim 22 further including a decompression unit in communication with the memory, the decompression unit operable to decompress blocks of compressed texture data.
Claim 28
Dependent Claim 14 words
The apparatus of claim 23 wherein the decompression unit includes two parallel decompression blocks.
Claim 29
Dependent Claim 20 words
The apparatus of claim 23 wherein the decompression unit is operable to perform a discrete cosine transform form of decompression.
Claim 30
Dependent Claim 22 words
The apparatus of claim 25 wherein the decompression unit is operable to perform a lossless Run Length decoding or a Huffman decoding.
Claim 31
Dependent Claim 36 words
The apparatus of claim 22 wherein the texture fetch unit is operable to control replacement of the texture blocks stored in the texture cache so that the memory capacity of the texture cache is not exceeded.
Claim 32
Dependent Claim 23 words
The apparatus of claim 22 wherein the texture request comprises a center of a texture sample area in coordinates of a texture map.
Claim 33
Dependent Claim 31 words
The apparatus of claim 22 wherein the texture reference data queue is operable to store the pixel data including interpolated color, an address for a destination pixel, and texture reference data.
Claim 34
Independent Claim 141 words
A method for accessing texture data from memory during rendering operations performed in a graphics rendering system, the method comprising: rasterizing geometric primitives to generate pixel elements, the pixel elements each including a pixel address, color data, and a texture request; queuing the pixel elements in a queue; reading a texture request from the queue; converting the texture request into address of a texture block stored in memory; fetching the texture block stored in memory; caching the texture block in a texture cache; repeating the reading, converting and fetching steps for additional pixel elements in the queue; generating an output pixel by retrieving a pixel element from the queue, retrieving texture sample data from the texture cache, and combining the texture sample data with the color data for the pixel element; and repeating the generating step to generate additional output pixels.
Claim 35
Independent Claim 141 words
A method for accessing texture data from memory during rendering operations performed in a graphics rendering system, the method comprising: rasterizing geometric primitives to generate pixel elements, the pixel elements each including a pixel address, color data, and a texture request; queuing the pixel elements in a queue; reading a texture request from the queue; converting the texture request into address of a texture block stored in memory; fetching the texture block stored in memory; caching the texture block in a texture cache; repeating the reading, converting and fetching steps for additional pixel elements in the queue; generating an output pixel by retrieving a pixel element from the queue, retrieving texture sample data from the texture cache, and combining the texture sample data with the color data for the pixel element; and repeating the generating step to generate additional output pixels.
Claim 36
Dependent Claim 33 words
The method of claim 30 wherein the fetching step includes: retrieving a compressed texture block from the memory; decompressing the compressed texture block; and storing the decompressed texture block in the texture cache.
Claim 37
Dependent Claim 16 words
The method of claim 31 wherein the fetching step further includes: caching the compressed texture block.
Claim 38
Dependent Claim 17 words
The method of claim 31 wherein the compressed texture block is compressed using discrete cosine transform compression.
Claim 39
Dependent Claim 18 words
The method of claim 31 wherein the compressed texture block is compressed using Huffman and run length encoding.
Claim 40
Dependent Claim 29 words
The method of claim 30 including: keeping track of the texture blocks cached in memory to avoid generating requests for the texture blocks already stored in the texture cache.

References Cited (Backward Citations)

US4631690A Cited
US4645459A Cited
US5363475A Cited
US5586234A Cited
US5563989A Cited
US5522018A Cited
US5684935A Cited
US5634850A Cited
US5596686A Cited
US5729669A Cited
US5598517A Cited
US5630043A Cited
US5673401A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-03-08 2002-09-07 2003-03-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-03-08 2006-09-07 2007-03-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-03-08 2010-09-07 2011-03-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag