System, method, and computer program product for processing primitive specific attributes generated by a fast geometry shader

US9836878B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9836878-B2
Application numberUS-201514820438-A
CountryUS
Kind codeB2
Filing dateAug 6, 2015
Priority dateMar 15, 2013
Publication dateDec 5, 2017
Grant dateDec 5, 2017

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 system, method, and computer program product are provided for processing primitive-specific attributes. A portion of a graphics processor is determined to operate in a fast geometry shader mode and a vertex associated with a set of per-vertex attributes is determined to be a shared vertex. The shared vertex is determined to be a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes and the shared vertex is determined to be a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes. Only one set of the per-vertex attributes associated with the shared vertex is stored and only one of the second set of per-primitive attributes associated with the second primitive is stored.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: determining that a portion of a graphics processor is operating in a fast geometry shader mode, wherein the graphics processor comprises at least one streaming multiprocessor configured to execute a vertex shader and a geometry shader; determining that a first vertex associated with a first set of per-vertex attributes is a first shared vertex; determining that the first shared vertex is a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes; determining that the first shared vertex is a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes by examining vertices of the second primitive and vertices of a third primitive when the first primitive is received; storing the first set of the per-vertex attributes associated with the first shared vertex; and storing only one copy of the second set of per-primitive attributes associated with the second primitive. 2. The method of claim 1 , further comprising processing the only one copy of the second set of per-primitive attributes associated with the second primitive. 3. The method of claim 1 , wherein the first set of the per-vertex attributes associated with the first shared vertex is stored in a cache entry. 4. The method of claim 3 , wherein the only one copy of the second set of per-primitive attributes associated with the second primitive is also stored in the cache entry. 5. The method of claim 3 , further comprising setting a bit corresponding to the cache entry indicating that the first shared vertex is the provoking vertex. 6. The method of claim 3 , further comprising associating a primitive identifier corresponding to the second primitive with the cache entry. 7. The method of claim 1 , further comprising: determining that a second vertex associated with a second set of per-vertex attributes is a second shared vertex; determining that the second shared vertex is the provoking vertex corresponding to the first primitive and a third primitive that is associated with a third set of per-primitive attributes; and duplicating the second set of per-vertex attributes associated with the second shared vertex to generate a duplicated set of per-vertex attributes associated with the second shared vertex. 8. The method of claim 7 , further comprising: storing the second set of per-vertex attributes and the first set of per-primitive attributes associated with the first primitive in a first cache entry; and storing the duplicated set of per-vertex attributes and the third set of per-primitive attributes associated with the third primitive in a second cache entry. 9. A non-transitory computer readable medium, storing instructions that, when executed by a processor, cause the processor to perform steps, comprising: determining that a portion of a graphics processor is operating in a fast geometry shader mode, wherein the graphics processor comprises at least one streaming multiprocessor configured to execute a vertex shader and a geometry shader; determining that a first vertex associated with a first set of per-vertex attributes is a first shared vertex; determining that the first shared vertex is a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes; determining that the first shared vertex is a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes by examining vertices of the second primitive and vertices of a third primitive when the first primitive is received; storing the first set of the per-vertex attributes associated with the first shared vertex; and storing only one copy of the second set of per-primitive attributes associated with the second primitive. 10. A system, comprising: a graphics processor comprising at least one streaming multiprocessor configured to execute a vertex shader and a geometry shader, and configured to: determine that a portion of a graphics processor is operating in a fast geometry shader mode; determine that a first vertex associated with a first set of per-vertex attributes is a first shared vertex; determine that the first shared vertex is a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes; determine that the first shared vertex is a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes by examining vertices of the second primitive and vertices of a third primitive when the first primitive is received; store the first set of the per-vertex attributes associated with the first shared vertex; and store only one copy of the second set of per-primitive attributes associated with the second primitive. 11. The system of claim 10 , wherein the graphics processor comprises a cache and the first set of the per-vertex attributes associated with the first shared vertex is stored in a cache entry. 12. The system of claim 11 , wherein the only one copy of the second set of per-primitive attributes associated with the second primitive is also stored in the cache entry. 13. The system of claim 11 , wherein the graphics processor is further configured to set a bit corresponding to the cache entry indicating that the first shared vertex is the provoking vertex. 14. A method, comprising: determining that a portion of a graphics processor is operating in a fast geometry shader mode, wherein the graphics processor comprises at least one streaming multiprocessor configured to execute a vertex shader and a geometry shader; determining that a first vertex associated with a first set of per-vertex attributes is a first shared vertex; determining that the first shared vertex is a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes; determining that the first shared vertex is a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes; determining that a second vertex associated with a second set of per-vertex attributes is a second shared vertex; determining that the second shared vertex is the provoking vertex corresponding to the first primitive; duplicating the second set of per-vertex attributes associated with the second shared vertex to generate a duplicated set of per-vertex attributes associated with the second shared vertex; storing the first set of the per-vertex attributes associated with the first shared vertex; and storing only one copy of the second set of per-primitive attributes associated with the second primitive. 15. The method of claim 14 , wherein the first set of the per-vertex attributes associated with the first shared vertex is stored in a cache entry.

Assignees

Inventors

Classifications

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 US9836878B2 cover?
A system, method, and computer program product are provided for processing primitive-specific attributes. A portion of a graphics processor is determined to operate in a fast geometry shader mode and a vertex associated with a set of per-vertex attributes is determined to be a shared vertex. The shared vertex is determined to be a non-provoking vertex corresponding to a first primitive that is …
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06T15/87. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 05 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).