Virtual texturing in software and hardware
暂无分享,去创建一个
This course introduces partially resident textures (PRTs), a new GPU feature for virtual texturing, and contrasts them with software-based methods of virtual texturing. PRTs are available in the Southern Islands (Radeon HD 7xxx) family of graphics processors.
The basic idea of virtual texturing is simple: instead of maintaining a separate texture for each object rendered on the screen, all textures are stored in a "virtual texture". The size of the virtual texture is on the order of billions of texels, and each object is assigned unique virtual-texture coordinates from the virtual texture. When used in a shader, the virtual-texture coordinates are translated into physical-texture coordinates, which are used to access the physical texture that contains the working set of all required tiles.
Existing approaches implement the entire virtual texturing algorithm in software. The software is required to update the page table (another texture used for translating virtual texture coordinates to physical ones), perform address translation, and deal with hardware differences when it comes to supported texture types, formats, and filtering modes. The first part of the course outlines this process and discusses difficulties encountered when this technology is deployed in RAGE. PRTs eliminate the need for maintaining the page table and address translation and provide support for all texture types, formats, and filtering modes. The second part of the course describes the hardware architecture as it relates to PRTs. The third part of the course introduce the new AMD sparse-texture OpenGL extension that exposes PRTs to software applications. The course includes several PRT use cases, a technical demo, and a summary of the strengths and weaknesses of PRT technology.