Skip to main content
The Virtual Display Driver supports flexible resolution and refresh rate configuration through two complementary systems: manual resolution definitions and global refresh rates.

Manual Resolution Configuration

Define specific resolutions with individual refresh rates in the <resolutions> section:
<resolutions>
    <resolution>
        <width>1920</width>
        <height>1080</height>
        <refresh_rate>60</refresh_rate>
    </resolution>
    <resolution>
        <width>2560</width>
        <height>1440</height>
        <refresh_rate>144</refresh_rate>
    </resolution>
    <resolution>
        <width>3840</width>
        <height>2160</height>
        <refresh_rate>60</refresh_rate>
    </resolution>
</resolutions>

Resolution Parameters

resolution.width
integer
required
Horizontal resolution in pixels.Valid range: 640 - 7680 pixelsCommon values:
  • 1920 (Full HD)
  • 2560 (QHD)
  • 3840 (4K UHD)
  • 7680 (8K UHD)
resolution.height
integer
required
Vertical resolution in pixels.Valid range: 480 - 4320 pixelsCommon values:
  • 1080 (Full HD)
  • 1440 (QHD)
  • 2160 (4K UHD)
  • 4320 (8K UHD)
resolution.refresh_rate
integer
required
Refresh rate in Hz for this specific resolution.Common values: 24, 30, 50, 60, 90, 120, 144, 165, 240

Global Refresh Rates

Global refresh rates are applied to all defined resolutions, creating additional mode combinations:
<global>
    <g_refresh_rate>60</g_refresh_rate>
    <g_refresh_rate>90</g_refresh_rate>
    <g_refresh_rate>120</g_refresh_rate>
    <g_refresh_rate>144</g_refresh_rate>
    <g_refresh_rate>165</g_refresh_rate>
    <g_refresh_rate>240</g_refresh_rate>
</global>
global.g_refresh_rate
integer
Global refresh rate to apply across all resolutions. Can be specified multiple times.Valid range: 24 - 240 Hz

How Global Refresh Rates Work

Global refresh rates create additional display modes. For example: Configuration:
<global>
    <g_refresh_rate>60</g_refresh_rate>
    <g_refresh_rate>120</g_refresh_rate>
</global>

<resolutions>
    <resolution>
        <width>1920</width>
        <height>1080</height>
        <refresh_rate>144</refresh_rate>
    </resolution>
</resolutions>
Results in these available modes:
  • 1920x1080 @ 60 Hz (from global)
  • 1920x1080 @ 120 Hz (from global)
  • 1920x1080 @ 144 Hz (from manual resolution)
Global refresh rates are combined with manual resolutions, giving you flexibility without repeating resolution definitions.

Standard Resolution Presets

Gaming Configurations

<global>
    <g_refresh_rate>60</g_refresh_rate>
    <g_refresh_rate>144</g_refresh_rate>
    <g_refresh_rate>240</g_refresh_rate>
</global>

<resolutions>
    <resolution>
        <width>1920</width>
        <height>1080</height>
        <refresh_rate>60</refresh_rate>
    </resolution>
</resolutions>
Provides 1080p at 60Hz, 144Hz, and 240Hz for competitive gaming.

Content Creation Configurations

<resolutions>
    <resolution>
        <width>1920</width>
        <height>1080</height>
        <refresh_rate>24</refresh_rate>
    </resolution>
    <resolution>
        <width>1920</width>
        <height>1080</height>
        <refresh_rate>30</refresh_rate>
    </resolution>
    <resolution>
        <width>3840</width>
        <height>2160</height>
        <refresh_rate>24</refresh_rate>
    </resolution>
    <resolution>
        <width>3840</width>
        <height>2160</height>
        <refresh_rate>30</refresh_rate>
    </resolution>
</resolutions>
Standard framerates for video production (24fps, 30fps).

Multi-Resolution Setup

Provide multiple resolutions for maximum flexibility:
<global>
    <g_refresh_rate>60</g_refresh_rate>
    <g_refresh_rate>120</g_refresh_rate>
</global>

