Skip to content

Installing Intel Graphics Drivers

Intel publishes WHQL drivers for Iris Xe, Arc and integrated UHD GPUs on the official download page. The installer ships a number of extra components (telemetry, frame metrics service, HDCP module, firmware updater) that are not required for gaming and can be safely removed afterwards.

This page documents:

  1. A clean install of the latest WHQL driver.
  2. The exact settings recommended in Intel Graphics Software.
  3. A Power User section with drop-in PowerShell snippets for cleanup + registry tuning after the driver and Intel Graphics Software are already installed (same style as the NVIDIA page).

Driver Installation

  1. Open the Intel Graphics Drivers page.
  2. Download the latest WHQL package for your GPU family.
  3. Run the installer:
    • Accept the EULA.
    • Untick anything that says Intel Driver & Support Assistant, telemetry, or bundled apps if prompted.
  4. Reboot when the installer finishes.

TIP

Prefer the .exe installer if you plan to mirror a silent extract-and-install flow yourself (for example with 7-Zip). The Power User section on this page does not automate download or install - it only covers cleanup and registry tuning after a normal install.

Configure Intel Graphics Software

Open Intel Graphics Software from the Start menu (or shell:appsFolder\AppUp.IntelGraphicsExperience_8j3eq9eme6ctt!App).

Display tab

SettingValue
Variable Refresh RateDisabled
Variable Refresh Rate ModeDisabled

Graphics tab

SettingValue
Frame Synchronization (V-Sync)Off
Low Latency ModeOff

INFO

Intel's Low Latency feature inserts a frame-pacing pass; turning it off keeps the rendering pipeline unconstrained. Re-enable it on a per-title basis if you actually need it.

Disable telemetry & background services

The Intel driver ships with a handful of services that are not strictly required:

ServiceDescription
IntelGFXFWupdateToolDriver firmware updater
cplspconContent Protection HDCP service
CtaChildDriverCTA child driver
GSCAuxDriverGraphics System Controller (auxiliary firmware)
GSCx64Graphics System Controller (firmware interface)

You can disable any of these via services.msc, or use the Power User snippets below to remove them automatically after install.


Power User - Automated Setup

Run elevated, reboot at the end

  • Every snippet must be run from an elevated PowerShell session (right-click → Run as administrator).
  • Each block is standalone - paste only the ones you need.
  • These steps delete Windows services and remove files from Intel's install. Only run what you understand.
  • Reboot once you're done so the driver and Intel Graphics Software pick up the new state.

This packages the same cleanup + registry tuning as the manual sections above: no reg.exe, no cmd /c shim - Set-ItemProperty, New-Item, Remove-ItemProperty, and Stop-Service + Invoke-CimMethod Delete on Win32_Service - so the snippets run the same on Windows PowerShell 5.1 and PowerShell 7.x.

Use this after you have finished Driver Installation and opened Intel Graphics Software at least once.

Prerequisites

  1. Intel WHQL driver + Intel Graphics Software installed (per Driver Installation above).
  2. Execution policy for the current process:
powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force

1. Remove the Intel Graphics Software Run key (WOW64)

powershell
$RunKey = 'HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run'
$Value  = "Intel$([char]0xAE) Graphics Software"

Remove-ItemProperty -Path $RunKey -Name $Value -ErrorAction SilentlyContinue

2. Stop and delete optional Intel services

powershell
$Services = @(
    'IntelGFXFWupdateTool'
    'cplspcon'
    'CtaChildDriver'
    'GSCAuxDriver'
    'GSCx64'
)

foreach ($Name in $Services) {
    $cim = Get-CimInstance -ClassName Win32_Service -Filter "Name='$Name'" -ErrorAction SilentlyContinue
    if (-not $cim) { continue }

    Stop-Service -Name $Name -Force -ErrorAction SilentlyContinue
    $cim | Invoke-CimMethod -MethodName Delete | Out-Null
}

3. Stop PresentMon / UI and remove the PresentMon binary

powershell
foreach ($proc in 'IntelGraphicsSoftware', 'PresentMonService') {
    Stop-Process -Name $proc -Force -ErrorAction SilentlyContinue
}
Start-Sleep -Seconds 2

Remove-Item "$env:ProgramFiles\Intel\Intel Graphics Software\PresentMonService.exe" `
    -Force -ErrorAction SilentlyContinue

4. Flatten the Start Menu shortcut (optional)

powershell
$startMenu = "$env:ProgramData\Microsoft\Windows\Start Menu\Programs"
$IGSname   = "Intel$([char]0xAE) Graphics Software"

Move-Item -Path        "$startMenu\Intel\Intel Graphics Software\$IGSname.lnk" `
          -Destination "$startMenu" `
          -Force -ErrorAction SilentlyContinue
Remove-Item "$startMenu\Intel" -Recurse -Force -ErrorAction SilentlyContinue

5. Apply display + graphics registry settings (3DKeys)

powershell
$DisplayClass = 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}'

# Ensure each numbered adapter key (0000, 0001, …) has a 3DKeys subkey
Get-ChildItem -Path $DisplayClass -ErrorAction SilentlyContinue |
    Where-Object PSChildName -Match '^\d{4}$' |
    ForEach-Object {
        $threeD = Join-Path $_.PSPath '3DKeys'
        if (-not (Test-Path -LiteralPath $threeD)) {
            New-Item -Path $threeD -Force | Out-Null
        }
    }

# Walk every 3DKeys hive and set a DWORD
function Set-Intel3DDWord {
    param(
        [Parameter(Mandatory)][string]$ValueName,
        [Parameter(Mandatory)][uint32]$Data
    )

    Get-ChildItem -Path $DisplayClass -Recurse -ErrorAction SilentlyContinue |
        Where-Object PSChildName -EQ '3DKeys' |
        ForEach-Object {
            Set-ItemProperty -LiteralPath $_.PSPath -Name $ValueName -Value $Data -Type DWord -ErrorAction SilentlyContinue
        }
}

# Variable Refresh Rate Mode → Disabled (per automation profile)
Set-Intel3DDWord -ValueName 'Global_VRRWindowedBLT' -Data 2

# Variable Refresh Rate → Disabled (adapter-level REG_BINARY)
Get-ChildItem -Path $DisplayClass -ErrorAction SilentlyContinue |
    Where-Object PSChildName -Match '^\d{4}$' |
    ForEach-Object {
        Set-ItemProperty -LiteralPath $_.PSPath `
            -Name 'AdaptiveVsyncEnableUserSetting' `
            -Value ([byte[]](0x00, 0x00, 0x00, 0x00)) `
            -Type Binary `
            -ErrorAction SilentlyContinue
    }

# Frame Synchronization (V-Sync) → Off
Set-Intel3DDWord -ValueName 'Global_AsyncFlipMode' -Data 2

# Low Latency Mode → Off
Set-Intel3DDWord -ValueName 'Global_LowLatency' -Data 0

Optional: remove extraction leftovers

If you previously unpacked an Intel .exe to %SystemDrive%\IntelDriver or %SystemDrive%\Intel for a silent install, you can delete those folders when you no longer need the offline package:

powershell
Remove-Item "$env:SystemDrive\Intel"       -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "$env:SystemDrive\IntelDriver" -Recurse -Force -ErrorAction SilentlyContinue

Reboot to apply

Reboot after the snippets you ran. The next time Intel Graphics Software opens, the toggles documented in Configure Intel Graphics Software above should already match these values.