System, method, and computer program product for accessing multi-sample surfaces

US9436971B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9436971-B2
Application numberUS-201313970542-A
CountryUS
Kind codeB2
Filing dateAug 19, 2013
Priority dateMar 15, 2013
Publication dateSep 6, 2016
Grant dateSep 6, 2016

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 accessing multi-sample surfaces. A multi-sample store instruction that specifies data for a single sample of a multi-sample pixel and a sample mask is received and the data for the single sample is stored to each sample of the multi-sample pixel that is enabled according to the sample mask. A multi-sample load instruction that specifies a multi-sample pixel is received, and, in response to executing the multi-sample load instruction, data for one sample of the multi-sample pixel is received. A determination is made that the data for the one sample of the multi-sample pixel represents multi-sample pixel data for at least one additional sample of the multi-sample pixel.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: processing, by two or more threads, a first primitive covering two or more samples of a multi-sample pixel that comprises multiple samples to generate data for the two or more samples of the multi-sample pixel; processing, by a single thread, a second primitive covering a subset of the multiple samples to generate data for a single sample of the multi-sample pixel; receiving, by a load/store unit, a multi-sample store instruction that specifies the data for the single sample of the multi-sample pixel samples and a sample mask, wherein a pixel coverage mask indicates the sample coverage of the second primitive and the sample mask indicates the subset of the multiple samples that are covered by the second primitive and are associated with the data for the single sample; and in response to executing the multi-sample store instruction, storing the data for the single sample to at least two samples of the multi-sample pixel that are enabled according to the sample mask. 2. The method of claim 1 , further comprising associating the multi-sample pixel with an encoding state that indicates the data for the single sample represents data for less than all samples of the multi-sample pixel. 3. The method of claim 2 , wherein the encoding state is associated with a tile including the multi-sample pixel and one or more additional multi-sample pixels. 4. The method of claim 3 , further comprising determining the single sample represents the entire multi-sample pixel and one or more additional multi-sample pixels in a tile including the multi-sample pixel and the one or more additional multi-sample pixels. 5. The method of claim 1 , further comprising transmitting the sample mask and data for the single sample to a cache or processing unit that expands the data for the single sample based on the sample mask. 6. A system comprising: a memory storing multi-sample pixel data; a processing unit configured to: process, by two or more threads, a first primitive covering two or more samples of a multi-sample pixel that comprises multiple samples to generate data for the two or more samples of the multi-sample pixel; process, by a single thread, a second primitive covering a subset of the multiple samples to generate data for a single sample of the multi-sample pixel; and a load/store unit that is coupled between the processing unit and the memory, and configured to: receive a multi-sample store instruction that specifies data for a single sample of the multi-sample pixel and a sample mask, wherein a pixel coverage mask indicates the sample coverage of the second primitive and the sample mask indicates the subset of the multiple samples that are covered by the second primitive and are associated with the data for the single sample; and store the data for the single sample to at least two samples of the multi-sample pixel that are enabled according to the sample mask in response to executing the multi-sample store instruction. 7. The system of claim 6 , where the load/store unit is further configured to determine the single sample represents the entire multi-sample pixel and one or more additional multi-sample pixels in a tile including the multi-sample pixel and the one or more additional multi-sample pixels. 8. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform steps comprising: processing, by two or more threads, a first primitive covering two or more samples of a multi-sample pixel that comprises multiple samples to generate data for the two or more samples of the multi-sample pixel; processing, by a single thread, a second primitive covering a subset of the multiple samples to generate data for a single sample of the multi-sample pixel; receiving a multi-sample store instruction that specifies data for a single sample of the multi-sample pixel and a sample mask, wherein a pixel coverage mask indicates the sample coverage of the second primitive and the sample mask indicates the subset of the multiple samples that are covered by the second primitive and are associated with the data for the single sample; and in response to executing the multi-sample store instruction, storing the data for the single sample to at least two samples of the multi-sample pixel that are enabled according to the sample mask. 9. A method, comprising: receiving a multi-sample load instruction that specifies one sample of a multi-sample pixel that comprises multiple samples, wherein the multiple samples includes a first subset of samples associated with a first encoding state and a second subset of samples associated with a second encoding state; in response to executing the multi-sample load instruction, receiving data for one sample of the multi-sample pixel, wherein the one sample and at least one additional sample of the multiple samples is included in the first subset; and determining the first encoding state indicating that the data for the one sample of the multi-sample pixel represents multi-sample pixel data for the first subset, wherein the first subset is stored in a first cache line and the second subset is stored in a second cache line. 10. The method of claim 9 , wherein the determining comprises receiving a predicate indicating the first encoding state in response to executing the multi-sample load instruction. 11. The method of claim 9 , wherein the first encoding state is read from a memory. 12. The method of claim 9 , wherein the first encoding state comprises a sample mask indicating which other samples in the first subset are represented by the data for the one sample. 13. The method of claim 9 , wherein the first encoding state is associated with a tile including the multi-sample pixel and one or more additional multi-sample pixels. 14. The method of claim 9 , wherein the determining comprises analyzing the multi-sample pixel data to identify that the data for the one sample represents multi-sample pixel data for all samples in the first subset. 15. The method of claim 9 , wherein the determining comprises computing a component-wise minimum or maximum of four samples within the first subset. 16. A system comprising: a memory storing multi-sample pixel data; and an analysis unit that is coupled to the memory and configured to: receive a multi-sample load instruction that specifies one sample of a multi-sample pixel that comprises multiple samples, wherein the multiple samples includes a first subset of samples associated with a first encoding state and a second subset of samples associated with a second encoding state; in response to executing the multi-sample load instruction, receive data for one sample of the multi-sample pixel, wherein the one sample and at least one additional sample of the multiple samples is included in the first subset; and determine the first encoding state indicating that the data for the one sample of the multi-sample pixel represents multi-sample pixel data for the first subset, wherein the first subset is stored in a first cache line and the second subset is stored in a second cache line. 17. The system of claim 16 , wherein the analysis unit resides within one or more of a load/store unit, a cache, and a processing unit. 18. The system of claim 16 , wherein the first encoding state is received by the analysis unit. 19. The system of claim 16 , wherein the analysis unit is further configured to compute a component-wise minimum or maximum of four samples within the first subset to

Assignees

Inventors

Classifications

  • G06T1/60Primary

    Memory management · CPC title

  • G06T11/40Primary

    Filling planar surfaces by adding surface attributes, e.g. adding colours or textures · CPC title

  • Physics · mapped topic

  • Denoising; Smoothing · CPC title

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 US9436971B2 cover?
A system, method, and computer program product are provided for accessing multi-sample surfaces. A multi-sample store instruction that specifies data for a single sample of a multi-sample pixel and a sample mask is received and the data for the single sample is stored to each sample of the multi-sample pixel that is enabled according to the sample mask. A multi-sample load instruction that spec…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06T1/60. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 06 2016 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).