> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_BLEND_DESC

> Describes the blend state. (D3D12_BLEND_DESC)

Describes the blend state.

## Syntax

```cpp theme={null}
typedef struct D3D12_BLEND_DESC
{
    BOOL AlphaToCoverageEnable;
    BOOL IndependentBlendEnable;
    D3D12_RENDER_TARGET_BLEND_DESC RenderTarget;
} D3D12_BLEND_DESC
```

### Members

*AlphaToCoverageEnable*\
Type: BOOL

Specifies whether to use alpha-to-coverage as a multisampling technique when setting a pixel to a render target. For more info about using alpha-to-coverage, see [Alpha-To-Coverage](https://learn.microsoft.com/en-us/windows/desktop/direct3d11/d3d10-graphics-programming-guide-blend-state).

*IndependentBlendEnable*\
Type: BOOL

Specifies whether to enable independent blending in simultaneous render targets. Set to **TRUE** to enable independent blending. If set to **FALSE**, only the **RenderTarget**\[0] members are used; **RenderTarget**\[1..7] are ignored.

See the **Remarks** section for restrictions.

*RenderTarget*\
Type: D3D12\_RENDER\_TARGET\_BLEND\_DESC\[8]

An array of [D3D12\_RENDER\_TARGET\_BLEND\_DESC](/reference/graphics/d3d12/structs/d3d12_render_target_blend_desc_public) structures that describe the blend states for render targets; these correspond to the eight render targets that can be bound to the [output-merger stage](https://learn.microsoft.com/en-us/windows/desktop/direct3d11/d3d10-graphics-programming-guide-output-merger-stage) at one time.

## Remarks

A [D3D12\_GRAPHICS\_PIPELINE\_STATE\_DESC](/reference/graphics/d3d12_x/structs/d3d12_graphics_pipeline_state_desc) object contains a blend-state structure that controls blending by the output-merger stage.

Here are the default values for blend state.

<table>
  <tr>
    <th>State</th>
    <th>Default Value</th>
  </tr>

  <tr>
    <td>AlphaToCoverageEnable</td>
    <td>**FALSE**</td>
  </tr>

  <tr>
    <td>IndependentBlendEnable</td>
    <td>**FALSE**</td>
  </tr>

  <tr>
    <td>RenderTarget\[0].BlendEnable</td>
    <td>**FALSE**</td>
  </tr>

  <tr>
    <td>RenderTarget\[0].LogicOpEnable</td>
    <td>**FALSE**</td>
  </tr>

  <tr>
    <td>RenderTarget\[0].SrcBlend</td>
    <td>D3D12\_BLEND\_ONE</td>
  </tr>

  <tr>
    <td>RenderTarget\[0].DestBlend</td>
    <td>D3D12\_BLEND\_ZERO</td>
  </tr>

  <tr>
    <td>RenderTarget\[0].BlendOp</td>
    <td>D3D12\_BLEND\_OP\_ADD</td>
  </tr>

  <tr>
    <td>RenderTarget\[0].SrcBlendAlpha</td>
    <td>D3D12\_BLEND\_ONE</td>
  </tr>

  <tr>
    <td>RenderTarget\[0].DestBlendAlpha</td>
    <td>D3D12\_BLEND\_ZERO</td>
  </tr>

  <tr>
    <td>RenderTarget\[0].BlendOpAlpha</td>
    <td>D3D12\_BLEND\_OP\_ADD</td>
  </tr>

  <tr>
    <td>RenderTarget\[0].LogicOp</td>
    <td>D3D12\_LOGIC\_OP\_NOOP</td>
  </tr>

  <tr>
    <td>RenderTarget\[0].RenderTargetWriteMask</td>
    <td>D3D12\_COLOR\_WRITE\_ENABLE\_ALL</td>
  </tr>
</table>

When you set the **LogicOpEnable** member of the first element of the **RenderTarget** array (**RenderTarget**\[0]) to **TRUE**, you must also set the **BlendEnable** member of **RenderTarget**\[0] to **FALSE**, and the **IndependentBlendEnable** member of this structure to **FALSE**. This reflects the limitation in hardware that you can't mix logic operations with blending across multiple render targets, and that when you use a logic operation, you must apply the same logic operation to all render targets.

Note the helper structure, [CD3DX12\_BLEND\_DESC](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/cd3dx12-blend-desc).

## Requirements

**Header:** d3d12\_xs.h or d3d12\_x.h\
**Library:** d3d12\_xs.lib or d3d12\_x.lib\
**Supported Platforms**: XBOX Series consoles and XBOX One family

## See Also

[Core structures](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-structures)


## Related topics

- [D3D12_RENDER_TARGET_BLEND_DESC](/reference/graphics/d3d12/structs/d3d12_render_target_blend_desc_public.md)
- [D3D12_BLEND](/reference/graphics/d3d12/enums/d3d12_blend_public.md)
- [D3D12_BLEND_OP](/reference/graphics/d3d12/enums/d3d12_blend_op_public.md)
- [D3D12_LOGIC_OP](/reference/graphics/d3d12/enums/d3d12_logic_op_public.md)
- [D3D12_COLOR_WRITE_ENABLE](/reference/graphics/d3d12/enums/d3d12_color_write_enable_public.md)
