# US 2017/0287209 A1 · Per-Sample MSAA Rendering Using Comprehension Data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0287209 A1
- Document ID: US20170287209A1
- Status: Published application
- Kind: A1
- Application number: 15/083,771
- Filed: 2016-03-29
- Published: 2017-10-05
- Earliest claimed: 2016-03-29
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: John G. Gierach; Travis T. Schluessler
- Web page: https://patentgrep.com/patent/US20170287209A1

## CPC

- G06T 15/80: Shading
- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06T 11/40: Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
- G06T 15/005: {General purpose rendering architectures}
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

By determining if there is redundancy between sub-samples in a multi-sampled anti-aliasing shader, determining which of at least two optimization techniques to use to reduce redundancy and eliminating a redundant shader thread using the selected technique, performance can be improved and power consumption may be reduced when sampling at the sample frequency in multi-sampled anti-aliasing.

## Claims

### Claim 1

A method comprising:
determining whether a shader is to be run at sample frequency; and
if the shader is to be run at sample frequency, determining whether there is a redundancy between two or more sub-samples.

### Claim 2 (depends on 1)

The method of claim 1 including:
determining if there is redundancy between the sub-samples in a sample frequency shader;
determining which of at least two optimization techniques to use to reduce redundancy; and
eliminating a redundant shader thread using the selected technique.

### Claim 3 (depends on 1)

The method of claim 1 including determining during compilation if there is a redundancy.

### Claim 4 (depends on 2)

The method of claim 2 including identifying sub-samples that have non-redundant data and only dispatching threads for samples with non-redundant data.

### Claim 5 (depends on 2)

The method of claim 2 including compiling a shader executed at pixel frequency.

### Claim 6 (depends on 1)

The method of claim 1 including storing information about whether one or more sub-samples within a pixel have the same color values.

### Claim 7 (depends on 6)

The method of claim 6 including if two sub-samples are the same value then storing color information for one sub-sample and only indicating that the other sub-sample has the same information without storing the same information twice.

### Claim 8 (depends on 1)

The method of claim 1 including identifying cases where there are redundancies in both the source and destination for blended pixels, and using compressed input and output pixel data, reducing unnecessary blend work and memory bandwidth, and maintaining a maximally compressed state.

### Claim 9 (depends on 8)

The method of claim 8 including recompression blended pixels of identical values to save bandwidth.

### Claim 10

One or more non-transitory computer readable media storing instructions to perform a sequence comprising:
determining whether a shader is to be run at sample frequency; and
if the shader is to be run at sample frequency, determining whether there is a redundancy between two or more sub-samples.

### Claim 11 (depends on 10)

The media of claim 10, further storing instructions to perform a sequence including:
determining if there is redundancy between the sub-samples in a sample frequency shader;
determining which of at least two optimization techniques to use to reduce redundancy; and
eliminating a redundant shader thread using the selected technique.

### Claim 12 (depends on 11)

The media of claim 11, further storing instructions to perform a sequence including determining during compilation if there is a redundancy.

### Claim 13 (depends on 11)

The media of claim 11, further storing instructions to perform a sequence including identifying sub-samples that have non-redundant data and only dispatching threads for samples with non-redundant data.

### Claim 14 (depends on 11)

The media of claim 11, further storing instructions to perform a sequence including compiling a shader executed at pixel frequency.

### Claim 15 (depends on 11)

The media of claim 11, further storing instructions to perform a sequence including storing information about whether one or more sub-samples within a pixel have the same color values.

### Claim 16 (depends on 15)

The media of claim 15, further storing instructions to perform a sequence including if two sub-samples are the same value then storing color information for one sub-sample and only indicating that the other sub-sample has the same information without storing the same information twice.

### Claim 17 (depends on 11)

The media of claim 11, further storing instructions to perform a sequence including identifying cases where there are redundancies in both the source and destination for blended pixels, and using compressed input and output pixel data, reducing unnecessary blend work and memory bandwidth, and maintaining a maximally compressed state.

### Claim 18 (depends on 17)

The media of claim 17, further storing instructions to perform a sequence including recompression blended pixels of identical values to save bandwidth.

### Claim 19

An apparatus comprising:
a processor to determine whether a shader is to be run at sample frequency, if the shader is to be run at sample frequency, determine whether there is a redundancy between two or more sub-samples; and
a memory coupled to said processor.

### Claim 20 (depends on 19)

The apparatus of claim 19, said processor to determine if there is redundancy between the sub-samples in a multi-sampled anti-aliasing shader, determine which of at least two optimization techniques to use to reduce redundancy, and eliminate a redundant shader thread using the selected technique.

### Claim 21 (depends on 19)

The apparatus of claim 19, said processor to determine during compilation if there is a redundancy.

### Claim 22 (depends on 20)

The apparatus of claim 20, said processor to identify sub-samples that have non-redundant data and only dispatching threads for samples with non-redundant data.

### Claim 23 (depends on 20)

The apparatus of claim 20, said processor to compute a shader executed at pixel frequency.

### Claim 24 (depends on 19)

The apparatus of claim 19, said processor to store information about whether one or more sub-samples within a pixel have the same color values.

### Claim 25 (depends on 24)

The apparatus of claim 24, said processor to include if two sub-samples are the same value then storing color information for one sub-sample and only indicating that the other sub-sample has the same information without storing the same information twice.

### Claim 26 (depends on 19)

The apparatus of claim 19, said processor to identify cases where there are redundancies in both the source and destination for blended pixels, and use compressed input and output pixel data, reduce unnecessary blend work and memory bandwidth, and maintain a maximally compressed state.

### Claim 27 (depends on 19)

The apparatus of claim 19, said processor to include recompression blended pixels of identical values to save bandwidth.
