API Enumerations
Enumerations define a set of named constants that represent distinct values. In DirectX 12, enumerations are used extensively to specify states, options, and types for various API functions and objects.
Common Enumerations d3d12.h
These are some of the most frequently used enumerations in the DirectX 12 API.
D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
D3D12_COMMAND_LIST_TYPE_COPY = 2,
D3D12_COMMAND_LIST_TYPE_COMPUTE = 3
} D3D12_COMMAND_LIST_TYPE;
Specifies the type of command list.
D3D12_HEAP_TYPE_DEFAULT = 1,
D3D12_HEAP_TYPE_UPLOAD = 2,
D3D12_HEAP_TYPE_READBACK = 3,
D3D12_HEAP_TYPE_CUSTOM = 4
} D3D12_HEAP_TYPE;
Describes the memory heap type. This value is used in D3D12_HEAP_PROPERTIES.
D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4
} D3D12_PRIMITIVE_TOPOLOGY_TYPE;
Specifies the primitive topology type.
Resource Management Enumerations d3d12.h
Enumerations related to resource creation, state, and usage.
D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
D3D12_RESOURCE_DIMENSION_BUFFER = 1,
D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4
} D3D12_RESOURCE_DIMENSION;
Identifies the dimensionality of a resource.
D3D12_RESOURCE_STATE_COMMON = 0,
D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
D3D12_RESOURCE_STATE_COPY_DEST = 0x40,
D3D12_RESOURCE_STATE_COPY_SOURCE = 0x80,
D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x100,
D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x200,
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_SAS = 0x400,
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE_COPY_SAS = 0x800,
D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_ACCESS = 0x1000,
D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x2000,
D3D12_RESOURCE_STATE_GENERATE_MIPS = 0x4000,
D3D12_RESOURCE_STATE_NONE = 0xFFFFFFFF
} D3D12_RESOURCE_STATES;
Specifies the states that a resource can be in. This is a bitmask.
Pipeline State Enumerations d3d12.h
Enumerations used for configuring the graphics and compute pipelines.
D3D12_FILL_MODE_WIREFRAME = 2,
D3D12_FILL_MODE_SOLID = 3
} D3D12_FILL_MODE;
Specifies the fill mode for rasterization.
D3D12_CULL_MODE_NONE = 0,
D3D12_CULL_MODE_FRONT = 1,
D3D12_CULL_MODE_BACK = 2
} D3D12_CULL_MODE;
Specifies the face-culling mode.
Shader Model Enumerations d3d12.h
Defines the shader model versions supported.
D3D_SHADER_MODEL_5_1 = 0x51,
D3D_SHADER_MODEL_6_0 = 0x60,
D3D_SHADER_MODEL_6_1 = 0x61,
D3D_SHADER_MODEL_6_2 = 0x62,
D3D_SHADER_MODEL_6_3 = 0x63,
D3D_SHADER_MODEL_6_4 = 0x64,
D3D_SHADER_MODEL_6_5 = 0x65,
D3D_SHADER_MODEL_6_6 = 0x66
} D3D_SHADER_MODEL;
Specifies the shader model version.