<resolutions>
    <!-- Full HD -->
    <resolution>
        <width>1920</width>
        <height>1080</height>
        <refresh_rate>60</refresh_rate>
    </resolution>
    
    <!-- QHD -->
    <resolution>
        <width>2560</width>
        <height>1440</height>
        <refresh_rate>60</refresh_rate>
    </resolution>
    
    <!-- 4K UHD -->
    <resolution>
        <width>3840</width>
        <height>2160</height>
        <refresh_rate>60</refresh_rate>
    </resolution>
    
    <!-- Ultrawide -->
    <resolution>
        <width>3440</width>
        <height>1440</height>
        <refresh_rate>60</refresh_rate>
    </resolution>
</resolutions>

Fractional Refresh Rates

For video production, fractional refresh rates are important:
<!-- These are defined in monitor_profile.xml -->
<MonitorMode>
    <Width>1920</Width>
    <Height>1080</Height>
    <RefreshRate>59.940</RefreshRate>
    <RefreshRateMultiplier>999</RefreshRateMultiplier>
    <NominalRefreshRate>60</NominalRefreshRate>
</MonitorMode>
Fractional refresh rates (23.976, 29.970, 59.940) are specified in monitor_profile.xml when using the EDID integration system. See EDID Integration.

Auto Resolution System

The driver includes an automatic resolution system that can generate modes from EDID data:
<auto_resolutions>
    <enabled>false</enabled>
    <source_priority>manual</source_priority>
    <edid_mode_filtering>
        <min_refresh_rate>24</min_refresh_rate>
        <max_refresh_rate>240</max_refresh_rate>
        <exclude_fractional_rates>false</exclude_fractional_rates>
        <min_resolution_width>640</min_resolution_width>
        <min_resolution_height>480</min_resolution_height>
        <max_resolution_width>7680</max_resolution_width>
        <max_resolution_height>4320</max_resolution_height>
    </edid_mode_filtering>
    <preferred_mode>
        <use_edid_preferred>false</use_edid_preferred>
        <fallback_width>1920</fallback_width>
        <fallback_height>1080</fallback_height>
        <fallback_refresh>60</fallback_refresh>
    </preferred_mode>
</auto_resolutions>

Auto Resolution Parameters

auto_resolutions.enabled
boolean
default:"false"
Enable automatic resolution generation from EDID data.
auto_resolutions.source_priority
string
default:"manual"
Priority for resolution sources.Valid values:
  • manual - Use only manually defined resolutions
  • edid - Generate resolutions from EDID data
  • both - Combine manual and EDID resolutions
edid_mode_filtering.min_refresh_rate
integer
default:"24"
Minimum refresh rate to include from EDID (Hz).
edid_mode_filtering.max_refresh_rate
integer
default:"240"
Maximum refresh rate to include from EDID (Hz).
edid_mode_filtering.exclude_fractional_rates
boolean
default:"false"
Exclude fractional refresh rates (23.976, 29.970, 59.940) from EDID modes.
preferred_mode.use_edid_preferred
boolean
default:"false"
Use the preferred mode from EDID data instead of the fallback values.
The auto resolution system is disabled by default. Most users should define resolutions manually for predictable behavior.

Resolution Limits

The driver enforces these limits:
ParameterMinimumMaximum
Width640 px7680 px (8K)
Height480 px4320 px (8K)
Refresh Rate24 Hz240 Hz
Total Modes1System-dependent
While the driver supports up to 8K resolutions, actual limits depend on your GPU capabilities and available bandwidth.

Troubleshooting

Possible causes:
  • Invalid resolution dimensions
  • Refresh rate out of range
  • XML syntax error
Solution: Check driver logs for validation errors and verify XML syntax.
Possible causes:
  • GPU limitations
  • Display bandwidth constraints
  • Incorrect configuration
Solution: Reduce resolution or refresh rate. Check GPU capabilities.
Possible causes:
  • Multiple global refresh rates creating many combinations
Solution: Reduce number of global refresh rates or use fewer manual resolutions.

Best Practices

1

Start with common resolutions

Begin with 1920x1080 and 3840x2160 at 60Hz for broad compatibility.
2

Add global refresh rates sparingly

Each global refresh rate multiplies the number of available modes.
3

Test each configuration

Verify new resolutions work before adding more.
4

Match your use case

Gaming needs high refresh rates; video production needs specific framerates.

EDID Integration

Advanced resolution configuration via EDID

HDR Configuration

HDR settings for high-quality displays

Build docs developers (and LLMs) love