Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::Windows::Graphics::D3D12 Namespace Reference

Namespaces

namespace  Video
 

Classes

struct  BlendDesc
 Describes the blend state. More...
 
struct  Box
 Describes a 3D box. More...
 
struct  CachedPipelineState
 Stores a pipeline state. More...
 
struct  ClearValue
 
class  CommandAllocator
 Represents the allocations of storage for graphics processing unit (GPU) commands. More...
 
class  CommandList
 The base class for the GraphicsCommandList class. It represents an ordered set of commands that the GPU executes, while allowing for extension to support other command lists than just those for graphics (such as compute and copy). More...
 
class  CommandQueue
 Provides methods for submitting command lists, synchronizing command list execution, instrumenting the command queue, and updating resource tile mappings. More...
 
struct  CommandQueueDesc
 Describes a command queue. More...
 
class  CommandSignature
 A command signature object enables apps to specify indirect drawing, including the buffer format, command type and resource bindings to be used. More...
 
struct  ComputePipelineStateDesc
 
struct  D3D12_FEATURE_DATA_D3D12_OPTIONS4
 
class  D3D12Debug
 A wrapper class for the ID3D12Debug interface. This interface is used to turn on the debug layer. More...
 
class  D3D12Debug1
 Adds GPU-Based Validation and Dependent Command Queue Synchronization to the debug layer. More...
 
class  D3D12Debug2
 Adds configurable levels of GPU-based validation to the debug layer. More...
 
class  D3D12Debug3
 Adds configurable levels of GPU-based validation to the debug layer. More...
 
class  D3D12Debug4
 Adds the ability to disable the debug layer. More...
 
class  D3D12Debug5
 Adds to the debug layer the ability to configure the auto-naming of objects. More...
 
class  D3D12Debug6
 A debug interface controls debug settings. More...
 
class  D3D12DebugCommandList
 Provides methods to monitor and debug a command list. More...
 
class  D3D12DebugCommandList1
 Enables modification of additional command list debug layer settings. More...
 
class  D3D12DebugCommandList2
 
class  D3D12DebugCommandQueue
 Provides methods to monitor and debug a command queue. More...
 
class  D3D12DebugDevice
 This interface represents a graphics device for debugging. More...
 
class  D3D12DebugDevice1
 Specifies device-wide debug layer settings. More...
 
class  D3D12DebugDevice2
 
class  D3D12InfoQueue
 An information-queue stores, retrieves, and filters debug messages. The queue consists of a message queue, an optional storage filter stack, and a optional retrieval filter stack. More...
 
class  D3D12InfoQueue1
 D3D12InfoQueue1 adds support for message callback with the RegisterMessageCallback and UnregisterMessageCallback functions. More...
 
class  D3D12SharingContract
 Facilitates diagnostics tools to capture information at a lower level than the DXGI swapchain. More...
 
struct  DepthStencilDesc
 Describes depth-stencil state. More...
 
struct  DepthStencilDesc1
 Describes depth-stencil state. More...
 
struct  DepthStencilValue
 
class  DescriptorHeap
 A descriptor heap is a collection of contiguous allocations of descriptors, one allocation for every descriptor. Descriptor heaps contain many object types that are not part of a Pipeline State Object (PSO), such as Shader Resource Views (SRVs), Unordered Access Views (UAVs), Constant Buffer Views (CBVs), and Samplers. More...
 
class  Device
 Represents a virtual adapter; it is used to create command allocators, command lists, command queues, fences, resources, pipeline state objects, heaps, root signatures, samplers, and many resource views. More...
 
class  Device1
 Represents a virtual adapter, and expands on the range of methods provided by the Device class. More...
 
class  Device2
 Represents a virtual adapter. This class extends the Device1 class to create pipeline state objects from pipeline state stream descriptions. More...
 
class  Device3
 Represents a virtual adapter. This class extends the Device2 class to support the creation of special-purpose diagnostic heaps in system memory that persist even in the event of a GPU-fault or device-removed scenario. More...
 
class  Device4
 Represents a virtual adapter. More...
 
class  Device5
 Represents a virtual adapter. More...
 
class  Device6
 Represents a virtual adapter. More...
 
class  Device7
 Represents a virtual adapter. More...
 
class  Device8
 Represents a virtual adapter. More...
 
class  DeviceChild
 Adds the ability to get the device used to create it. More...
 
class  DeviceRemovedExtendedData
 Provides runtime access to Device Removed Extended Data (DRED) data. More...
 
class  DeviceRemovedExtendedData1
 
class  DeviceRemovedExtendedDataSettings
 This class controls Device Removed Extended Data (DRED) settings. More...
 
class  DeviceRemovedExtendedDataSettings1
 
struct  FeatureDataArchitecture
 
struct  FeatureDataArchitecture1
 
struct  FeatureDataCommandQueuePriority
 
struct  FeatureDataCrossNode
 
struct  FeatureDataD3D12Options
 
struct  FeatureDataD3D12Options1
 
struct  FeatureDataD3D12Options10
 
struct  FeatureDataD3D12Options11
 
struct  FeatureDataD3D12Options12
 
struct  FeatureDataD3D12Options13
 
struct  FeatureDataD3D12Options2
 
struct  FeatureDataD3D12Options3
 
struct  FeatureDataD3D12Options5
 
struct  FeatureDataD3D12Options6
 
struct  FeatureDataD3D12Options7
 
struct  FeatureDataD3D12Options8
 
struct  FeatureDataD3D12Options9
 
struct  FeatureDataDisplayable
 
struct  FeatureDataExistingHeaps
 
struct  FeatureDataFeatureLevels
 
struct  FeatureDataFormatInfo
 
struct  FeatureDataFormatSupport
 
struct  FeatureDataGpuVirtualAddressSupport
 
struct  FeatureDataMultiSampleQualityLevels
 
struct  FeatureDataQueryMetaCommand
 
struct  FeatureDataRootSignature
 
struct  FeatureDataSerialization
 
struct  FeatureDataShaderCache
 
class  Fence
 Represents a fence, an object used for synchronization of the CPU and one or more GPUs. More...
 
class  Fence1
 Adds the ability to retrie the flags used to create the fence. This feature is useful primarily for opening shared fences. More...
 
class  GraphicsCommandList
 Encapsulates a list of graphics commands for rendering. Includes APIs for instrumenting the command list execution, and for setting and clearing the pipeline state. More...
 
class  GraphicsCommandList1
 Encapsulates a list of graphics commands for rendering, extending the GraphicsCommandList class to support programmable sample positions, atomic copies for implementing late-latch techniques, and optional depth-bounds testing. More...
 
class  GraphicsCommandList2
 Encapsulates a list of graphics commands for rendering, extending the GraphicsCommandList1 class to support writing immediate values directly to a buffer. More...
 
class  GraphicsCommandList3
 Encapsulates a list of graphics commands for rendering. More...
 
class  GraphicsCommandList4
 Encapsulates a list of graphics commands for rendering, extending the GraphicsCommandList3 class to support ray tracing and render passes. More...
 
class  GraphicsCommandList5
 Encapsulates a list of graphics commands for rendering, extending the GraphicsCommandList4 class to support variable-rate shading (VRS). More...
 
class  GraphicsCommandList6
 
struct  GraphicsPipelineStateDesc
 
class  Heap
 A heap is an abstraction of contiguous memory allocation, used to manage physical memory. This heap can be used with Resource objects to support placed resources or reserved resources. More...
 
class  Heap1
 
struct  HeapDesc
 
struct  HeapProperties
 
struct  InputElementDesc
 Describes a single element for the input-assembler stage of the graphics pipeline. More...
 
struct  InputLayoutDesc
 Describes the input-buffer data for the input-assembler stage. More...
 
class  LifetimeOwner
 Represents an application-defined callback used for being notified of lifetime changes of an object. More...
 
class  LifetimeTracker
 Represents facilities for controlling the lifetime a lifetime-tracked object. More...
 
class  MetaCommand
 
struct  MipRegion
 
class  Object
 A base class from which Device and DeviceChild inherit from. It provides methods to associate private data and annotate object names. More...
 
struct  PackedMipInfo
 
class  Pageable
 Classes derived from Pageable encapsulates some amount of GPU-accessible memory. More...
 
class  PipelineLibrary
 Manages a pipeline library, in particular loading and retrieving individual PSOs. More...
 
