[Solution] Win7 White-Screen AMD Graphics Driver Problem

I have been working on the long-standing white-screen problem affecting newer AMD APUs with the legacy Windows 7 display driver.

I now have a working fix on Lucienne / Ryzen 5 5500U, including Aero/DWM.

Verified hardware

  • Lenovo Xiaoxin Air 14ALC 2021 / 82LM

  • AMD Ryzen 5 5500U / Lucienne

  • PCI\VEN_1002&DEV_164C&REV_C2

  • Windows 7 SP1 x64

  • 1920×1080 internal eDP panel

  • AMD KMD 27.20.20911.1001

Working:

  • AMD Radeon Graphics loads normally

  • native internal-panel output

  • hardware cursor

  • hardware-accelerated desktop

  • Aero / DWM composition

  • normal driver mode

  • no Test Mode required

The white-screen problem

This is not an INF/device-ID issue.

With the unmodified legacy Windows 7 KMD, the GPU initializes and the hardware cursor remains visible, but the primary desktop becomes completely white.

Runtime analysis showed that the GPU was actually rendering valid desktop pixels into the primary backing store.

So the failure was not in GFX rendering.

The failure was in the final primary-plane scanout path.

For the affected primary allocations, the original KMD exposed:

SupportedReadSegmentSet  = 0x4
SupportedWriteSegmentSet = 0x4

This forces Windows VidMm to use segment 3, the aperture/GART path.

On the tested Lucienne system, the GPU can render into this allocation, but the display engine does not correctly scan out the primary image from the coordinate submitted by the legacy Windows 7 driver.

Result:

GDI / DWM
    |
    v
Primary surface
    |
    v
Segment 3 / aperture-GART
    |
    +--> GPU rendering works
    |
    +--> primary scanout fails
         -> white screen

Fix

The patch intercepts the result of DxgkDdiCreateAllocation.

For primary-sized allocations matching the affected segment semantics, it changes the segment policy to:

PreferredSegment         = 1
SupportedReadSegmentSet  = 0x5
SupportedWriteSegmentSet = 0x5

Segment 1 is CPU-visible local memory.

Segment 3 is not removed; it remains available as fallback.

After the change:

GDI / DWM
    |
    v
Primary surface
    |
    v
Segment 1 / local memory
    |
    +--> GPU rendering works
    |
    +--> primary scanout works
         -> visible desktop

Aero / DWM

The first working patch only matched the basic desktop primary size (0x870000).

That restored the normal desktop, but enabling Aero caused the white screen to return.

Tracing showed that DWM creates slightly different primary scanout allocations (0x880000).

The final version therefore identifies the relevant allocations by size range and segment capabilities instead of matching one exact allocation size.

With the current patch, Aero works and DWM alternates its primary surfaces between local-segment addresses such as:

0xF400000000
0xF400880000

SetVidPnSourceAddress then continuously submits the local-memory surfaces and the display remains stable.

Internal eDP panel

There is also a separate small patch related to internal-panel takeover.

On the tested laptop, a legacy display cleanup routine could shut down the firmware-established eDP state before the old KMD established a working replacement.

The release build preserves that firmware display state during takeover.

This is separate from the segment-selection fix:

  • eDP-state patch: prevents the panel from being unnecessarily shut down

  • allocation patch: fixes the white primary scanout

Download / source / technical details

GitHub:

https://github.com/hrx114514x/win7-amd-apu-scanout-fix

Thanks to CanonKong for helping with the signed normal-mode driver build.


Edit by Fernando: Thread title shortened

Sorry for the little off-topic-ing and my probable stupidity, but every time I ‘succeeded’ to install any video driver, I got not white screen or whatever result, but 43 code error. Why is that?

Did you get Code 43 after installing my v1.0.0 package, or was this from another modified AMD driver you tried before?

I’ve gotten the same result (43 code) with the iCafe drivers from this thread before I learned that they don’t work with Renoir or later

Edit: Oh, and of course there were none drivers installed when I tried your solution.

Thanks, that clarifies it.

On my Lenovo 82LM, the original iCafe 21.11.1 driver successfully initializes the GPU but then produces a white screen. The patch fixes that later scanout stage.

