Abstract:
A fixed rate compressor is used to perform variable rate texture compression. A texture image is accessed. A block size used to compress the image is automatically varied over the image to achieve variable rate texture compression. The block size may be selected to reduce the compressed texture image size and adapted in local regions of the texture image based on quality considerations, such as a quality condition that an error for each block be less that a threshold error. The restriction on block size and block types may be selected to perform decompression with hardware conventionally used to perform decompression of fixed-rate blocks. The quality condition may be user-selectable by a user input to provide additional control over the tradeoffs between quality and compression.
Abstract:
In a graphics processing system pixel data and vertex coordinate information from a previous frame is buffered and provided to the current frame. A decision is made in the current frame whether pixel data from the previous frame may be reused. In one implementation if the speed of pixels in a tile is less than a quasi-static speed threshold a decision is made whether or not to reuse a fraction of pixels from the previous frame.
Abstract:
A graphics system interleaves a combination of graphics renderer operations and compute shader operations. A set of API calls is analyzed to determine dependencies and identify candidates for interleaving. A compute shader is adapted to have a tiled access pattern. The interleaving is scheduled to reduce a requirement to access an external memory to perform reads and writes of intermediate data.
Abstract:
In a pipelined application having different stages of processing, such as a graphics application or an image processing application, there may be a dependence of one compute kernel upon another. Data associated with individual kernels needs to be written and read. A technique to minimize a need to read and write kernel data to external memory utilize at least one of fusing kernels, resizing workgroups, and performing interleaving of kernels.
Abstract:
An apparatus, system and method is provided to determine a motion of pixels in local regions of a scene, classify the motion into a speed category, and make decisions on how to render blocks of pixels. In one implementation the motion in a tile is classified into at least three different speed regimes. If the pixels in a tile are in a quasi-static speed regime, a determination is made whether or not to reuse a fraction of pixels from the previous frame. If the pixels are determined to be in a high speed regime, a decision is made whether or not a sampling rate may be reduced.
Abstract:
Graphics processing is performed in which a decision is made in individual tiles whether or not to sample at a reduced sampling rate. A sampling pattern is selected from a set of sampling patterns having the same reduced sampling rate. The sampling pattern is dithered over a set of frames to reduce the visual appearance of visual artifacts via temporal color averaging.
Abstract:
A graphics system includes a reconstruction unit that utilizes higher order polynomials, such as cubic splines, to reconstruct missing pixel data. The computational work to perform interpolation with higher order polynomials, such as cubic splines, is reduced by pre-calculating weights for each sparse sample pattern. The pre-calculated weights may be stored as stencils and used during runtime to perform interpolation.
Abstract:
A graphics system supports variable rate compression and decompression of texture data and color data. An individual block of data is analyzed to determine a compression data type from a plurality of different compression data types having different compression lengths. The compression data types may include a compression data type for a block having a constant (flat) pixel value over n×n pixels, compression data type in which a subset of 3 or 4 values represents a plane or gradient, and wavelet or other compression type to represent higher frequency content. Additionally, metadata indexing provides information to map between an uncompressed address to a compressed address. To reduce the storage requirement, the metadata indexing permits two or more duplicate data blocks to reference the same piece of compressed data.