class  PipelineLibrary1
 Manages a pipeline library. This class extends the PipelineLibrary class to load PSOs from a pipeline state stream description. More...
 
class  PipelineState
 Represents the state of all currently set shaders as well as certain fixed function state objects. More...
 
struct  PipelineStateStreamDesc
 Describes a pipeline state stream. More...
 
struct  PlacedSubresourceFootprint
 
class  ProtectedResourceSession
 Monitors the validity of a protected resource session. More...
 
class  ProtectedResourceSession1
 Monitors the validity of a protected resource session. More...
 
class  ProtectedSession
 Offers base functionality that allows for a consistent way to monitor the validity of a session across the different types of sessions. The only type of session currently available is of type ProtectedResourceSession. More...
 
class  QueryHeap
 Manages a query heap. A query heap holds an array of queries, referenced by indexes. More...
 
struct  Range
 
struct  RangeUInt64
 
struct  RasterizerDesc
 Describes rasterizer state. More...
 
struct  RenderTargetBlendDesc
 Describes the blend state for a render target. More...
 
struct  RenderTargetFormatArray
 Wraps an array of render target formats. More...
 
class  Resource
 Encapsulates a generalized ability of the CPU and GPU to read and write to physical memory, or heaps. It contains abstractions for organizing and manipulating simple arrays of data as well as multidimensional data optimized for shader sampling. More...
 
class  Resource1
 
class  Resource2
 
struct  ResourceAliasingBarrier
 
struct  ResourceAllocationInfo
 
struct  ResourceAllocationInfo1
 
struct  ResourceBarrier
 
struct  ResourceDesc
 
struct  ResourceDesc1
 
struct  ResourceTransitionBarrier
 
struct  ResourceUavBarrier
 
class  RootSignature
 The root signature defines what resources are bound to the graphics pipeline. A root signature is configured by the app and links command lists to the resources the shaders require. Currently, there is one graphics and one compute root signature per app. More...
 
class  RootSignatureDeserializer
 Contains a method to return the deserialized D3D12_ROOT_SIGNATURE_DESC data structure, of a serialized root signature version 1.0. More...
 
struct  SamplePosition
 
struct  ShaderBytecode
 Describes shader data. More...
 
class  StateObject
 Represents a variable amount of configuration state, including shaders, that an application manages as a single unit and which is given to a driver atomically to process, such as compile or optimize. Create a state object by calling Device5::CreateStateObject. More...
 
class  StateObjectProperties
 Provides methods for getting and setting the properties of an StateObject. To retrieve an instance of this type, call StateObject::As<StateObjectProperties>(). More...
 
struct  StencilOperationsDesc
 Describes stencil operations that can be performed based on the results of stencil test. More...
 
struct  StreamOutputDeclarationEntry
 Describes a vertex element in a vertex buffer in an output slot. More...
 
struct  StreamOutputDesc
 Describes a streaming output buffer. More...
 
struct  SubresourceFootprint
 
struct  SubresourceInfo
 
struct  SubresourceRangeUInt64
 
struct  SubresourceTiling
 
class  SwapChainAssistant
 
struct  TextureCopyLocation
 
struct  TiledResourceCoordinate
 
struct  TileRegionSize
 
struct  TileShape
 
class  Tools
 This class is used to configure the runtime for tools such as PIX. Its not intended or supported for any other scenario. More...
 
class  VersionedRootSignatureDeserializer
 Contains methods to return the deserialized D3D12_ROOT_SIGNATURE_DESC1 data structure, of any version of a serialized root signature. More...
 
struct  ViewInstanceLocation
 
struct  ViewInstancingDesc
 
struct  Viewport
 Describes the dimensions of a viewport. More...
 

Typedefs

using Rectangle = Windows::Rectangle
 
using ShaderModel = D3D_SHADER_MODEL
 
using FeatureDataShaderModel = D3D12_FEATURE_DATA_SHADER_MODEL
 

Enumerations

enum class  CommandListType : Int32 {
  Direct = D3D12_COMMAND_LIST_TYPE_DIRECT ,
  Bundle = D3D12_COMMAND_LIST_TYPE_BUNDLE ,
  Compute = D3D12_COMMAND_LIST_TYPE_COMPUTE ,
  Copy = D3D12_COMMAND_LIST_TYPE_COPY ,
  VideoDecode = D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE ,
  VideoProcess = D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS ,
  VideoEncode = D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE
}
 Specifies the type of a command list. More...
 
enum class  CommandQueueFlags : Int32 {
  None = D3D12_COMMAND_QUEUE_FLAG_NONE ,
  DisableGpuTimeout = D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT
}
 Specifies flags to be used when creating a command queue. More...
 
enum class  CommandQueuePriority : Int32 {
  Normal = D3D12_COMMAND_QUEUE_PRIORITY_NORMAL ,
  High = D3D12_COMMAND_QUEUE_PRIORITY_HIGH ,
  Realtime = D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME
}
 Defines priority levels for a command queue. More...
 
enum class  PrimitiveTopologyType : Int32 {
  Undefined = D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED ,
  Point = D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT ,
  Line = D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE ,
  Triangle = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE ,
  Patch = D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH
}
 Specifies how the pipeline interprets geometry or hull shader input primitives. More...
 
enum class  InputClassification : Int32 {
  PerVertexData = D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA ,
  PerInstanceData = D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA
}
 
enum class  FillMode : Int32 {
  Unknown = 0 ,
  Wireframe = D3D12_FILL_MODE_WIREFRAME ,
  Solid = D3D12_FILL_MODE_SOLID
}
 Specifies the fill mode to use when rendering triangles. More...
 
enum class  CullMode : Int32 {
  None = D3D12_CULL_MODE_NONE ,
  Front = D3D12_CULL_MODE_FRONT ,
  Back = D3D12_CULL_MODE_BACK
}
 Specifies triangles facing a particular direction are not drawn. More...
 
enum class  ComparisonFunction : Int32 {
  Unknown = 0 ,
  Never = D3D12_COMPARISON_FUNC_NEVER ,
  Less = D3D12_COMPARISON_FUNC_LESS ,
  Equal = D3D12_COMPARISON_FUNC_EQUAL ,
  LessOrEqual = D3D12_COMPARISON_FUNC_LESS_EQUAL ,
  Greater = D3D12_COMPARISON_FUNC_GREATER ,
  NotEqual = D3D12_COMPARISON_FUNC_NOT_EQUAL ,
  GreaterOrEqual = D3D12_COMPARISON_FUNC_GREATER_EQUAL ,
  Always = D3D12_COMPARISON_FUNC_ALWAYS
}
 Specifies comparison options. A comparison option determines how the runtime compares source (new) data against destination (existing) data before storing the new data. More...
 
enum class  DepthWriteMask : Int32 {
  Zero = D3D12_DEPTH_WRITE_MASK_ZERO ,
  All = D3D12_DEPTH_WRITE_MASK_ALL
}
 Identifies the portion of a depth-stencil buffer for writing depth data. More...
 
enum class  StencilOperation : Int32 {
  Keep = D3D12_STENCIL_OP_KEEP ,
  Zero = D3D12_STENCIL_OP_ZERO ,
  Replace = D3D12_STENCIL_OP_REPLACE ,
  IncrementIfNotSaturated = D3D12_STENCIL_OP_INCR_SAT ,
  DecrementIfNotSaturated = D3D12_STENCIL_OP_DECR_SAT ,
  Invert = D3D12_STENCIL_OP_INVERT ,
  Increment = D3D12_STENCIL_OP_INCR ,
  Decrement = D3D12_STENCIL_OP_DECR
}
 Identifies the stencil operations that can be performed during depth-stencil testing. More...
 
