Graphics Reference
In-Depth Information
Multithreaded
Paraboloid Mapping
We have seen in Chapter 7 that Direct3D 11 provides a very thorough and consistent API
for handling multithreaded use cases. Two different types of multithreaded actions are
available for use by an application. The first is multithreaded resource creation, and the
second is the ability to perform multithreaded draw submission sequences. While multi-
threaded resource creation can allow for a simpler implementation for many operations, the
ability to submit drawing operations in parallel has the potential to significantly reduce the
amount of overhead on the CPU required to render a particular frame. The sample applica-
tion presented in this chapter seeks to exercise this multithreaded submission capability
and investigate how it impacts the overall rendering performance of a particular test scene.
We have also seen in Chapter 7 that there are several different ways that multi-
threaded drawing can be used. Depending on the granularity of the rendering task that a
command list is generated for, an application can theoretically achieve better performance
from the multithreaded rendering system. We will focus on the largest granularity that was
discussed in Chapter 7, capturing a complete "view" of a scene as a single rendering pass.
This granularity level essentially incorporates all of the actions that take place from when
a render target is cleared until it has been completely filled and can be unbound from the
pipeline. Therefore, a test scene that takes advantage of this mechanism requires more
than one of these "view"-level rendering passes, which can be recorded in command lists
in parallel, and then can be executed by a single thread to submit the command lists to the
GPU in the appropriate order.
The scene we will use to test this capability will employ a technique called dual-
paraboloid environment mapping (Heidrich, 1998), (Brabec, 2002). This is an environment
mapping technique that simulates reflections around an object by rendering the object's
surroundings into a pair of special render targets, using a specialized transformation based
on paraboloids. With only two render targets, the entire surroundings of an object can be
577
Search WWH ::




Custom Search