> ## 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_BACKGROUND_PROCESSING_MODE (XBOX Series consoles)

> Defines constants that specify a level of dynamic optimization to apply to GPU work that's subsequently submitted.

Defines constants that specify a level of dynamic optimization to apply to GPU work that's subsequently submitted.

## Syntax

```cpp theme={null}
typedef enum D3D12_BACKGROUND_PROCESSING_MODE
{
    D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0,
    D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = 0,
    D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = 0,
    D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = 0
} D3D12_BACKGROUND_PROCESSING_MODE
```

## Constants

| Constant                                                            | Description                                                                                                                                                                                                                                                                    |
| ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| D3D12\_BACKGROUND\_PROCESSING\_MODE\_ALLOWED                        | The default setting. Specifies that the driver may instrument workloads, and dynamically recompile shaders, in a low overhead, non-intrusive manner that avoids glitching the foreground workload.                                                                             |
| D3D12\_BACKGROUND\_PROCESSING\_MODE\_ALLOW\_INTRUSIVE\_MEASUREMENTS | Specifies that the driver may instrument as aggressively as possible. The understanding is that causing glitches is fine while in this mode, because the current work is being submitted specifically to train the system.                                                     |
| D3D12\_BACKGROUND\_PROCESSING\_MODE\_DISABLE\_BACKGROUND\_WORK      | Specifies that background work should stop. This ensures that background shader recompilation won't consume CPU cycles. Available only in **Developer mode**.                                                                                                                  |
| D3D12\_BACKGROUND\_PROCESSING\_MODE\_DISABLE\_PROFILING\_BY\_SYSTEM | Specifies that all dynamic optimization should be disabled. For example, if you're doing an A/B performance comparison, then using this constant ensures that the driver doesn't change anything that might interfere with your results. Available only in **Developer mode**. |

## Remarks

## Requirements

**Header:** d3d12\_xs.h\
**Library:** d3d12\_xs.lib\
**Supported Platforms**: XBOX Series consoles

## See Also

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


## Related topics

- [D3D12GetInterface (XBOX Series consoles)](/reference/graphics/d3d12/functions/d3d12getinterface_public.md)
- [D3D12_RAYTRACING_GEOMETRY_FLAGS (XBOX Series consoles)](/reference/graphics/d3d12/enums/d3d12_raytracing_geometry_flags_public.md)
- [D3D12_BARRIER_GROUP (XBOX Series consoles)](/reference/graphics/d3d12/structs/d3d12_barrier_group_public.md)
- [D3D12_WAVE_MMA_TIER (XBOX Series consoles)](/reference/graphics/d3d12_xs/enums/d3d12_wave_mma_tier_xs.md)
- [D3D12_ELEMENTS_LAYOUT (XBOX Series consoles)](/reference/graphics/d3d12/enums/d3d12_elements_layout_public.md)
