No miss cache structure for real-time image transformations with multiple LSR processing engines
AssigneeMicrosoft Technology Licensing, LLC
InventorsRyan Scott Haraden, Tolga Ozguner, Adam James Muff, Jeffrey Powers Bradford, Christopher Jon Johnson, Gene Leung, Miguel Comparan
Life of this patent
Estimating the term…
Abstract
Systems and methods are disclosed herein for providing improved cache structures and methods that are optimally sized to support a predetermined range of late stage adjustments and in which image data is intelligently read out of DRAM and cached in such a way as to eliminate re-fetching of input image data from DRAM and minimize DRAM bandwidth and power. The systems and methods can also be adapted to work with compressed image data and multiple LSR processing engines.
Claims21
An improved method for caching image data intended for use with a head-mounted, augmented, mixed or virtual reality display system (HMD) having a graphics processing unit (GPU), an on-chip cache, system memory, and a display, the GPU generating images that can include text, holographic objects and other visual elements that can be displayed on the display, the system memory for storing GPU images as compressed image data, and the HMD configured to perform late stage reprojections (LSR) to correct GPU images for movement of the HMD that may occur during the image rendering process, and the cache for use in generating an output image based on the generated images and the late stage reprojections, and the HMD generating LSR transformations that map each pixel of the LSR output image to the corresponding pixel of the GPU image, the method comprising acts for:
- pre-fetching one or more tiles of compressed GPU image data from system memory and placing the compressed GPU image data in a first cache, the one or more tiles of compressed GPU image data being selected in the order needed to construct the output image;
- pre-fetching and decompressing one or more tiles of compressed GPU image data from the first cache and placing the decompressed GPU image data in a second cache, the one or more tiles being selected in the order needed to construct the output image;
- pre-fetching decompressed GPU image data from one or more tiles in the second cache and writing the pre-fetched decompressed GPU image data into a third cache in the order needed to construct a first portion of the output image based on the LSR transformations, the third cache being associated with a first LSR processing engine;
- and
- constructing, by the first LSR processing engine, a first portion of the output image by walking the decompressed GPU image data in the third cache according to the LSR transformations associated with the first LSR processing engine.
Dependencies are inferred from the claim text.