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
Applications can discover the level of support for resource binding, and many other features, via the ID3D12Device::CheckFeatureSupport call.
Resource Binding in HLSL
This section describes some specific features of using High Level Shading 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.

Direct3D 12 Programming Guide

DirectX advanced learning video tutorials : Resource Binding in DirectX 12

Memory Management