Higher Fidelity Graphics with Less Memory at Microsoft BuildJune 26, 2013
Henry Moreton, Ph.D., is a Distinguished Engineer in the architecture group at NVIDIA. He holds over seventy-five patents in the areas of optics, video compression, graphics, system and CPU architecture, and curve and surface modeling and rendering.
Tiled Resource support in Direct3D was introduced today by Microsoft at its annual Build developer conference.
Tiled Resources are a major advance in application flexibility in managing memory, and I’m excited to think about the applications this will open up.
Before Tiled Resources, all memory surfaces in Direct3D had to be fully physically resident in DRAM. Tiled Resources are different – they are memory resources whose constituent pages (tiles) may be optionally populated with corresponding physical memory. Microsoft has created a standard hardware interface to what was previously a software-only technology, which will mean a more powerful, efficient generalization of earlier texture-only technologies.
To illustrate the usefulness of Tiled Resources, Microsoft shared three demonstration applications all running on NVIDIA GPUs. The first two illustrated the use of Tiled Resources to support view-dependent streaming of texture detail.
In the first, Microsoft took the audience to a point high above Mars, and then zoomed down to expose the detailed crags and crannies of the rocky red planet’s surface. In the application, the surface of the planet is textured with six sets of 16K mipmapped textures. By taking the current viewpoint into account, the application need only populate a tiny fraction of these textures.
In the second demo, provided by Graphine Software, Microsoft showed a futuristic plane flying over a highly detailed landscape. The viewer flew high and low, yet the full richness of the land below remained visible throughout.
In both, Tiled Resources are used by the developer to only allocate memory necessary for the current view, though the hardware renders from enormous textures.
This slight-of-hand greatly simplifies the developer’s task, in turn allowing the hardware to automatically filter the texture as though all of the texture were present. The end result is lower development time, a higher fidelity image, greater performance and less power consumption.
In a third demo illustrating another powerful use of Tiled Resources, Microsoft showed a program developed by our content technology group. It showed a power plant filled with fine shadows that dynamically shift to reveal the detailed environment.
In this example, an enormous shadow depth map is used to precisely compute the shadows in the scene.
To avoid the allocation of a prohibitive amount of memory, Tiled Resources are used to allocate only the memory required to compute the shadows for the current view, a tiny fraction of the total.
The residency map, on the left, depicts the allocation map; the black region represents high resolution, and shades of represent progressively lower resolutions of the shadow hierarchy.
These demos are excellent highlights of the power of Tiled Resources. By working in collaboration with Microsoft, our NVIDIA team has been able to influence the design of Tiled Resources and deliver a solid driver that taps into the huge NVIDIA installed base. There are over 90 million NVIDIA GPUs capable of supporting Tiled Resources. For developers, that means an enormous, instant installed base for a powerful new feature. I’m really looking forward to seeing how developers take advantage of this newly available capability.