enum class  Blend : Int32 {
  Zero = D3D12_BLEND_ZERO ,
  One = D3D12_BLEND_ONE ,
  SourceColor = D3D12_BLEND_SRC_COLOR ,
  InvertSourceColor = D3D12_BLEND_INV_SRC_COLOR ,
  SourceAlpha = D3D12_BLEND_SRC_ALPHA ,
  InvertSourceAlpha = D3D12_BLEND_INV_SRC_ALPHA ,
  DestinationAlpha = D3D12_BLEND_DEST_ALPHA ,
  InvertDestinationAlpha = D3D12_BLEND_INV_DEST_ALPHA ,
  DestinationColor = D3D12_BLEND_DEST_COLOR ,
  InvertDestinationColor = D3D12_BLEND_INV_DEST_COLOR ,
  SourceAlphaSaturate = D3D12_BLEND_SRC_ALPHA_SAT ,
  BlendFactor = D3D12_BLEND_BLEND_FACTOR ,
  InvertBlendFactor = D3D12_BLEND_INV_BLEND_FACTOR ,
  Source1Color = D3D12_BLEND_SRC1_COLOR ,
  InvertSource1Color = D3D12_BLEND_INV_SRC1_COLOR ,
  Source1Alpha = D3D12_BLEND_SRC1_ALPHA ,
  InvertSource1Alpha = D3D12_BLEND_INV_SRC1_ALPHA ,
  AlphaFactor = D3D12_BLEND_ALPHA_FACTOR ,
  InvertAlphaFactor = D3D12_BLEND_INV_ALPHA_FACTOR
}
 Specifies blend factors, which modulate values for the pixel shader and render target. More...
 
enum class  BlendOperation : Int32 {
  Add = D3D12_BLEND_OP_ADD ,
  Subtract = D3D12_BLEND_OP_SUBTRACT ,
  ReverseSubtract = D3D12_BLEND_OP_REV_SUBTRACT ,
  Min = D3D12_BLEND_OP_MIN ,
  Max = D3D12_BLEND_OP_MAX
}
 Specifies RGB or alpha blending operations. More...
 
enum class  ColorWriteEnable : UInt8 {
  None = 0 ,
  Red = D3D12_COLOR_WRITE_ENABLE_RED ,
  Green = D3D12_COLOR_WRITE_ENABLE_GREEN ,
  Blue = D3D12_COLOR_WRITE_ENABLE_BLUE ,
  Alpha = D3D12_COLOR_WRITE_ENABLE_ALPHA ,
  All = D3D12_COLOR_WRITE_ENABLE_ALL
}
 Identifies which components of each pixel of a render target are writable during blending. More...
 
enum  LogicOperation : Int32 {
  Clear = D3D12_LOGIC_OP_CLEAR ,
  Set = D3D12_LOGIC_OP_SET ,
  Copy = D3D12_LOGIC_OP_COPY ,
  Inverted = D3D12_LOGIC_OP_COPY_INVERTED ,
  Noop = D3D12_LOGIC_OP_NOOP ,
  Invert = D3D12_LOGIC_OP_INVERT ,
  And = D3D12_LOGIC_OP_AND ,
  NAnd = D3D12_LOGIC_OP_NAND ,
  Or = D3D12_LOGIC_OP_OR ,
  NOr = D3D12_LOGIC_OP_NOR ,
  Xor = D3D12_LOGIC_OP_XOR ,
  Equiv = D3D12_LOGIC_OP_EQUIV ,
  AndReverse = D3D12_LOGIC_OP_AND_REVERSE ,
  AndInverted = D3D12_LOGIC_OP_AND_INVERTED ,
  OrReverse = D3D12_LOGIC_OP_OR_REVERSE ,
  OrInverted = D3D12_LOGIC_OP_OR_INVERTED
}
 Defines constants that specify logical operations to configure for a render target. More...
 
enum class  ConservativeRasterizationMode : Int32 {
  Off = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF ,
  On = D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON
}
 Identifies whether conservative rasterization is on or off. More...
 
enum class  IndexBufferStripCutValue : Int32 {
  Disabled = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED ,
  MaxUInt16 = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF ,
  MaxUInt32 = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF
}
 When using triangle strip primitive topology, vertex positions are interpreted as vertices of a continuous triangle “strip”. There is a special index value that represents the desire to have a discontinuity in the strip, the cut index value. This enum lists the supported cut values. More...
 
enum  PipelineStateFlags : Int32 {
  None = D3D12_PIPELINE_STATE_FLAG_NONE ,
  ToolDebug = D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG
}
 Flags to control pipeline state. More...
 
enum class  PipelineStateSubobjectType : Int32 {
  RootSignature = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE ,
  Vs = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS ,
  Ps = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS ,
  Ds = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS ,
  Hs = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS ,
  Gs = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS ,
  Cs = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS ,
  StreamOutput = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT ,
  Blend = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND ,
  SampleMask = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK ,
  Rasterizer = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER ,
  DepthStencil = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL ,
  InputLayout = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT ,
  IbStripCutValue = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE ,
  PrimitiveTopology = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY ,
  RenderTargetFormats = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS ,
  DepthStencilFormat = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT ,
  SampleDesc = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC ,
  NodeMask = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK ,
  CachedPipelineState = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO ,
  Flags = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS ,
  DepthStencil1 = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 ,
  ViewInstancing = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING ,
  As = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS ,
  Ms = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS ,
  Maxvalid = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID
}
 Specifies the type of a sub-object in a pipeline state stream description. More...
 
enum class  Feature {
  Options = D3D12_FEATURE_D3D12_OPTIONS ,
  Architecture = D3D12_FEATURE_ARCHITECTURE ,
  FeatureLevels = D3D12_FEATURE_FEATURE_LEVELS ,
  FormatSupport = D3D12_FEATURE_FORMAT_SUPPORT ,
  MultisampleQualityLevels = D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS ,
  FormatInfo = D3D12_FEATURE_FORMAT_INFO ,
  GpuVirtualAddressSupport = D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT ,
  ShaderModel = D3D12_FEATURE_SHADER_MODEL ,
  Options1 = D3D12_FEATURE_D3D12_OPTIONS1 ,
  ProtectedResourceSessionSupport = D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT ,
  RootSignature = D3D12_FEATURE_ROOT_SIGNATURE ,
  Architecture1 = D3D12_FEATURE_ARCHITECTURE1 ,
  Options2 = D3D12_FEATURE_D3D12_OPTIONS2 ,
  ShaderCache = D3D12_FEATURE_SHADER_CACHE ,
  CommandQueuePriority = D3D12_FEATURE_COMMAND_QUEUE_PRIORITY ,
  Options3 = D3D12_FEATURE_D3D12_OPTIONS3 ,
  ExistingHeaps = D3D12_FEATURE_EXISTING_HEAPS ,
  Options4 = D3D12_FEATURE_D3D12_OPTIONS4 ,
  Serialization = D3D12_FEATURE_SERIALIZATION ,
  CrossNode = D3D12_FEATURE_CROSS_NODE ,
  Options5 = D3D12_FEATURE_D3D12_OPTIONS5 ,
  Displayable = D3D12_FEATURE_DISPLAYABLE ,
  Options6 = D3D12_FEATURE_D3D12_OPTIONS6 ,
  QueryMetaCommand = D3D12_FEATURE_QUERY_META_COMMAND ,
  Options7 = D3D12_FEATURE_D3D12_OPTIONS7 ,
  ProtectedResourceSessionTypeCount = D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT ,
  ProtectedResourceSessionTypes = D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES ,
  Options8 = D3D12_FEATURE_D3D12_OPTIONS8 ,
  Options9 = D3D12_FEATURE_D3D12_OPTIONS9 ,
  Options10 = D3D12_FEATURE_D3D12_OPTIONS10 ,
  Options11 = D3D12_FEATURE_D3D12_OPTIONS11 ,
  Options12 = D3D12_FEATURE_D3D12_OPTIONS12 ,
  Options13 = D3D12_FEATURE_D3D12_OPTIONS13
}
 Defines constants that specify a Direct3D 12 feature or feature set to query about. When you want to query for the level to which an adapter supports a feature, pass one of these values to ID3D12Device::CheckFeatureSupport. More...
 
enum class  ShaderMinPrecisionSupport : Int32 {
  None = D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE ,
  Small = D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT ,
  Half = D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT
}
 
enum class  TiledResourcesTier : Int32 {
  NotSupported = D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED ,
  Tier1 = D3D12_TILED_RESOURCES_TIER_1 ,
  Tier2 = D3D12_TILED_RESOURCES_TIER_2 ,
  Tier3 = D3D12_TILED_RESOURCES_TIER_3 ,
  Tier4 = D3D12_TILED_RESOURCES_TIER_4
}
 
enum class  ResourceBindingTier : Int32 {
  Tier1 = D3D12_RESOURCE_BINDING_TIER_1 ,
  Tier2 = D3D12_RESOURCE_BINDING_TIER_2 ,
  Tier3 = D3D12_RESOURCE_BINDING_TIER_3
}
 
