Skip to content

Installing AMD Graphics Drivers ​

We recommend using RadeonSoftwareSlimmer, an open-source GUI app that's a cleaner alternative to manually stripping the drivers.

Driver Installation ​

  1. Download the latest WHQL recommended driver from the
  1. Download RadeonSoftwareSlimmer - the file named RadeonSoftwareSlimmer_XXX_net48.zip.

  2. Open the application and go to the Pre-Install tab.

  3. Select your installer file by clicking Browse, then confirm by double-clicking Next.

  4. After the extraction process, untick everything in the Packages tab apart from:

    • AMD Display Driver
    • AMD Settings (Required for Radeon Software)

    Monitor audio

    These may be required for monitor sound - keep them ticked if you use audio over HDMI/DP:

    • AMD Audio CoProcessor Bus Driver
    • AMD Audio filter driver
    • AMD HDMI Audio driver
    • AMD High-Definition Audio Controller
    • AMD Streaming Audio Filter Driver
  5. Untick everything in the Scheduled Tasks tab.

  6. Untick everything in Display Driver Components.

    WARNING

    If you are using audio from your monitor, do not remove High Definition Audio Bus.

  7. Click Modify Installer, then Run Installer, and continue with driver setup as usual.

Configure Radeon Software ​

  1. Open Radeon Software by right-clicking the desktop.
  2. Accept the terms and click the Settings icon in the top-right.

Graphics tab ​

SettingValue
Wait for Vertical RefreshAlways Off
Texture Filtering QualityPerformance
Tessellation ModeOverride application settings
Maximum Tessellation LevelOff

Display tab ​

SettingValue
AMD FreeSyncSee note below
GPU ScalingOff
Color DepthMatch your monitor's specifications

AMD FreeSync

FreeSync has the potential to increase input latency due to extra processing. Your mileage may vary - it has reportedly improved over time.

Other tabs ​

  • Disable all settings in the Hotkeys and Preferences tabs.

Refresh rate & resolution ​

Configure your refresh rate and resolution by running the following in Win+R:

rundll32 display.dll,ShowAdapterSettings 0

Disable residual services ​

Disable the residual AMD services and drivers - typically:

  • AMD Crash Defender
  • AMD External Events Utility (required for VRR - keep enabled if you use FreeSync)

Disable Multi-Plane Overlay (MPO) ​

Disabling Multi-Plane Overlay (MPO) can fix some issues:

  • Desktop apps flickering or stuttering during video playback with hardware acceleration in browsers.
  • Black screens when alt-tabbing from games/applications to a browser playing a looping video.
  • Flickering or stuttering when resizing windows on some systems.

Run the following in elevated PowerShell:

powershell
$DwmKey = 'HKLM:\SOFTWARE\Microsoft\Windows\Dwm'
if (-not (Test-Path $DwmKey)) { New-Item -Path $DwmKey -Force | Out-Null }
Set-ItemProperty -Path $DwmKey -Name 'OverlayTestMode' -Value 5 -Type DWord

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 services and remove files from AMD's stack. Only run what you understand. If you use HDMI/DP audio, skip the optional audio-driver removal block.
  • Reboot once you're done so the driver and Radeon Software pick up the new state.

This packages the same configuration applied manually above as drop-in PowerShell snippets. Registry work uses Set-ItemProperty / New-Item / Remove-ItemProperty; service removal uses Stop-Service + Invoke-CimMethod -MethodName Delete on Win32_Service - no reg.exe, no cmd /c shim - so the same code runs on Windows PowerShell 5.1 and PowerShell 7.x.

  • Radeon Software must exist at the default path :
  • C:\Program Files\AMD\CNext\CNext\RadeonSoftware.exe

Prerequisites ​

  1. AMD display driver installed (preferably via RadeonSoftwareSlimmer as in Driver Installation above).
  2. Radeon Software launched at least once so per-user HKCU\Software\AMD\CN keys exist (section 5 opens it for you if needed).
  3. Execution policy for the current process:
powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force

1. Remove startup entries, scheduled task, and optional audio stack ​

