Resource Binding

Binding is the process of linking resource objects to the shaders of the graphics pipeline.

In this section

Topic Description
Resource Binding Overview The key to resource binding in DirectX 12 are the concepts of a descriptor, descriptor tables, descriptor heaps, and a root signature.
Differences in the Binding Model from Direct3D 11 One of the main design decisions behind DirectX12 binding is to separate it from other management tasks. This places some requirements on the app to manage certain potential hazards.
Descriptors Descriptors are the primary unit of binding for a single resource in D3D12.
Descriptor Heaps A descriptor heap is a collection of contiguous allocations of descriptors, one allocation for every descriptor.
Descriptor Tables A descriptor table is logically an array of descriptors.
Root Signatures The root signature defines what types of resources are bound to the graphics pipeline.
Capability Querying Your application can discover the level of support for resource binding, and many other features, with a call to ID3D12Device::CheckFeatureSupport.
Resource binding in HLSL This topic describes some specific features of using High Level Shader Language (HLSL) Shader Model 5.1 with Direct3D 12. All Direct3D 12 hardware supports Shader Model 5.1, so support for this model does not depend on what the hardware feature level is.
UMA Optimizations: CPU Accessible Textures and Standard Swizzle Universal Memory Architecture (UMA) GPUs offer some efficiency advantages over discrete GPUs, especially when optimizing for mobile devices. Giving resources CPU access when the GPU is UMA can reduce the amount of copying that occurs between CPU and GPU. While we don t recommend applications blindly give CPU access to all resources on UMA designs, there are opportunities to improve efficiencies by giving the right resources CPU access. Unlike discrete GPUs, the CPU can technically have a pointer to all resources that the GPU can access.
Typed Unordered Access View Loads Unordered Access View (UAV) Typed Load is the ability for a shader to read from a UAV with a specific DXGI_FORMAT.
Volume Tiled Resources Volume (3D) textures can be used as tiled resources, noting that tile resolution is three-dimensional.
Subresources Describes how a resource is divided into subresources, and how to reference a single, multiple or slice of subresources.