On your ThinkBook 15 G3 ACL (21A4), Code 43 means the driver is failing earlier, before the white-screen patch is reached. Although both laptops use the Ryzen 5 5500U, their firmware and subsystem configuration may differ.

Could you please provide:

  1. the complete GPU Hardware IDs from Device Manager → Properties → Details → Hardware Ids;

  2. a screenshot of the Driver tab after installing v1.0.0, showing the driver version and provider?

There is no need to reinstall it again yet. These details should show whether the same KMD and GPU revision are actually being used.

The HardwareID is PCI\VEN_1002&DEV_164C&SUBSYS_381A17AA&REV_C2

I noticed that in both drivers’ info files’ “NTamd64” sections the ID is labeled as Renoir, for some reason (can’t upload the png, check it yourself)

Try enabling csm/legacy support

The system is UEFI-exclusive. The fact that I successfully installed Win7 on this is already a miracle, I guess? All the kudos to Sevoos, by the way - they’ve really helped me out with that.

I also try using pure uefi mode ,the same error.I’m investigating the issue

Code 43 is usually because DxgkDdiStartDevice() CB of KMD failed. We can debug it with windbg.

any updates on this?

We made it work on 5850u,5500u,5825u,on win7and win8,it perform differently,so there are so many patches for different ids and system

No problem, can you send me the 5500u driver?

It is on github .My post has include it. v1.0.0 not perfect but works

can you check issues on the github repository? EAZYBLACK has the same issues as me when i used 8.1 uefi only and i have 5500U.

Pure uefi is not supported. Csm must be enabled

Thank you so much. You made my HP Gaming Pavilion 15-ec1003nq from a pain to use win7 system with external monitor (i had to hook it up to a tv, since i didnt have an actual monitor) to a somewhat usable and comfortable win7 system with internal display and apu.

I do need to note a few issues I experience with this:

1. Installing the driver will still result in a white screen. On startup, the screen will also turn off like 5-10 seconds after the white screen. To get display, i need to hook it up to an external monitor and enable Aero, and then reenable the AMD driver or switch projecting to second screen only and back to extend. Then after doing these, on startup when it goes to working display after reaching desktop, the screen wont turn off anymore. If you read carefully, you would understand that for me it only shows working display when Aero is enabled. If I get for example to logon/lock screen or get a UAC prompt (with Secure Desktop enabled), it will white screen again.

  1. It’s usable for the most part, but when it switches to a white screen (for example when I get UAC prompt, turn off Aero, display flickers, I go to a full screen app/game or I go to lock screen), the driver will sometimes immediately switch to a black screen and lock up the system as if the graphics device is faulty (which is not btw, but AMD drivers usually do that when graphics fails. i had that happen on a radeon hd 6750m and hd 4650m that went bad). Can’t do anything other than force shut down the system from the power button then power on again.

So far though, this is amazing progress and I’m looking forward to seeing this improve. As for some of my issues, i have no clue whether its the driver, or the fact that my APU uses 512 MB of VRAM, which I’m not looking forward to messing around with hidden BIOS settings for such stuff. I had a HP Gaming Pavilion 15-ec2000nq with Ryzen 7 5800H and RTX 3050 Ti, which ended up BIOS-bricked by the fact that I attempted to disable Above 4G Decoding just because i wanted to get CSMWrap working properly, and repair stores failed to fix the BIOS and motherboard got fried from the soldering job as well.

Install the driver:https://github.com/hrx114514x/win7-amd-apu-scanout-fix
than do not restart the system, repalce this file I post here to the C:\Windows\System32\drivers, reboot the system.Also can replace it use PE system.
https://www.mediafire.com/file/ithi1ihobhpcy9l/amdkmdag 1636.7z/file

For 5000 series APU, can use this one,not need csm : AMD Radeon-iCafe-21.11.1-Win7-64Bit-APU-Fix4

Will this fix random system freezes and restarts on windows 8.1 too?
I have a UEFI only laptop, yes i know this driver is legacy only but it worked on windows 8.1, i tried the one from github and installed manually
It worked fine, i got to desktop, but it started freezing and rebooting system when browsing registry entries or opening file explorer
i attached a network kernel debugger (KDNET) and it didnt catch anything, so its a firmware reset or something.
I have set the iGPU Vram to 2GB

try to make the vram to 512mb and see