powershell
# --- Run / RunOnce noise ----------------------------------------------------
Remove-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run'     -Name 'AMDNoiseSuppression' -ErrorAction SilentlyContinue
Remove-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce' -Name 'StartRSX'            -ErrorAction SilentlyContinue

# --- Radeon "StartCN" scheduled task ---------------------------------------
Unregister-ScheduledTask -TaskName 'StartCN' -Confirm:$false -ErrorAction SilentlyContinue

# --- Optional: remove HDMI/DP-related AMD audio services -------------------
# Skip this entire foreach if you rely on sound over the display cable.
$AudioServices = 'amdacpbus', 'AMDSAFD', 'AtiHDAudioService'
foreach ($Name in $AudioServices) {
    $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
}

# --- AMD Bug Report Tool shortcuts / binary -------------------------------
Remove-Item "$env:ProgramData\Microsoft\Windows\Start Menu\Programs\AMD Bug Report Tool" `
    -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "$env:SystemRoot\SysWOW64\AMDBugReportTool.exe" -Force -ErrorAction SilentlyContinue

# --- AMD Install Manager (if still registered) ----------------------------
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*' -ErrorAction SilentlyContinue |
    Where-Object DisplayName -Like '*AMD Install Manager*' |
    ForEach-Object {
        Start-Process -FilePath msiexec.exe `
            -ArgumentList @('/x', $_.PSChildName, '/qn', '/norestart') `
            -Wait -NoNewWindow
    }

# --- Leftover extraction cache ---------------------------------------------
Remove-Item "$env:SystemDrive\AMD" -Recurse -Force -ErrorAction SilentlyContinue

2. Flatten the Start Menu shortcut ​

powershell
$folderName = "AMD Software$([char]0xA789) Adrenalin Edition"
$startMenu  = "$env:ProgramData\Microsoft\Windows\Start Menu\Programs"

Move-Item -Path        "$startMenu\$folderName\$folderName.lnk" `
          -Destination "$startMenu" `
          -Force -ErrorAction SilentlyContinue
Remove-Item "$startMenu\$folderName" -Recurse -Force -ErrorAction SilentlyContinue

3. Let the stack settle, then bootstrap Radeon Software once ​

Some HKCU\Software\AMD\CN values only appear after Radeon Software has run at least once. After a fresh driver install, wait until the installer has fully exited, then:

powershell
Start-Sleep -Seconds 15

$RsExe = 'C:\Program Files\AMD\CNext\CNext\RadeonSoftware.exe'
if (-not (Test-Path -LiteralPath $RsExe)) {
    throw "Radeon Software not found at $RsExe. Install the driver + UI first."
}

Start-Process -FilePath $RsExe
Start-Sleep -Seconds 30
Stop-Process -Name 'RadeonSoftware' -Force -ErrorAction SilentlyContinue
Start-Sleep -Seconds 2

4. Apply Adrenalin registry settings (system, graphics, display, preferences) ​

REG_BINARY values in the driver INF are expressed as hex strings in the original automation script. The helper below converts those hex strings to byte[] for Set-ItemProperty -Type Binary.

powershell
function ConvertFrom-HexBinary {
    param([Parameter(Mandatory)][string]$Hex)
    $Hex = ($Hex -replace '\s', '')
    if (($Hex.Length % 2) -ne 0) { throw 'Hex string must have an even length.' }
    $bytes = New-Object byte[] ($Hex.Length / 2)
    for ($i = 0; $i -lt $bytes.Length; $i++) {
        $bytes[$i] = [Convert]::ToByte($Hex.Substring($i * 2, 2), 16)
    }
    return ,$bytes
}

function Set-UMDBinaryValue {
    param(
        [Parameter(Mandatory)][string]$ValueName,
        [Parameter(Mandatory)][string]$HexData
    )

    $DisplayClass = 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}'
    $blob = ConvertFrom-HexBinary -Hex $HexData

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

# --- HKCU: Radeon Software / Adrenalin ------------------------------------
$CN = 'HKCU:\Software\AMD\CN'
if (-not (Test-Path $CN)) { New-Item -Path $CN -Force | Out-Null }

foreach ($rel in @('CustomResolutions', 'DisplayOverride', 'FreeSync', 'OverlayNotification', 'VirtualSuperResolution')) {
    $p = Join-Path $CN $rel
    if (-not (Test-Path $p)) { New-Item -Path $p -Force | Out-Null }
}

Set-ItemProperty -Path $CN -Name 'AutoUpdate'               -Value 0         -Type DWord
Set-ItemProperty -Path $CN -Name 'WizardProfile'           -Value 'PROFILE_CUSTOM' -Type String
Set-ItemProperty -Path $CN -Name 'SystemTray'              -Value 'false'    -Type String
Set-ItemProperty -Path $CN -Name 'CN_Hide_Toast_Notification' -Value 'true' -Type String
Set-ItemProperty -Path $CN -Name 'AnimationEffect'         -Value 'false'   -Type String

Set-ItemProperty -Path (Join-Path $CN 'CustomResolutions') -Name 'EulaAccepted' -Value 'true' -Type String
Set-ItemProperty -Path (Join-Path $CN 'DisplayOverride')   -Name 'EulaAccepted' -Value 'true' -Type String

# Wait for Vertical Refresh → Always Off | Texture filtering → Performance
Set-UMDBinaryValue -ValueName 'VSyncControl'        -HexData '3000'
Set-UMDBinaryValue -ValueName 'TFQ'                 -HexData '3200'
# Tessellation → Override application settings, level Off
Set-UMDBinaryValue -ValueName 'Tessellation'        -HexData '3100'
Set-UMDBinaryValue -ValueName 'Tessellation_OPTION' -HexData '3200'

# --- Per-EDID: disable HDCP-style protection (matches automation profile) --
$DisplayClass = 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}'
Get-ChildItem -Path $DisplayClass -Recurse -ErrorAction SilentlyContinue |
    Where-Object PSChildName -Match '^EDID_[A-F0-9]+_[A-F0-9]+_[A-F0-9]+$' |
    ForEach-Object {
        if ($_.PSChildName -notmatch '^(EDID_[A-F0-9]+_[A-F0-9]+)_[A-F0-9]+$') { return }

        $baseEdidPath = Join-Path (Split-Path $_.PSPath) $Matches[1]
        $optionPath  = Join-Path $baseEdidPath 'Option'
        New-Item -Path $baseEdidPath -Force -ErrorAction SilentlyContinue | Out-Null
        New-Item -Path $optionPath   -Force -ErrorAction SilentlyContinue | Out-Null

        Set-ItemProperty -LiteralPath $optionPath -Name 'All_nodes'         -Value (ConvertFrom-HexBinary '50726F74656374696F6E436F6E74726F6C00') -Type Binary
        Set-ItemProperty -LiteralPath $optionPath -Name 'default'           -Value (ConvertFrom-HexBinary '64')                                   -Type Binary
        Set-ItemProperty -LiteralPath $optionPath -Name 'ProtectionControl' -Value (ConvertFrom-HexBinary '0100000001000000')                     -Type Binary
    }

# Vari-Bright → maximize brightness (abmlevel = 0)
Get-ChildItem -Path $DisplayClass -Recurse -ErrorAction SilentlyContinue |
    Where-Object PSChildName -EQ 'power_v1' |
    ForEach-Object {
        Set-ItemProperty -LiteralPath $_.PSPath -Name 'abmlevel' -Value (ConvertFrom-HexBinary '00000000') -Type Binary -ErrorAction SilentlyContinue
    }

# Reset first-run notification bucket, then mark panels as "already seen"
Remove-Item -Path (Join-Path $CN 'Notification') -Recurse -Force -ErrorAction SilentlyContinue
New-Item -Path (Join-Path $CN 'Notification') -Force | Out-Null

Set-ItemProperty -Path (Join-Path $CN 'FreeSync')               -Name 'AlreadyNotified' -Value 1 -Type DWord
Set-ItemProperty -Path (Join-Path $CN 'OverlayNotification')  -Name 'AlreadyNotified' -Value 1 -Type DWord
Set-ItemProperty -Path (Join-Path $CN 'VirtualSuperResolution') -Name 'AlreadyNotified' -Value 1 -Type DWord

Reboot to apply

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