Compression and decompression of indices in a graphics pipeline

US10600142B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10600142-B2
Application numberUS-201715832131-A
CountryUS
Kind codeB2
Filing dateDec 5, 2017
Priority dateNov 2, 2017
Publication dateMar 24, 2020
Grant dateMar 24, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A compute unit accesses a chunk of bits that represent indices of vertices of a graphics primitive. The compute unit sets values of a first bit to indicate whether the chunk is monotonic or ordinary, second bits to define an offset that is determined based on values of indices in the chunk, and sets of third bits that determine values of the indices in the chunk based on the offset defined by the second bits. The compute unit writes a compressed chunk represented by the first bit, the second bits, and the sets of third bits to a memory. The compressed chunk is decompressed and the decompressed indices are written to an index buffer. In some embodiments, the indices are decompressed based on metadata that includes offsets that are determined based on values of the indices and bitfields that indicate characteristics of the indices.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: a compute unit configured to: access a chunk of bits that represent indices of a plurality of vertices of a primitive that is to be processed by a graphics pipeline; set a value of a first bit to indicate whether the chunk is monotonic or ordinary; set values of second bits to define an offset that is determined based on values of indices in the chunk; set values of sets of third bits that determine values of the indices in the chunk based on the offset defined by the second bits, wherein a first set of third bits indicates that at least one of the indices in the chunk is unique in having a value that is not equal to the value of any previous index within the chunk, and wherein the first set of third bits further indicates a difference between the unique index and the offset; and write a compressed chunk represented by the first bit, the second bits, and the sets of third bits to a memory. 2. The apparatus of claim 1 , wherein the compute unit is configured to: generate metadata that represents a beginning address of the compressed chunk stored in an index buffer; and write the metadata to the memory. 3. The apparatus of claim 2 , wherein the chunk is a monotonic chunk that represents successive adjacent primitives by adding an index of a vertex that is not shared by the adjacent as triangles to the bits of the chunk, and wherein the compute unit is configured to set the value of the first bit to a first value to indicate that the chunk is monotonic. 4. The apparatus of claim 3 , wherein the compute unit is configured to set the values of the second bits to an offset value that is equal to a value of a first index in the chunk that is not a restart index that indicates that a subsequent primitive is not adjacent to a previous primitive represented an index previous to the restart index. 5. The apparatus of claim 4 , wherein the compute unit is configured to set values of a first set of the third bits to indicate a number of restart indices in the chunk and setting at least one additional set of third bits to indicate at least one location of at least one restart index within the chunk. 6. The apparatus of claim 4 , wherein the compute unit is configured to generate metadata comprising a bit field indicating locations of restart indices in the chunk, and wherein the compute unit is configured to write the metadata comprising the first bit, the second bits, and the bit field to the memory. 7. The apparatus of claim 2 , wherein the chunk is an ordinary chunk that represents primitives using indices of all the vertices of the primitive, and wherein the compute unit is configured to set the value of the first bit to a second value to indicate that the chunk is ordinary. 8. The apparatus of claim 7 , wherein the compute unit is configured to set the values of the second bits to an offset value that is equal to a minimum value of the indices in the chunk. 9. The apparatus of claim 8 , wherein the compute unit is configured to: set values of a second set of third bits to indicate a number of bits that are used to represent differences between the values of the indices and the offset value; and set values of at least one third set of third bits to indicate that at least one of the indices is a repeated value of a unique index and to indicate a relative location of the unique index in the chunk. 10. The apparatus of claim 8 , wherein the compute unit is configured to generate metadata comprising a bit field indicating lanes that are used to decompress indices in the compressed chunk, and wherein the compute unit is configured to write the metadata comprising the first bit, the second bits, a second set of third bits to indicate a number of bits that are used to represent differences between the values of the indices and the offset value, and the bit field to the memory. 11. An apparatus comprising: an index buffer configured to store indices of vertices of primitives that are processed by a graphics pipeline; and a compute unit configured to: decompress indices in a first compressed chunk of bits representing the indices based on a first bit in the first compressed chunk that indicates whether the first compressed chunk is monotonic or ordinary, second bits in the first compressed chunk that define an offset that is determined based on values of the indices in the first compressed chunk, and sets of third bits in the first compressed chunk that determine values of the indices in the first compressed chunk based on the offset defined by the second bits, wherein a first set of third bits indicates that at least one of the indices in the chunk is unique in having a value that is not equal to the value of any previous index within the chunk, and wherein the first set of third bits further indicates a difference between the unique index and the offset; and write the decompressed indices in the first compressed chunk to the index buffer. 12. The apparatus of claim 11 , wherein the compute unit is configured to identify the first bit, the second bits, and the sets of third bits for the first compressed chunk based on metadata including a first beginning address of the first compressed chunk and a second beginning address of a second compressed chunk from metadata. 13. The apparatus of claim 11 , wherein the compute unit determines, based on the first bit, that the first compressed chunk is a monotonic chunk that represents successive adjacent primitives by adding an index of a vertex that is not shared by the adjacent as triangles to the bits of the first compressed chunk, and wherein the values of the second bits are set to an offset value that is equal to a value of a first index in the first compressed chunk that is not a restart index that indicates that a subsequent primitive is not adjacent to a previous primitive represented an index previous to the restart index. 14. The apparatus of claim 13 , wherein values of a second set of the third bits indicate a number of restart indices in the first compressed chunk and at least one additional set of third bits indicates at least one location of at least one restart index within the first compressed chunk. 15. The apparatus of claim 11 , wherein the compute unit determines, based on the first bit, that the first compressed chunk is an ordinary chunk that represents primitives using indices of all the vertices of the primitive, wherein the second bits indicate an offset value that is equal to a minimum value of the indices in the first compressed chunk, wherein a second set of third bits indicates a number of bits that are used to represent differences between the values of the indices and the offset value, and at least one third set of third bits indicates that at least one of the indices is a repeated value of a unique index and indicates a relative location of the unique index in the chunk. 16. An apparatus comprising: an index buffer configured to store indices of vertices of primitives that are processed by a graphics pipeline; and a plurality of compute units configured to concurrently: access metadata for compressed chunks, wherein the metadata comprises first bits to indicate whether the compressed chunks are monotonic or ordinary, second bits to define offsets that are determined based on values of the indices, and a first set of third bits to indicate that at least one of the indices in the compressed chunks is unique in having a value that is not equal to the value of any previous index within the chunk, wherein the first set of third bits further indicates a difference between the unique index and t

Assignees

Inventors

Classifications

  • Bandwidth reduction · CPC title

  • General purpose rendering architectures · CPC title

  • Model-based coding, e.g. wire frame · CPC title

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10600142B2 cover?
A compute unit accesses a chunk of bits that represent indices of vertices of a graphics primitive. The compute unit sets values of a first bit to indicate whether the chunk is monotonic or ordinary, second bits to define an offset that is determined based on values of indices in the chunk, and sets of third bits that determine values of the indices in the chunk based on the offset defined by t…
Who is the assignee on this patent?
Advanced Micro Devices Inc
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 24 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).