Direct3D

### Force Vertex Processing / Execute buffer

This option has a dual usage: it allows you to make experiments with different vertex processing settings for D3D8/9, or change the execute buffer creation flags.

When setting D3DCREATE_MIXED_VERTEXPROCESSING or D3DCREATE_SOFTWARE_VERTEXPROCESSING, it also trims down the D3DCREATE_PUREDEVICE flag that is incompatible with these two and causes a Direct3D error.

NOTE: Changing this option to software or mixed may help with rendering problems, such as in "Virtual Skipper 5".

Default |  |
hardware video | FORCEHWVERTEXPROC | This setting uses the video card (GPU).
software system | FORCESWVERTEXPROC | This setting uses the system (CPU). Windows 10 Anniversary Update seems to default to software mode which can cause performance issues.
mixed | FORCEMXVERTEXPROC | This setting forces the mixed mode for the vertex processing.

The flags also have the following effects on the execute buffers.

Default |  |
hardware video | FORCEHWVERTEXPROC | The execute buffers are created in video memory.
software system | FORCESWVERTEXPROC | The execute buffers are created in system memory.
mixed | FORCEMXVERTEXPROC | The execute buffers are enabled for creation in both the video and system memory.

### Swap Effect

Forces Swap Effect

FORCESWAPEFFECT

This experimental flag forces the selected SwapEffect mode during the CreateDevice/Reset methods. In some cases, it may improve compatibility or performance. You can choose from the following modes:

- Discard

- Flip

- Copy

- Overlay

- FlipEx

### Capabilities

No Ramp Device | NORAMPDEVICE | Suppresses the IID_IDirect3DRampDevice device type in device enumeration (see EnumDevices method).
No RGB Device | NORGBDEVICE | Suppresses the IID_IDirect3DRGBDevice device type in device enumeration (see EnumDevices method).
No MMX Device | NOMMXDEVICE | Suppresses the IID_IDirect3DMMXDevice device type in device enumeration (see EnumDevices method).
No HAL Device | NOHALDEVICE | Suppresses the IID_IDirect3DHALDevice device type in device enumeration (see EnumDevices method).
No TnL HAL Device | NOTNLDEVICE | Suppresses the IID_IDirect3DTnLHalDevice device type in device enumeration (see EnumDevices method).
Fog vertex capability | FOGVERTEXCAP | Forces the usage of vertex fog by pretending that the device owns the D3DPRASTERCAPS_FOGVERTEX capability and misses the D3DPRASTERCAPS_FOGTABLE capability.
Fog table capability | FOGTABLECAP | Forces the usage of table fog by pretending that the device owns the D3DPRASTERCAPS_FOGTABLE capability and misses the D3DPRASTERCAPS_FOGVERTEX capability.

### Device type

When set to a selection different from "default", it forces the device type in the D3D CreateDevice methods. Available values are the following:

- D3DDEVTYPE_HAL

- D3DDEVTYPE_REF

- D3DDEVTYPE_SW

- D3DDEVTYPE_NULLREF

### D3D tweaks

Patch execute buffer | PATCHEXECUTEBUFFER | This flag patches only the D3D version 1 ExecuteBuffer method. It adds an initial execute buffer to force ZBuffer initialization to the D3DCMP_LESSEQUAL value.
Force ZBuffer ON | FORCEZBUFFERON | This flag patches only the D3D version 1 ExecuteBuffer method. Forces the D3DRENDERSTATE_ZENABLE specification to TRUE
Force ZBuffer OFF | FORCEZBUFFEROFF | This flag patches only the D3D version 1 ExecuteBuffer method. Forces the D3DRENDERSTATE_ZENABLE specification to FALSE
Force Dithering ON | FORCEDITHERING | This flag patches the D3D version 1 to 7 SetRenderState method. In the SetRenderState method, it forces the D3DRENDERSTATE_DITHERENABLE specification to TRUE
Force Dithering OFF | CLEARDITHERING | This flag patches the D3D version 1 to 7 SetRenderState method. In the SetRenderState method, it forces the D3DRENDERSTATE_DITHERENABLE specification to FALSE