I have an XV273K connected to a W5700. I applied an EDID override using CRU. The override contains custom timings that are less than the max allowed by the display so they should work without issue. I also tested with an unchanged override where only the display name is changed.
The custom timings in the override are selectable and work when the display is connected directly to the W5700. An EDID override with a changed display name will cause Windows to show the new display name (in Advanced display settings).
If the display is connected to an MST Hub then only the original timings in the EDID are listed and the display name does not show the new name.
I need to use CRU because the Custom Resolutions in the Radeon Pro software are broken - it only allows 10 timings and they only work at 6bpc even if they have a low pixel clock.
The Intel Graphics Driver is able to use the EDID_OVERRIDE whether the display is connected directly or through an MST Hub. That means it's not a problem with Windows.
I checked the registry. CRU appears to be creating an EDID_OVERRIDE for the specific port of the W5700 that the XV273K display is connected to. I can move the XV273K to each port and create a unique EDID for each (different display name for each port). CRU lists the EDID for the current port as active. It also lists the EDIDs for the other 5 ports (not active).
Each port of the W5700 has a different "device instance path" that the display uses (viewable in the Device Manager device properties for the display). The system (and CRU) seems to think that the Device instance path is the same whether the display is connected directly to the W5700 or to a MST Hub connected to the same port. Maybe the AMD driver disagrees with that device instance path when the display is connected to an MST hub?
The device instance path points to the registry under this path:
The device instance path for port 1 is:
The device instance path for port 2 to 6 are similar but replace 1024 with these numbers: 1028, 1032, 1036, 1040, 1044
CRU's EDID_OVERRIDE is under each device instance path at:
Where can I put the EDID_OVERRIDE so the AMD driver will load it when a display is connected to an MST hub?
Name: Windows 10 Pro (UEFI)
Adapter name AMD Radeon Pro W5700
Hardware ID PCI\VEN_1002&DEV_7312&SUBSYS_031E1002&REV_00\6&1309529D&0&00000008
PCI address BUS: 3, DEV: 0, FUN: 0
Driver info 20.45.35.03-210217a-364232E-RadeonSoftwareAdrenalin2020 (27.20.14535.3005) 2-17-2021
Power Registry DisableUVDPowerGatingDynamic=1 DisableVCEPowerGating=0
VBIOS Info version: 017.001.000.049, part number: 113-D1880201-102, date: 2019/11/25 16:54
VRAM size 8176MB (Dedicated memory:8152MB, Shared memory:16320MB)
Resolution: 3840 x 2160, Freq: 60Hz
Manufacturer: ACR Model 6b1 Serial Number 2231406419,week 50 of 2018
EDID version: 1.4
Digital display , 10 bits per primary color channel, DisplayPort interface
Maximum image size: 60 cm x 34 cm
DPMS levels: Off
any of the following: CalDigit SOHO, HP Thunderbolt Dock G2, Delock 87737.
I used Process Monitor.exe to verify that the system does read the EDID_OVERRIDE when it is connected to the MST Hub just like it does when it's connected directly to the GPU. The AMD driver just ignores it in the case of the MST Hub connection.
The new display name shows in the Windows "Advanced display settings" dialog in either case but Radeon Software only shows the new display name in the direct connect case.
Tech support said they were able to reproduce the problem. Will it ever get fixed?
The other bug where Radeon Software created custom resolutions only allow 6bpc has been known for awhile and hasn't been fixed...