enum class  ConservativeRasterizationTier : Int32 {
  NotSupported = D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED ,
  Tier1 = D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 ,
  Tier2 = D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 ,
  Tier3 = D3D12_CONSERVATIVE_RASTERIZATION_TIER_3
}
 
enum class  FormatSupport1 : Int32 {
  None = D3D12_FORMAT_SUPPORT1_NONE ,
  Buffer = D3D12_FORMAT_SUPPORT1_BUFFER ,
  IAVertexBuffer = D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER ,
  IAIndexBuffer = D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER ,
  SoBuffer = D3D12_FORMAT_SUPPORT1_SO_BUFFER ,
  Texture1D = D3D12_FORMAT_SUPPORT1_TEXTURE1D ,
  Texture2D = D3D12_FORMAT_SUPPORT1_TEXTURE2D ,
  Texture3D = D3D12_FORMAT_SUPPORT1_TEXTURE3D ,
  Texturecube = D3D12_FORMAT_SUPPORT1_TEXTURECUBE ,
  ShaderLoad = D3D12_FORMAT_SUPPORT1_SHADER_LOAD ,
  ShaderSample = D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE ,
  ShaderSampleComparison = D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON ,
  ShaderSampleMonoText = D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT ,
  Mip = D3D12_FORMAT_SUPPORT1_MIP ,
  RenderTarget = D3D12_FORMAT_SUPPORT1_RENDER_TARGET ,
  Blendable = D3D12_FORMAT_SUPPORT1_BLENDABLE ,
  DepthStencil = D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL ,
  MultisampleResolve = D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE ,
  Display = D3D12_FORMAT_SUPPORT1_DISPLAY ,
  CastWithinBitLayout = D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT ,
  MultisampleRendertarget = D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET ,
  MultisampleLoad = D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD ,
  ShaderGather = D3D12_FORMAT_SUPPORT1_SHADER_GATHER ,
  BackBuffer_cast = D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST ,
  TypedUnorderedAccessView = D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW ,
  ShaderGatherComparison = D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON ,
  DecoderOutput = D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT ,
  VideoProcessorOutput = D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT ,
  VideoProcessorInput = D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT ,
  VideoEncoder = D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER
}
 
enum class  FormatSupport2 : Int32 {
  None = D3D12_FORMAT_SUPPORT2_NONE ,
  UavAtomicAdd = D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD ,
  UavAtomicBitwiseOps = D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS ,
  UavAtomicCompare_store_or_compare_exchange = D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE ,
  UavAtomicExchange = D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE ,
  UavAtomicSignedMinOrMax = D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX ,
  UavAtomicUnsignedMinOrMax = D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX ,
  UavTypedLoad = D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD ,
  UavTypedStore = D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE ,
  OutputMergerLogicOp = D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP ,
  Tiled = D3D12_FORMAT_SUPPORT2_TILED ,
  MultiplaneOverlay = D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY ,
  SamplerFeedback = D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK
}
 
enum class  MultisampleQualityLevelFlags : Int32 {
  None = D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE ,
  TiledResource = D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE
}
 
enum class  CrossNodeSharingTier : Int32 {
  NotSupported = D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED ,
  Tier1Emulated = D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED ,
  Tier1 = D3D12_CROSS_NODE_SHARING_TIER_1 ,
  Tier2 = D3D12_CROSS_NODE_SHARING_TIER_2 ,
  Tier3 = D3D12_CROSS_NODE_SHARING_TIER_3
}
 
enum class  ResourceHeapTier : Int32 {
  Tier1 = D3D12_RESOURCE_HEAP_TIER_1 ,
  Tier2 = D3D12_RESOURCE_HEAP_TIER_2
}
 
enum class  ProgrammableSamplePositionsTier : Int32 {
  NotSupported = D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED ,
  Tier1 = D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 ,
  Tier2 = D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2
}
 
enum class  ViewInstancingTier : Int32 {
  NotSupported = D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED ,
  Tier1 = D3D12_VIEW_INSTANCING_TIER_1 ,
  Tier2 = D3D12_VIEW_INSTANCING_TIER_2 ,
  Tier3 = D3D12_VIEW_INSTANCING_TIER_3
}
 
enum class  RootSignatureVersion : Int32 {
  Version1 = D3D_ROOT_SIGNATURE_VERSION_1 ,
  Version1_0 = D3D_ROOT_SIGNATURE_VERSION_1_0 ,
  Version1_1 = D3D_ROOT_SIGNATURE_VERSION_1_1
}
 
enum class  ShaderCacheSupportFlags : Int32 {
  None = D3D12_SHADER_CACHE_SUPPORT_NONE ,
  SinglePso = D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO ,
  Library = D3D12_SHADER_CACHE_SUPPORT_LIBRARY ,
  AutomaticInprocCache = D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE ,
  AutomaticDiskCache = D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE ,
  DriverManagedCache = D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE ,
  ShaderControlClear = D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR ,
  ShaderSessionSelete = D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE
}
 
enum class  CommandListSupportFlags : Int32 {
  None = D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE ,
  Direct = D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT ,
  Bundle = D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE ,
  Compute = D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE ,
  Copy = D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY ,
  VideoDecode = D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE ,
  VideoProcess = D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS ,
  VideoEncode = D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE
}
 
enum class  SharedResourceCompatibilityTier : Int32 {
  Tier0 = D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 ,
  Tier1 = D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 ,
  Tier2 = D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2
}
 
enum class  HeapSerializationTier : Int32 {
  Tier1 = D3D12_HEAP_SERIALIZATION_TIER_0 ,
  Tier10 = D3D12_HEAP_SERIALIZATION_TIER_10
}
 
enum class  RenderPassTier : Int32 {
  Tier0 = D3D12_RENDER_PASS_TIER_0 ,
  Tier1 = D3D12_RENDER_PASS_TIER_1 ,
  Tier2 = D3D12_RENDER_PASS_TIER_2
}
 
enum class  RaytracingTier : Int32 {
  Notsupported = D3D12_RAYTRACING_TIER_NOT_SUPPORTED ,
  Tier1_0 = D3D12_RAYTRACING_TIER_1_0 ,
  Tier1_1 = D3D12_RAYTRACING_TIER_1_1
}
 
enum class  VariableShadingRateTier : Int32 {
  NotSupported = D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED ,
  Tier1 = D3D12_VARIABLE_SHADING_RATE_TIER_1 ,
  Tier2 = D3D12_VARIABLE_SHADING_RATE_TIER_2
}
 
enum class  MeshShaderTier : Int32 {
  NotSupported = D3D12_MESH_SHADER_TIER_NOT_SUPPORTED ,
  Tier1 = D3D12_MESH_SHADER_TIER_1
}
 
enum class  SamplerFeedbackTier : Int32 {
  NotSupported = D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED ,
  Tier0_9 = D3D12_SAMPLER_FEEDBACK_TIER_0_9 ,
  Tier1_0 = D3D12_SAMPLER_FEEDBACK_TIER_1_0
}
 
enum class  WaveMmaTier : Int32 {
  NotSupported = D3D12_WAVE_MMA_TIER_NOT_SUPPORTED ,
  Tier1_0 = D3D12_WAVE_MMA_TIER_1_0
}
 
enum class  TriState : Int32 {
  Unknown = D3D12_TRI_STATE_UNKNOWN ,
  False = D3D12_TRI_STATE_FALSE ,
  True = D3D12_TRI_STATE_TRUE
}
 
enum class  HeapType : Int32 {
  Default = D3D12_HEAP_TYPE_DEFAULT ,
  Upload = D3D12_HEAP_TYPE_UPLOAD ,
  ReadBack = D3D12_HEAP_TYPE_READBACK ,
  Custom = D3D12_HEAP_TYPE_CUSTOM
}
 
enum class  CpuPageProperty : Int32 {
  Unknown = D3D12_CPU_PAGE_PROPERTY_UNKNOWN ,
  NotAvailable = D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE ,
  WriteCombine = D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE ,
  WriteBack = D3D12_CPU_PAGE_PROPERTY_WRITE_BACK
}
 
enum class  MemoryPool : Int32 {
  Unknown = D3D12_MEMORY_POOL_UNKNOWN ,
  L0 = D3D12_MEMORY_POOL_L0 ,
  L1 = D3D12_MEMORY_POOL_L1
}
 
