Repository navigation
Troubleshooting
Start every search for a cause with the verification. Open a command prompt as administrator and run:
"C:\Program Files\amdgpu-wddm\verify.cmd"
The table names the check that fails. Then find the matching section below.
Before Windows is installed, Windows Setup can show "A media driver your computer needs is missing", with an empty driver list. This message does not come from amdgpu-wddm and is not about the graphics card. Windows installs on the BC-250 with no graphics driver: Setup uses the picture that the firmware gives.
The message usually means that Setup cannot read its own installation files from the USB drive. Do these steps:
- Select Browse in that window and open the USB drive. Look for
sources\install.wimorsources\install.esd. If neither is there, the USB drive is not a working Windows installation drive. - Make the installation drive again with the Media Creation Tool or with Rufus, from an unchanged ISO file. Do not
use balenaEtcher or another tool that writes the image byte for byte: a Windows ISO is not made for that, and
the drive starts Setup but Setup cannot read its own files. Do not copy the files of the ISO by hand to a FAT32
drive:
install.wimis often larger than 4 GB, which FAT32 cannot hold. - Ventoy also works. If Ventoy shows the same message, select the ISO again and select "Boot in wimboot mode".
- Do not change the installation drive after you make it (Ventoy is the exception: it keeps ISO files and other files side by side). Copy the amdgpu-wddm package to a second USB drive, or download it after Windows is installed.
- Connect the drive to a USB port on the rear of the board. If the message comes back, try a different USB drive.
The preflight table prints one line for each check. A fail line stops the installer, and the installer has
changed nothing at that point. Correct the item that the line names and start the installer again: setup.exe,
or install.cmd in the folder files of the package.
| Line | What to do |
|---|---|
BC-250 GPU |
This package is for the ASRock BC-250 only. It changes nothing on another computer. |
Secure Boot |
Windows does not load a test-signed driver while Secure Boot is on. The stock BC-250 BIOS has no Secure Boot option, and the line then shows off (not built into the firmware). A fail here means a modified BIOS (turn it off under Security > Secure Boot) or a wrong read: run Confirm-SecureBootUEFI as administrator and report the result in an issue. |
Visual C++ runtime |
Install the Microsoft Visual C++ 2015-2022 Redistributable (x64). |
free space |
Make 2 GB free on the system drive. |
GPU firmware |
The computer cannot reach the download addresses, or a file has a different SHA256. Connect the computer to the internet, or download the files on another computer and use install.cmd -FirmwareDir <folder> in the folder files of the package. |
package integrity |
The unpacked files do not match manifest.json. Download the zip file again and unpack the whole zip file again. The folder files on its own reports missing setup.exe: keep setup.exe and files together in one folder. |
The installer prints stopped at step: ... and names the cause. Correct the cause and run install.cmd again
from the same files folder of the package. The installer skips the steps that are complete and continues at the
step that failed.
A file that Windows holds open cannot be overwritten. The installer renames it to <name>.old-<time>, copies
the new file and deletes the old copy at the next restart. This is normal.
Most likely Windows started, but the start of the driver did not complete, and the screen still shows the last picture of the start. This is probably the problem of Device Manager shows Code 43 (GitHub issue #38).
- Start Windows without the driver, as Start Windows without the driver
says. If you cannot see the desktop, switch the board off with the power button while the loading screen
shows, two times. At the third start Windows opens its recovery screen. Select Advanced options >
Troubleshoot > Advanced options > Startup Settings > Restart, then push
4for Safe Mode. - In Safe Mode, collect the details as Device Manager shows Code 43 says, and
add them to GitHub issue #38. Tell us your Windows edition and version (
winver). - Run
uninstall.cmdfromC:\Program Files\amdgpu-wddm.
Wait two minutes. If the screen stays black, restart the computer with the power button. After two failed starts, Windows uses the Microsoft Basic Display Adapter again, so the desktop comes back.
The desktop compositor is on the GPU route and cannot draw. The Help page of the application gives these steps under "The screen stays dark or the driver does not start".
- Wait two minutes. The first start after an update can take longer.
- Restart Windows. Push the power button once and wait, if the Start menu does not answer.
- If the desktop stays black, start Windows in Safe Mode, as the next section says. Safe Mode draws the desktop with the Microsoft Basic Display Adapter, so you can read the screen again.
- In Safe Mode, push
Win, typeamdgpu-wddm Control (recovery)and start that shortcut. Select Repair. The installer puts this shortcut in the Start menu next to the normal one.
To keep the desktop on the processor until you find the cause, open a command prompt as administrator and set the documented switch of the release, then restart Windows:
reg add "HKLM\SOFTWARE\amdgpu-wddm\DesktopRouter" /v DwmForceCpu /t REG_DWORD /d 1 /f
The value 1 holds the desktop on the processor. The value 0 gives it back to the GPU. An upgrade keeps the
value you set. The desktop is slower on the processor, and everything else still runs on the GPU.
If you want the driver off the computer, start Windows without the driver, as the next section says, and run
uninstall.cmd.
- Hold
Shiftand select Restart. - Select Troubleshoot > Advanced options > Startup Settings > Restart.
- Push
3for "Enable low-resolution video", or4for Safe Mode. - Run
uninstall.cmdfrom the folderfilesof the package or fromC:\Program Files\amdgpu-wddm.
It stops before it removes anything, and the installation stays as it was. Install 0.7.216.100-tester.29 or
later first, then run uninstall.cmd again. Installation, section 11, also gives one icacls
command that removes 0.7.216.100-tester.28 without a newer installation.
Code 43 means that the start of the driver did not complete. Either the driver stopped its own start, or Windows stopped the device a moment after the start. The desktop then runs on the Microsoft Basic Display Adapter.
From release 0.7.216.100-tester.29 on, the installer collects the details by itself when the driver does not
start. It writes one text file, diagnostics-<time>.txt, next to its log in C:\ProgramData\amdgpu-wddm\installer,
and prints its path in its last lines. The setup window puts the same text into its support file as
run-<n>-diagnostics.txt. amdgpu-wddm Control collects the same details into its support report. Send one of
these files with your issue.
From the same release on, the driver writes a stop record when Windows stops the device after a start that
nothing confirmed. It is under HKLM\SYSTEM\CurrentControlSet\Services\bc250kmd\Parameters\StopRecord. You do
not need to turn anything on, and the support report holds it.
With an older release, or if you have no such file, open PowerShell as administrator and run these two commands. Keep the output:
Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\bc250kmd\Parameters | Select-Object StageHistory, LastStage, UnconfirmedStarts, KeepStatus
Get-PnpDevice | Where-Object InstanceId -like 'PCI\VEN_1002&DEV_13FE*' | Get-PnpDeviceProperty -KeyName DEVPKEY_Device_ProblemStatus | ForEach-Object { '{0:X8}' -f $_.Data }
StageHistory and LastStage name the step of the start that the driver reached. UnconfirmedStarts says
whether the start counter refused the start: the counter refuses a start at 2, not before.
As administrator:
$p = 'HKLM:\SYSTEM\CurrentControlSet\Services\bc250kmd\Parameters'
Set-ItemProperty $p -Name KeepLog -Value 1
Set-ItemProperty $p -Name UnconfirmedStarts -Value 0
Restart Windows, log on, and wait one minute. If the folder C:\BC250\kmdlog exists, make a zip file of it and
attach it to your issue. It is small. Then set KeepLog back to 0.
One known cause of a refused start is the picture that the firmware hands to Windows. The driver reads the display timing that the firmware left running and matches it with the screen that Windows received. On our test board the firmware always hands over the native mode of the monitor. Reports of a refused start are collected in issue #38.
Up to release 0.7.216.100-tester.27 the driver refused the start when the board sent HDMI signals through a passive DP-to-HDMI adapter. From 0.7.216.100-tester.28 on, the driver starts with such an adapter and keeps the mode that the board chose at power-on: one mode only and a restart of Windows after a cable change. From 0.7.216.100-tester.29 on, the sound goes over HDMI too, and Windows gets the name of the monitor.
Up to 0.7.216.100-tester.28 the driver also refused the start when the firmware scaled a small picture to a larger signal, for example 1024x768 to a 1920x1080 link. From 0.7.216.100-tester.29 on, the driver starts in this case and keeps that mode.
The driver still refuses the start in these cases:
- The picture runs on the second display pipe.
- The driver cannot read the state of the chip, or that state is in the middle of a change. The driver then writes the registers that it read into the start record, so your report tells us the mode of your monitor.
From tester.28 on, verify.cmd in C:\Program Files\amdgpu-wddm shows the step that failed and the measured
timing values. Attach its output to your issue. To test, connect the monitor with a DisplayPort cable directly,
without an adapter, and try one more start.
In your issue, please answer these questions:
- How is the monitor connected: a DisplayPort cable directly, or an adapter? If an adapter, is it passive or active, and which model?
- What is the native resolution and refresh rate of the monitor?
- Do the BIOS setup screen and the Windows boot logo look low-resolution, or sharp at the native resolution of the monitor?
- Which resolutions does Windows offer in Settings > System > Display with the Microsoft Basic Display Adapter?
The driver is tested on the stock BIOS P3.00 with an 8 GB UMA frame buffer. A modded BIOS is not tested. If your board has one, please say so in the issue, and name:
- The settings of the mod, for example a core-unlock driver that runs before Windows starts.
- The UMA frame buffer size.
- Above 4G Decoding and Resizable BAR: on or off.
A smaller frame buffer, for example 512 MB, is not tested either, and most games run out of video memory at that size.
The command bar of File Explorer or the Task Manager stops answering the mouse, often after the screen went
black for a moment. verify.cmd then shows [warn] DWM restarted in this session.
This is a loss of pointer input in WinUI after the desktop compositor is stopped and started again. It happens on this Windows build with the Microsoft Basic Display Adapter too. Restart Windows to recover. If the compositor crashed, make a bug report: a crash can still be a defect of the driver.
verify.cmd reports GPU desktop path with closed by the driver or last boot died in a session, and the
desktop runs on the CPU route.
Run install.cmd -Repair as administrator in the folder files of the package. It sets the switches of the
release back and restarts Windows. The application has
the same action: the status card of its Home page offers "Turn the faster desktop back on", and the change
applies after the next restart of Windows. A normal installation and an upgrade keep the closed path and name it
in their report, because the driver closed it for a reason.
If the driver closes the path a second time, make a bug report instead of a second repair.
From 0.7.216.100-tester.29 on, the driver uses a new way to give the graphics engine the page tables of a program. If a game freezes or loses its picture, and it did not do this with the earlier release, set the old way back. Open a command prompt as administrator and run:
reg add HKLM\SYSTEM\CurrentControlSet\Services\bc250kmd\Parameters /v EnableRingVmFlush /t REG_DWORD /d 0 /f
Restart Windows. Then send us the support report, and tell us whether the problem stays with the value 0.
- Open amdgpu-wddm Control from the Start menu and select the bug report function.
- The application shows the list of files and the text of each file before it writes anything. Read them.
- The application writes one zip file to your desktop:
amdgpu-wddm-report-YYYYMMDD-HHMMSS.zip. It sends nothing. - Open an issue at github.com/D-Ogi/amdgpu-wddm/issues/new/choose and select "Bug report". Give the package version, the game or application and its API, the settings, what you did, what you expected, what happened, and the time of the problem.
- Attach the zip file.
The zip file holds the driver state and log, the installed files with their versions and hashes, the driver
settings, the Windows build, the events of the last 24 hours, and, if you select them, the dxdiag output and
the Direct3D 12 and Vulkan capabilities.
Before the preview, the application removes your user name, your profile path, the computer name, MAC
addresses, e-mail addresses, and every value on a line that names a serial number, machine ID, product ID or
UUID. It also removes the account name of every other C:\Users\<name> path, the security identifiers, and the
computer name of an event entry. Versions, hashes and hardware IDs stay, because we need them. If you find
personal data in the preview, do not send the file, and say so in the issue.
Up to release 0.7.216.100-tester.28 the application did not remove the serial numbers, machine IDs, product IDs and UUIDs, because of a defect. Release 0.7.216.100-tester.29 fixes it. Make a new report with tester.29 or later, and read the preview before you send it.