Overview
In multi-GPU systems, the driver needs to know which GPU should handle the virtual display rendering. The driver provides multiple methods for GPU selection:- Automatic selection - Uses the GPU with the most video memory
- Name-based selection - Specify GPU by friendly name
- PCI bus selection - Use PCI bus number for deterministic selection
- LUID-based selection - Direct LUID specification (most precise)
Basic GPU Configuration
Configure target GPU invdd_settings.xml:
Target GPU adapter specification.Valid values:
default- Automatically select GPU with most video memory- GPU name - e.g.,
NVIDIA GeForce RTX 4090 name,bus- GPU name with PCI bus number, e.g.,NVIDIA GeForce RTX 4090,1
Automatic GPU Selection
When set todefault, the driver automatically selects the best GPU:
- Enumerate all available GPUs
- Sort by dedicated video memory (descending)
- Select GPU with the most memory
Automatic selection works well for most systems. The driver will choose the most powerful GPU.
Name-Based GPU Selection
Specify a GPU by its exact friendly name:Finding GPU Names
To find available GPU names, check the driver logs or use Device Manager:
Common GPU names:
NVIDIA GeForce RTX 4090NVIDIA GeForce RTX 4080AMD Radeon RX 7900 XTXIntel(R) UHD Graphics 770
PCI Bus-Based Selection
For deterministic GPU selection in multi-GPU systems with identical GPUs, use PCI bus numbers:GPU_NAME,BUS_NUMBER
Finding PCI Bus Numbers
Use Device Manager or command-line tools:- Device Manager
- Command Line
- Driver Logs
- Open Device Manager
- Right-click GPU → Properties
- Go to “Details” tab
- Select “Location information”
- Look for “PCI bus X”
Why Use Bus Numbers?
PCI bus numbers are essential when you have multiple identical GPUs:PCI bus numbers are assigned by the system and remain consistent across reboots unless hardware changes.
LUID-Based Selection
The driver uses LUIDs (Locally Unique Identifiers) internally for GPU identification. When you specify a GPU name or bus number, the driver resolves it to an LUID.LUID Structure
An LUID is a 64-bit identifier consisting of:- LowPart - Low 32 bits (DWORD)
- HighPart - High 32 bits (LONG)
LUID Resolution Process
Alternative: adapter.txt File
Instead of usingvdd_settings.xml, you can create an adapter.txt file:
Location: C:\VirtualDisplayDriver\adapter.txt
Content:
The
adapter.txt file is only used when <friendlyname> is set to default in vdd_settings.xml.- If
friendlynameis notdefault: use the value fromvdd_settings.xml - If
friendlynameisdefaultandadapter.txtexists: use the GPU fromadapter.txt - Otherwise: auto-select best GPU
Multi-GPU Configuration Examples
Dual GPU System (Different GPUs)
Dual GPU System (Identical GPUs)
Laptop with iGPU + dGPU
Hybrid AMD + NVIDIA System
GPU Enumeration in Driver Logs
The driver logs all available GPUs on startup:Runtime GPU Detection
The driver can detect and report GPU information at runtime:Advanced: Direct LUID Configuration
For advanced scenarios, you can directly query and use LUIDs:Direct LUID manipulation requires driver code modifications. Most users should use name or bus-based selection.
Command-Line GPU Configuration
You can change the GPU at runtime using the command-line interface:Troubleshooting
Driver uses wrong GPU
Driver uses wrong GPU
Possible causes:
- GPU name mismatch
friendlynamestill set todefault- Typo in GPU name
- Check driver logs for available GPUs
- Verify exact GPU name from Device Manager
- Use bus number if you have identical GPUs
GPU not found error
GPU not found error
Possible causes:
- GPU name doesn’t match exactly
- GPU disabled or not present
- Driver hasn’t detected GPU yet
- Verify GPU is enabled in BIOS
- Check Device Manager for GPU status
- Try
defaultto use automatic selection
Can't distinguish between identical GPUs
Can't distinguish between identical GPUs
Cause: Using name-only selection with multiple identical GPUsSolution: Use bus-based selection:
GPU_NAME,BUS_NUMBERGPU selection ignored
GPU selection ignored
Possible causes:
- Configuration not applied
- Driver not restarted
- Syntax error in XML
- Verify XML syntax is correct
- Restart driver after configuration change
- Check driver logs for errors
Best Practices
Use default for single-GPU systems
If you only have one GPU, keep
<friendlyname>default</friendlyname>.Use bus numbers for identical GPUs
For systems with multiple identical GPUs, always include the bus number.
Performance Considerations
Use discrete GPU
Dedicated GPUs provide better performance than integrated graphics.
Consider encoding workload
If using hardware encoding, select GPU with best encoder (NVENC, VCE).
Balance workloads
In multi-GPU systems, distribute workloads across GPUs.
Monitor GPU usage
Use GPU monitoring tools to verify the selected GPU is being used.
Related Topics
Settings Overview
Complete configuration file reference
PowerShell Scripts
Automate GPU configuration with scripts