enum class  HeapFlags : Int32 {
  None = D3D12_HEAP_FLAG_NONE ,
  Shared = D3D12_HEAP_FLAG_SHARED ,
  DenyBuffers = D3D12_HEAP_FLAG_DENY_BUFFERS ,
  AllowDisplay = D3D12_HEAP_FLAG_ALLOW_DISPLAY ,
  SharedCrossAdapter = D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER ,
  DenyRtDsTextures = D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES ,
  DenyNonRtDsTextures = D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES ,
  HardwareProtected = D3D12_HEAP_FLAG_HARDWARE_PROTECTED ,
  AllowWriteWatch = D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH ,
  AllowShaderAtomics = D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS ,
  CreateNotResident = D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT ,
  CreateNotZeroed = D3D12_HEAP_FLAG_CREATE_NOT_ZEROED ,
  AllowAllBuffersAndTextures = D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES ,
  AllowOnlyBuffers = D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS ,
  AllowOnlyNonRtDsTextures = D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES ,
  AllowOnlyRtDsTextures = D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES
}
 
enum class  ResourceDimension : Int32 {
  Unknown = D3D12_RESOURCE_DIMENSION_UNKNOWN ,
  Buffer = D3D12_RESOURCE_DIMENSION_BUFFER ,
  Texture1D = D3D12_RESOURCE_DIMENSION_TEXTURE1D ,
  Texture2D = D3D12_RESOURCE_DIMENSION_TEXTURE2D ,
  Texture3D = D3D12_RESOURCE_DIMENSION_TEXTURE3D
}
 
enum class  TextureLayout : Int32 {
  Unknown = D3D12_TEXTURE_LAYOUT_UNKNOWN ,
  RowMajor = D3D12_TEXTURE_LAYOUT_ROW_MAJOR ,
  Undefined64KbSwizzle = D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE ,
  Standard64KbSwizzle = D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE
}
 
enum class  ResourceFlags : Int32 {
  None = D3D12_RESOURCE_FLAG_NONE ,
  AllowRenderTarget = D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET ,
  AllowDepthStencil = D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL ,
  AllowUnorderedAccess = D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS ,
  DenyShaderResource = D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE ,
  AllowCrossAdapter = D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER ,
  AllowSimultaneousAccess = D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS ,
  VideoDecodeReferenceOnly = D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY ,
  VideoEncodeReferenceOnly = D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY ,
  RaytracingAccelerationStructure = D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE
}
 
enum class  TileRangeFlags : UInt32 {
  None = D3D12_TILE_RANGE_FLAG_NONE ,
  Null = D3D12_TILE_RANGE_FLAG_NULL ,
  Skip = D3D12_TILE_RANGE_FLAG_SKIP ,
  ReuseSingleTile = D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE
}
 
enum class  TileMappingFlags : Int32 {
  None = D3D12_TILE_MAPPING_FLAG_NONE ,
  NoHazard = D3D12_TILE_MAPPING_FLAG_NO_HAZARD
}
 
enum class  TileCopyFlags : Int32 {
  None = D3D12_TILE_COPY_FLAG_NONE ,
  NoHazard = D3D12_TILE_COPY_FLAG_NO_HAZARD ,
  LinearBufferToSwizzledTiledResource = D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE ,
  SwizzledTiledResourceToLinearBuffer = D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER
}
 
enum class  ResourceStates : Int32 {
  Common = D3D12_RESOURCE_STATE_COMMON ,
  VertexAndConstantBuffer = D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER ,
  IndexBuffer = D3D12_RESOURCE_STATE_INDEX_BUFFER ,
  RenderTarget = D3D12_RESOURCE_STATE_RENDER_TARGET ,
  UnorderedAccess = D3D12_RESOURCE_STATE_UNORDERED_ACCESS ,
  DepthWrite = D3D12_RESOURCE_STATE_DEPTH_WRITE ,
  DepthRead = D3D12_RESOURCE_STATE_DEPTH_READ ,
  NonPixelShaderResource = D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE ,
  PixelShaderResource = D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE ,
  StreamOut = D3D12_RESOURCE_STATE_STREAM_OUT ,
  IndirectArgument = D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT ,
  CopyDest = D3D12_RESOURCE_STATE_COPY_DEST ,
  CopySource = D3D12_RESOURCE_STATE_COPY_SOURCE ,
  ResolveDest = D3D12_RESOURCE_STATE_RESOLVE_DEST ,
  ResolveSource = D3D12_RESOURCE_STATE_RESOLVE_SOURCE ,
  RaytracingAccelerationStructure = D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE ,
  ShadingRateSource = D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE ,
  GenericRead = D3D12_RESOURCE_STATE_GENERIC_READ ,
  AllShaderResource = D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE ,
  Present = D3D12_RESOURCE_STATE_PRESENT ,
  Predication = D3D12_RESOURCE_STATE_PREDICATION ,
  VideoDecodeRead = D3D12_RESOURCE_STATE_VIDEO_DECODE_READ ,
  VideoDecodeWrite = D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE ,
  VideoProcessRead = D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ ,
  VideoProcessWrite = D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE ,
  VideoEncodeRead = D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ ,
  VideoEncodeWrite = D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE
}
 
enum class  ResourceBarrierType : Int32 {
  Transition = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION ,
  Aliasing = D3D12_RESOURCE_BARRIER_TYPE_ALIASING ,
  Uav = D3D12_RESOURCE_BARRIER_TYPE_UAV
}
 
enum class  ResourceBarrierFlags : Int32 {
  None = D3D12_RESOURCE_BARRIER_FLAG_NONE ,
  BeginOnly = D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY ,
  EndOnly = D3D12_RESOURCE_BARRIER_FLAG_END_ONLY
}
 
enum class  TextureCopyType : Int32 {
  SubresourceIndex = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX ,
  PlacedFootprint = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT
}
 
enum class  ResolveMode : Int32 {
  Decompress = D3D12_RESOLVE_MODE_DECOMPRESS ,
  Min = D3D12_RESOLVE_MODE_MIN ,
  Max = D3D12_RESOLVE_MODE_MAX ,
  Average = D3D12_RESOLVE_MODE_AVERAGE ,
  EncodeSamplerFeedback = D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK ,
  DecodeSamplerFeedback = D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK
}
 
enum class  ViewInstancingFlags : Int32 {
  None = D3D12_VIEW_INSTANCING_FLAG_NONE ,
  EnableViewInstanceMasking = D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING
}
 
enum class  ShaderComponentMapping : Int32 {
  FromMemoryComponent0 = D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 ,
  FromMemoryComponent1 = D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 ,
  FromMemoryComponent2 = D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 ,
  FromMemoryComponent3 = D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 ,
  ForceValue0 = D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 ,
  ForceValue1 = D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1
}
 

Functions

template<typename T = Device>
requires std::is_base_of_v<Device, T>
T CreateDevice (IUnknown *adapter, D3D_FEATURE_LEVEL minimumFeatureLevel=D3D_FEATURE_LEVEL::D3D_FEATURE_LEVEL_11_1)
 Creates a device that represents the display adapter.
 
