# D3D12

## Overview

The D3D12 driver is a Gallium driver that emits API calls for Microsoft’s D3D12 API instead of targeting a specific GPU architecture. This can be used to get full desktop OpenGL 3.3 support on devices that only support D3D12.

## Debugging

There’s a few tools that are useful for debugging D3D12, such as these environment variables:

D3D12_DEBUG

  Accepts the following comma-separated list of flags:

  `verbose`

    Enable verbose output to stdout

  `blit`

    Trace blit and copy resource calls

  `experimental`

    Enable experimental shader models feature

  `dxil`

    Dump DXIL during program compile

  `disass`

    Dump disassambly of created DXIL shader

  `res`

    Debug resources

  `debuglayer`

    Enable debug layer

  `gpuvalidator`

    Enable GPU validator

DXIL_DEBUG

  Accepts the following comma-separated list of flags:

  `verbose`

    Enable verbose output to stdout

  `dump_blob`

    Write shader blobs

  `trace`

    Trace instruction conversion

  `dump_module`

    dump module tree to stderr

## Utilities

Environment variables that control the behavior of the D3D12 driver.

MESA_D3D12_DEFAULT_ADAPTER_NAME

  Specifies a substring to search for when choosing a default adapter to run on. The first adapter matching the substring is chosen. The substring is not case sensitive.