Graphics Reference
In-Depth Information
or other high level content are provided by the application; they are usually specialized to
the particular needs of each application.
Direct3D provides a set of API functions that can be used to convert the high-level
content of the application into a format that can be interpreted by the user-mode driver. The
content required by the application must be formatted according to the rules of Direct3D.
This includes the actual data formatting, as well as the required sequencing of function
calls. As long as the application follows the required Direct3D usage, it can be sure that it
is operating within the graphics architecture.
Once Direct3D has received a series of function calls from the application, it interacts
with the user-mode driver to produce a list of commands that are executed by the GPU.
The results of these actions are relayed to the DXGI interface to manipulate the contents of
hardware resources. DXGI handles the lower-level hardware interfaces, such as providing
an "adapter" interface for each video card that is installed in a computer. It is DXGI that
also provides access to what are called swap chains, which encapsulate the actual buffers
that can be used to present the rendered contents to a window.
Although this is not shown in Figure 1.1, it is quite likely that multiple applica-
tions will simultaneously be using the Direct3D runtime. This is one of the benefits of
the Windows display driver model (WDDM), that the video resources are virtualized and
shared among all applications. Applications do not have to worry about gaining access to
the GPU, since it is available to all applications simultaneously. Of course, when a user
is performing a very graphically intensive operation, like playing a high end game, there
are likely to be fewer applications using the GPU, and hence more of its computational
power can be directed to the game. This is a departure from the Windows XP driver model
(XPDM) which did not explicitly virtualize access to the GPU.
1.1.2 Benefits of Abstraction
Since an application interfaces with the Direct3D API instead of directly to a driver, it only
needs to learn the rales of interfacing with one API to produce the desired output instead
of trying to adapt to all of the various devices that a user might have installed. This shifts
the burden of creating a uniform rendering system with which to interact to the video card
manufacturers—they must adhere to the Direct3D standard, as opposed to the application
trying to implement its own "standard" rendering system.
The video system of modern computers typically contains specialized hardware that is
designed to perform graphics operations. However, it is possible that an entry-level com-
puter doesn't have Direct3D-capable hardware installed, or that it only has a subset of
the required functionality for a particular application. Fortunately, Direct3D 11 provides
a software driver implementation that can be used in the absence of Direct3D-capable
Search WWH ::




Custom Search