template<typename T = Device>
requires std::is_base_of_v<Device, T>
T CreateDevice (Unknown adapter, D3D_FEATURE_LEVEL minimumFeatureLevel=D3D_FEATURE_LEVEL::D3D_FEATURE_LEVEL_11_1)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (CommandQueueFlags, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (ColorWriteEnable, UInt8)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (ShaderMinPrecisionSupport, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (FormatSupport1, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (FormatSupport2, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (MultisampleQualityLevelFlags, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (CommandListSupportFlags, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (HeapFlags, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (ResourceFlags, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (TileMappingFlags, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (TileCopyFlags, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (ResourceBarrierFlags, Int32)
 
 HCC_DEFINE_ENUM_FLAG_OPERATORS (ViewInstancingFlags, Int32)
 

Typedef Documentation

◆ FeatureDataShaderModel

using Harlinn::Windows::Graphics::D3D12::FeatureDataShaderModel = D3D12_FEATURE_DATA_SHADER_MODEL

Alias for D3D12_FEATURE_DATA_SHADER_MODEL

◆ Rectangle

◆ ShaderModel

Alias for D3D_SHADER_MODEL

Enumeration Type Documentation

◆ Blend

Specifies blend factors, which modulate values for the pixel shader and render target.

Enumerator
Zero 

The blend factor is (0, 0, 0, 0). No pre-blend operation.

One 

The blend factor is (1, 1, 1, 1). No pre-blend operation.

SourceColor 

The blend factor is (Rₛ, Gₛ, Bₛ, Aₛ), that is color data (RGB) from a pixel shader. No pre-blend operation.

InvertSourceColor 

The blend factor is (1 - Rₛ, 1 - Gₛ, 1 - Bₛ, 1 - Aₛ), that is color data (RGB) from a pixel shader. The pre-blend operation inverts the data, generating 1 - RGB.

SourceAlpha 

The blend factor is (Aₛ, Aₛ, Aₛ, Aₛ), that is alpha data (A) from a pixel shader. No pre-blend operation.

InvertSourceAlpha 

The blend factor is ( 1 - Aₛ, 1 - Aₛ, 1 - Aₛ, 1 - Aₛ), that is alpha data (A) from a pixel shader. The pre-blend operation inverts the data, generating 1 - A.

DestinationAlpha 

The blend factor is (Ad Ad Ad Ad), that is alpha data from a render target. No pre-blend operation.

InvertDestinationAlpha 

The blend factor is (1 - Ad 1 - Ad 1 - Ad 1 - Ad), that is alpha data from a render target. The pre-blend operation inverts the data, generating 1 - A.

DestinationColor 

The blend factor is (Rd, Gd, Bd, Ad), that is color data from a render target. No pre-blend operation.

InvertDestinationColor 

The blend factor is (1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad), that is color data from a render target. The pre-blend operation inverts the data, generating 1 - RGB.

SourceAlphaSaturate 

The blend factor is (f, f, f, 1); where f = min(Aₛ, 1 - Ad). The pre-blend operation clamps the data to 1 or less.

BlendFactor 

The blend factor is the blend factor set with GraphicsCommandList::OMSetBlendFactor. No pre-blend operation.

InvertBlendFactor 

The blend factor is the blend factor set with GraphicsCommandList::OMSetBlendFactor. The pre-blend operation inverts the blend factor, generating 1 - blend_factor.

Source1Color 

The blend factor is data sources both as color data output by a pixel shader. There is no pre-blend operation. This blend factor supports dual-source color blending.

InvertSource1Color 

The blend factor is data sources both as color data output by a pixel shader. The pre-blend operation inverts the data, generating 1 - RGB. This blend factor supports dual-source color blending.

Source1Alpha 

The blend factor is data sources as alpha data output by a pixel shader. There is no pre-blend operation. This blend factor supports dual-source color blending.

InvertSource1Alpha 

The blend factor is data sources as alpha data output by a pixel shader. The pre-blend operation inverts the data, generating 1 - A. This blend factor supports dual-source color blending.

AlphaFactor 

The blend factor is (A, A, A, A), where the constant, A, is taken from the blend factor set with OMSetBlendFactor.

InvertAlphaFactor 

The blend factor is (1 – A, 1 – A, 1 – A, 1 – A), where the constant, A, is taken from the blend factor set with OMSetBlendFactor.

◆ BlendOperation

Specifies RGB or alpha blending operations.

The runtime implements RGB blending and alpha blending separately. Therefore, blend state requires separate blend operations for RGB data and alpha data. These blend operations are specified in a RenderTargetBlendDesc structure. The two sources — source 1 and source 2 — are shown in the blending block diagram

.

Blend state is used by the output-merger stage to determine how to blend together two RGB pixel values and two alpha values. The two RGB pixel values and two alpha values are the RGB pixel value and alpha value that the pixel shader outputs and the RGB pixel value and alpha value already in the output render target. The Blend value controls the data source that the blending stage uses to modulate values for the pixel shader, render target, or both. The BlendOperation value controls how the blending stage mathematically combines these modulated values.

Enumerator
Add 

Add source 1 and source 2.

Subtract 

Subtract source 1 from source 2.

ReverseSubtract 

Subtract source 2 from source 1.

Min 

Find the minimum of source 1 and source 2.

Max 

Find the maximum of source 1 and source 2.

◆ ColorWriteEnable

Identifies which components of each pixel of a render target are writable during blending.

Enumerator
None 
Red 

Allow data to be stored in the red component.

Green 

Allow data to be stored in the green component.

Blue 

Allow data to be stored in the blue component.

Alpha 

Allow data to be stored in the alpha component.

All 

Allow data to be stored in all components.

◆ CommandListSupportFlags

Alias for D3D12_COMMAND_LIST_SUPPORT_FLAGS

Enumerator
None 
Direct 
Bundle 
Compute 
Copy 
VideoDecode 
VideoProcess 
VideoEncode 

◆ CommandListType

Specifies the type of a command list.

Enumerator
Direct 

Specifies a command buffer that the GPU can execute. A direct command list doesn't inherit any GPU state.

Bundle 

Specifies a command buffer that can be executed only directly via a direct command list. A bundle command list inherits all GPU state (except for the currently set pipeline state object and primitive topology).

Compute 

Specifies a command buffer for computing.

Copy 

Specifies a command buffer for copying.

VideoDecode 

Specifies a command buffer for video decoding.

VideoProcess 

Specifies a command buffer for video processing.

VideoEncode 

Specifies a command buffer for video encoding.

◆ CommandQueueFlags

Specifies flags to be used when creating a command queue.

Enumerator
None 

Indicates a default command queue.

DisableGpuTimeout 

Indicates that the GPU timeout should be disabled for this command queue.

◆ CommandQueuePriority

Defines priority levels for a command queue.

An application must be sufficiently privileged in order to create a command queue that has global realtime priority. If the application is not sufficiently privileged or if neither the adapter or driver can provide the necessary preemption, then requests to create a global realtime priority queue fail; such a failure could be due to a lack of hardware support or due to conflicts with other command queue parameters. Requests to create a global realtime command queue won't silently downgrade the priority when it can't be supported; the request succeeds or fails as-is to indicate to the application whether or not the command queue is guaranteed to execute before any other queue.

Enumerator
Normal 

Normal priority.

High 

High priority.

Realtime 

Global realtime priority.

◆ ComparisonFunction

Specifies comparison options. A comparison option determines how the runtime compares source (new) data against destination (existing) data before storing the new data.

Enumerator
Unknown 
Never 

Never pass the comparison.

Less 

If the source data is less than the destination data, the comparison passes.

Equal 

If the source data is equal to the destination data, the comparison passes.

LessOrEqual 

If the source data is less than or equal to the destination data, the comparison passes.

Greater 

If the source data is greater than the destination data, the comparison passes.

NotEqual 

If the source data is not equal to the destination data, the comparison passes.

GreaterOrEqual 

If the source data is greater than or equal to the destination data, the comparison passes.

Always 

Always pass the comparison.

◆ ConservativeRasterizationMode

Identifies whether conservative rasterization is on or off.

Enumerator
Off 

Conservative rasterization is off.

On 

Conservative rasterization is on.

◆ ConservativeRasterizationTier

Alias for D3D12_CONSERVATIVE_RASTERIZATION_TIER

Enumerator
NotSupported 
Tier1 
Tier2 
Tier3 

◆ CpuPageProperty

Alias for D3D12_CPU_PAGE_PROPERTY

Enumerator
Unknown 
NotAvailable 
WriteCombine 
WriteBack 

◆ CrossNodeSharingTier

Alias for D3D12_CROSS_NODE_SHARING_TIER

Enumerator
NotSupported 
Tier1Emulated 
Tier1 
Tier2 
Tier3 

◆ CullMode

Specifies triangles facing a particular direction are not drawn.

Enumerator
None 

Always draw all triangles.

Front 

Do not draw triangles that are front-facing.

Back 

Do not draw triangles that are back-facing.

◆ DepthWriteMask

Identifies the portion of a depth-stencil buffer for writing depth data.

Enumerator
Zero 

Turn off writes to the depth-stencil buffer.

All 

Turn on writes to the depth-stencil buffer.

◆ Feature

Defines constants that specify a Direct3D 12 feature or feature set to query about. When you want to query for the level to which an adapter supports a feature, pass one of these values to ID3D12Device::CheckFeatureSupport.

Enumerator
Options 

Indicates a query for the level of support for basic Direct3D 12 feature options.

Architecture 
FeatureLevels 
FormatSupport 
MultisampleQualityLevels 
FormatInfo 
GpuVirtualAddressSupport 
ShaderModel 
Options1 
ProtectedResourceSessionSupport 
RootSignature 
Architecture1 
Options2 
ShaderCache 
CommandQueuePriority 
Options3 
ExistingHeaps 
Options4 
Serialization 
CrossNode 
Options5 
Displayable 
Options6 
QueryMetaCommand 
Options7 
ProtectedResourceSessionTypeCount 
ProtectedResourceSessionTypes 
Options8 
Options9 
Options10 
Options11 
Options12 
Options13 

◆ FillMode

Specifies the fill mode to use when rendering triangles.

Enumerator
Unknown 
Wireframe 

Draw lines connecting the vertices. Adjacent vertices are not drawn.

Solid 

Fill the triangles formed by the vertices. Adjacent vertices are not drawn.

◆ FormatSupport1

Alias for D3D12_FORMAT_SUPPORT1

Enumerator
None 
Buffer 
IAVertexBuffer 
IAIndexBuffer 
SoBuffer 
Texture1D 
Texture2D 
Texture3D 
Texturecube 
ShaderLoad 
ShaderSample 
ShaderSampleComparison 
ShaderSampleMonoText 
Mip 
RenderTarget 
Blendable 
DepthStencil 
MultisampleResolve 
Display 
CastWithinBitLayout 
MultisampleRendertarget 
MultisampleLoad 
ShaderGather 
BackBuffer_cast 
TypedUnorderedAccessView 
ShaderGatherComparison 
DecoderOutput 
VideoProcessorOutput 
VideoProcessorInput 
VideoEncoder 

◆ FormatSupport2

Alias for D3D12_FORMAT_SUPPORT2

Enumerator
None 
UavAtomicAdd 
UavAtomicBitwiseOps 
UavAtomicCompare_store_or_compare_exchange 
UavAtomicExchange 
UavAtomicSignedMinOrMax 
UavAtomicUnsignedMinOrMax 
UavTypedLoad 
UavTypedStore 
OutputMergerLogicOp 
Tiled 
MultiplaneOverlay 
SamplerFeedback 

◆ HeapFlags

Alias for D3D12_HEAP_PROPERTIES

Enumerator
None 
Shared 
DenyBuffers 
AllowDisplay 
SharedCrossAdapter 
DenyRtDsTextures 
DenyNonRtDsTextures 
HardwareProtected 
AllowWriteWatch 
AllowShaderAtomics 
CreateNotResident 
CreateNotZeroed 
AllowAllBuffersAndTextures 
AllowOnlyBuffers 
AllowOnlyNonRtDsTextures 
AllowOnlyRtDsTextures 

◆ HeapSerializationTier

Alias for D3D12_HEAP_SERIALIZATION_TIER

Enumerator
Tier1 
Tier10 

◆ HeapType

Alias for D3D12_HEAP_TYPE

Enumerator
Default 
Upload 
ReadBack 
Custom 

◆ IndexBufferStripCutValue

When using triangle strip primitive topology, vertex positions are interpreted as vertices of a continuous triangle “strip”. There is a special index value that represents the desire to have a discontinuity in the strip, the cut index value. This enum lists the supported cut values.

Enumerator
Disabled 

Indicates that there is no cut value.

MaxUInt16 

Indicates that 0xFFFF should be used as the cut value.

MaxUInt32 

Indicates that 0xFFFFFFFF should be used as the cut value.

◆ InputClassification

Enumerator
PerVertexData 
PerInstanceData 

◆ LogicOperation

Defines constants that specify logical operations to configure for a render target.

Enumerator
Clear 

Clears the render target.

Set 

Sets the render target.

Copy 

Copys the render target.

Inverted 

Performs an inverted-copy of the render target.

Noop 

No operation is performed on the render target.

Invert 

Inverts the render target.

And 

Performs a logical AND operation on the render target.

NAnd 

Performs a logical NAND operation on the render target.

Or 

Performs a logical OR operation on the render target.

NOr 

Performs a logical NOR operation on the render target.

Xor 

Performs a logical XOR operation on the render target.

Equiv 

Performs a logical equal operation on the render target.

AndReverse 

Performs a logical AND and reverse operation on the render target.

AndInverted 

Performs a logical AND and invert operation on the render target.

OrReverse 

Performs a logical OR and reverse operation on the render target.

OrInverted 

Performs a logical OR and invert operation on the render target.

◆ MemoryPool

Alias for D3D12_MEMORY_POOL

Enumerator
Unknown 
L0 
L1 

◆ MeshShaderTier

Alias for D3D12_MESH_SHADER_TIER

Enumerator
NotSupported 
Tier1 

◆ MultisampleQualityLevelFlags

Alias for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS

Enumerator
None 
TiledResource 

◆ PipelineStateFlags

Flags to control pipeline state.

Enumerator
None 

Indicates no flags.

ToolDebug 

Indicates that the pipeline state should be compiled with additional information to assist debugging.

This can only be set on WARP devices.

◆ PipelineStateSubobjectType

Specifies the type of a sub-object in a pipeline state stream description.

This enum is used in the creation of pipeline state objects using the ID3D12Device1::CreatePipelineState method. The CreatePipelineState method takes a D3D12_PIPELINE_STATE_STREAM_DESC as one of its parameters, this structure in turn describes a bytestream made up of alternating D3D12_PIPELINE_STATE_SUBOBJECT_TYPE enumeration values and their corresponding subobject description structs. This bytestream description can be made a concrete type by defining a structure that has the same alternating pattern of alternating D3D12_PIPELINE_STATE_SUBOBJECT_TYPE enumeration values and their corresponding subobject description structs as members.

Enumerator
RootSignature 

Indicates a root signature subobject type.

The corresponding subobject type is ID3D12RootSignature.

Vs 

Indicates a vertex shader subobject type.

The corresponding subobject type is ShaderBytecode.

Ps 

Indicates a pixel shader subobject type.

The corresponding subobject type is ShaderBytecode.

Ds 

Indicates a domain shader subobject type.

The corresponding subobject type is ShaderBytecode.

Hs 

Indicates a hull shader subobject type.

The corresponding subobject type is ShaderBytecode.

Gs 

Indicates a geometry shader subobject type.

The corresponding subobject type is ShaderBytecode.

Cs 

Indicates a compute shader subobject type.

The corresponding subobject type is ShaderBytecode.

StreamOutput 

Indicates a stream-output subobject type.

The corresponding subobject type is ShaderBytecode.

Blend 

Indicates a blend subobject type.

The corresponding subobject type is BlendDesc.

SampleMask 

Indicates a sample mask subobject type.

The corresponding subobject type is UINT.

Rasterizer 

Indicates indicates a rasterizer subobject type.

The corresponding subobject type is RasterizerDesc.

DepthStencil 

Indicates a depth stencil subobject type.

The corresponding subobject type is DepthStencilDesc.

InputLayout 

Indicates an input layout subobject type.

The corresponding subobject type is InputLayoutDesc.

IbStripCutValue 

Indicates an index buffer strip cut value subobject type.

The corresponding subobject type is IndexBufferStripCutValue.

PrimitiveTopology 

Indicates a primitive topology subobject type.

The corresponding subobject type is PrimitiveTopologyType.

RenderTargetFormats 

Indicates a render target formats subobject type.

The corresponding subobject type is RenderTargetFormatArray structure, which wraps an array of render target formats along with a count of the array elements.

DepthStencilFormat 

Indicates a depth stencil format subobject.

The corresponding subobject type is DXGI::Format.

SampleDesc 

Indicates a sample description subobject type.

The corresponding subobject type is DXGI::SampleDesc.

NodeMask 

Indicates a node mask subobject type.

The corresponding subobject type is D3D12_NODE_MASK or UINT.

CachedPipelineState 

Indicates a cached pipeline state object subobject type.

The corresponding subobject type is CachedPipelineState.

Flags 

Indicates a flags subobject type.

The corresponding subobject type is PipelineStateFlags.

DepthStencil1 

Indicates an expanded depth stencil subobject type. This expansion of the depth stencil subobject supports optional depth bounds checking.

The corresponding subobject type is DepthStencilDesc1.

ViewInstancing 

Indicates a view instancing subobject type.

The corresponding subobject type is D3D12_VIEW_INSTANCING_DESC.

As 

Indicates an amplification shader subobject type.

The corresponding subobject type is ShaderBytecode.

Ms 

Indicates a mesh shader subobject type.

The corresponding subobject type is ShaderBytecode.

Maxvalid 

A sentinel value that marks the exclusive upper-bound of valid values this enumeration represents.

◆ PrimitiveTopologyType

Specifies how the pipeline interprets geometry or hull shader input primitives.

Enumerator
Undefined 

The shader has not been initialized with an input primitive type.

Point 

Interpret the input primitive as a point.

Line 

Interpret the input primitive as a line.

Triangle 

Interpret the input primitive as a triangle.

Patch 

Interpret the input primitive as a control point patch.

◆ ProgrammableSamplePositionsTier

Alias for D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER

Enumerator
NotSupported 
Tier1 
Tier2 

◆ RaytracingTier

Alias for D3D12_RAYTRACING_TIER

Enumerator
Notsupported 
Tier1_0 
Tier1_1 

◆ RenderPassTier

Alias for D3D12_RENDER_PASS_TIER

Enumerator
Tier0 
Tier1 
Tier2 

◆ ResolveMode

Alias for D3D12_RESOLVE_MODE

Enumerator
Decompress 
Min 
Max 
Average 
EncodeSamplerFeedback 
DecodeSamplerFeedback 

◆ ResourceBarrierFlags

Alias for D3D12_RESOURCE_BARRIER_FLAGS

Enumerator
None 
BeginOnly 
EndOnly 

◆ ResourceBarrierType

Alias for D3D12_RESOURCE_BARRIER_TYPE

Enumerator
Transition 
Aliasing 
Uav 

◆ ResourceBindingTier

Alias for D3D12_RESOURCE_BINDING_TIER

Enumerator
Tier1 
Tier2 
Tier3 

◆ ResourceDimension

Alias for D3D12_RESOURCE_DIMENSION

Enumerator
Unknown 
Buffer 
Texture1D 
Texture2D 
Texture3D 

◆ ResourceFlags

Alias for D3D12_RESOURCE_FLAGS

Enumerator
None 
AllowRenderTarget 
AllowDepthStencil 
AllowUnorderedAccess 
DenyShaderResource 
AllowCrossAdapter 
AllowSimultaneousAccess 
VideoDecodeReferenceOnly 
VideoEncodeReferenceOnly 
RaytracingAccelerationStructure 

◆ ResourceHeapTier

Alias for D3D12_RESOURCE_HEAP_TIER

Enumerator
Tier1 
Tier2 

◆ ResourceStates

Alias for D3D12_RESOURCE_STATES

Enumerator
Common 
VertexAndConstantBuffer 
IndexBuffer 
RenderTarget 
UnorderedAccess 
DepthWrite 
DepthRead 
NonPixelShaderResource 
PixelShaderResource 
StreamOut 
IndirectArgument 
CopyDest 
CopySource 
ResolveDest 
ResolveSource 
RaytracingAccelerationStructure 
ShadingRateSource 
GenericRead 
AllShaderResource 
Present 
Predication 
VideoDecodeRead 
VideoDecodeWrite 
VideoProcessRead 
VideoProcessWrite 
VideoEncodeRead 
VideoEncodeWrite 

◆ RootSignatureVersion

Alias for D3D_ROOT_SIGNATURE_VERSION

Enumerator
Version1 
Version1_0 
Version1_1 

◆ SamplerFeedbackTier

Alias for D3D12_SAMPLER_FEEDBACK_TIER

Enumerator
NotSupported 
Tier0_9 
Tier1_0 

◆ ShaderCacheSupportFlags

Alias for D3D12_SHADER_CACHE_SUPPORT_FLAGS

Enumerator
None 
SinglePso 
Library 
AutomaticInprocCache 
AutomaticDiskCache 
DriverManagedCache 
ShaderControlClear 
ShaderSessionSelete 

◆ ShaderComponentMapping

Alias for D3D12_SHADER_COMPONENT_MAPPING

Enumerator
FromMemoryComponent0 
FromMemoryComponent1 
FromMemoryComponent2 
FromMemoryComponent3 
ForceValue0 
ForceValue1 

◆ ShaderMinPrecisionSupport

Alias for D3D12_SHADER_MIN_PRECISION_SUPPORT

Enumerator
None 
Small 
Half 

◆ SharedResourceCompatibilityTier

Alias for D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER

Enumerator
Tier0 
Tier1 
Tier2 

◆ StencilOperation

Identifies the stencil operations that can be performed during depth-stencil testing.

Enumerator
Keep 

Keep the existing stencil data.

Zero 

Set the stencil data to 0.

Replace 

Set the stencil data to the reference value set by calling GraphicsCommandList::OMSetStencilRef.

IncrementIfNotSaturated 

Increment the stencil value by 1, and clamp the result.

DecrementIfNotSaturated 

Decrement the stencil value by 1, and clamp the result.

Invert 

nvert the stencil data.

Increment 

Increment the stencil value by 1, and wrap the result if necessary.

Decrement 

Decrement the stencil value by 1, and wrap the result if necessary.

◆ TextureCopyType

Alias for D3D12_TEXTURE_COPY_TYPE

Enumerator
SubresourceIndex 
PlacedFootprint 

◆ TextureLayout

Alias for D3D12_TEXTURE_LAYOUT

Enumerator
Unknown 
RowMajor 
Undefined64KbSwizzle 
Standard64KbSwizzle 

◆ TileCopyFlags

Alias for D3D12_TILE_COPY_FLAGS

Enumerator
None 
NoHazard 
LinearBufferToSwizzledTiledResource 
SwizzledTiledResourceToLinearBuffer 

◆ TiledResourcesTier

Alias for D3D12_TILED_RESOURCES_TIER

Enumerator
NotSupported 
Tier1 
Tier2 
Tier3 
Tier4 

◆ TileMappingFlags

Alias for D3D12_TILE_MAPPING_FLAGS

Enumerator
None 
NoHazard 

◆ TileRangeFlags

Alias for D3D12_TILE_RANGE_FLAGS

Enumerator
None 
Null 
Skip 
ReuseSingleTile 

◆ TriState

Alias for D3D12_TRI_STATE

Enumerator
Unknown 
False 
True 

◆ VariableShadingRateTier

Alias for D3D12_VARIABLE_SHADING_RATE_TIER

Enumerator
NotSupported 
Tier1 
Tier2 

◆ ViewInstancingFlags

Alias for D3D12_VIEW_INSTANCING_FLAGS

Enumerator
None 
EnableViewInstanceMasking 

◆ ViewInstancingTier

Alias for D3D12_VIEW_INSTANCING_TIER

Enumerator
NotSupported 
Tier1 
Tier2 
Tier3 

◆ WaveMmaTier

Alias for D3D12_WAVE_MMA_TIER

Enumerator
NotSupported 
Tier1_0 

Function Documentation

◆ CreateDevice() [1/2]

template<typename T = Device>
requires std::is_base_of_v<Device, T>
T Harlinn::Windows::Graphics::D3D12::CreateDevice ( IUnknown * adapter,
D3D_FEATURE_LEVEL minimumFeatureLevel = D3D_FEATURE_LEVEL::D3D_FEATURE_LEVEL_11_1 )
inline

Creates a device that represents the display adapter.

Template Parameters
TThe type of device to create, which must be Device or a class
that inherits the Device class.
Parameters
adapterA pointer to the video adapter to use when creating a device. Pass NULL to use the default adapter, which is the first adapter that is enumerated by DXGI::Factory1::EnumAdapters.
minimumFeatureLevelThe minimum D3D_FEATURE_LEVEL required for successful device creation.
Returns
The newly created device.

◆ CreateDevice() [2/2]

template<typename T = Device>
requires std::is_base_of_v<Device, T>
T Harlinn::Windows::Graphics::D3D12::CreateDevice ( Unknown adapter,
D3D_FEATURE_LEVEL minimumFeatureLevel = D3D_FEATURE_LEVEL::D3D_FEATURE_LEVEL_11_1 )
inline

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [1/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( ColorWriteEnable ,
UInt8  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [2/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( CommandListSupportFlags ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [3/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( CommandQueueFlags ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [4/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( FormatSupport1 ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [5/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( FormatSupport2 ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [6/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( HeapFlags ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [7/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( MultisampleQualityLevelFlags ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [8/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( ResourceBarrierFlags ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [9/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( ResourceFlags ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [10/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( ShaderMinPrecisionSupport ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [11/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( TileCopyFlags ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [12/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( TileMappingFlags ,
Int32  )

◆ HCC_DEFINE_ENUM_FLAG_OPERATORS() [13/13]

Harlinn::Windows::Graphics::D3D12::HCC_DEFINE_ENUM_FLAG_OPERATORS ( ViewInstancingFlags ,
Int32  )