I have a Radeon Pro W5700. It has DSC support in macOS 10.15.7 but I'm not sure about Windows 10. Which drivers for Windows 10 support DSC for the W5700?
I have four DisplayPort 1.4 devices that can support DSC:
1) Apple USB-C Digital AV Multiport Adapter (2 lanes DisplayPort 1.4 with DSC)
2) Club-3D CAC-1085 (4 lanes DisplayPort 1.4 with DSC)
3) CalDigit SOHO (uses the Synaptics VMM5210) (2 lanes DisplayPort 1.4, with MST, DSC)
4) Delock 87737 (uses the Synaptics VMM5330) (4 lanes DisplayPort 1.4, with MST)
5) HP Thunderbolt Dock G2 (uses the Synaptics VMM5330) (2 lanes (via USB-C) or 4 lanes (via Thunderbolt) DisplayPort 1.4, with MST)
In macOS, I can only get #1 and #3 to do DSC. I can tell when DSC is enabled by using the AGDCDiagnose command. It shows the DPCD registers, connection bandwidth (link rate and lanes), and pixel color space and format.
For #2, I don't have a HDMI 2.1 display to test DSC.
The last three are MST hubs. The Delock is supposed to support DSC but it doesn't seem to get enabled. DPCD reports no DSC support which might mean that it doesn't have the latest firmware. The HP when I bought it said it was "DSC Ready" which suggests that a firmware update is required to enable DSC. I haven't tried the latest firmware yet.
#1 might having working DSC in Windows, since it says it's outputting 4K 60Hz 135KHz at 4:4:4 8bpc which I believe is an HDMI 2.0 timing of 594 MHz (based on the horizontal scan rate reported by the display) which cannot be done with two lanes of HBR3 without DSC (the max would be 540 MHz). But I don't see any explicit indication of DSC support in the AMD Radeon Software. The AMD Radeon Software reports the pixel clock as 593400 kHz which seems strange (should be 594 Hz).
So maybe the Windows drivers support DSC for SST but not MST? The CalDigit SOHO can also do HDMI 2.0 at 4K 60Hz 135KHz at 4:4:4 8bpc. So maybe DSC works for MST as well in that case at least. But I can't get 4K60 10bpc from the DisplayPort port of the CalDigit. I can select 10bpc but after a second it goes back to 8bpc. I tried creating a custom resolution 3840x2160 60Hz CVT-RB timing but if I try to select anything greater than 6bpc, it goes back to 6bpc. 8bpc should be doable at 533.25MHz even without DSC.
The Radeon software has poor support for DSC, MST, and multi-tile displays. They may work, but it doesn't show that they are being used. Intel Graphics Control Panel has an option to show MST topology at least. And for some reason the Radeon software doesn't have an option to change the resolution and refresh rate - I have to switch to a different app to change the resolution and refresh rate. And I don't understand why enabling GPU scaling removes the Color Depth and Pixel Format options.
I am trying to prove that the Delock doesn't support DSC like its product page says it should, but I can't get DSC to work properly with the CalDigit to prove the problem is not the GPU.
Probably the one person at AMD Forums that can answer your question concerning AMD Professional GPU cards is @fsadough .
I have a Radeon Pro W5700. It has DSC support in macOS 10.15.7 but I'm not sure about Windows 10. Which drivers for Windows 10 support DSC for the W5700?
1) Apple USB-C Digital AV Multiport Adapter (2 lanes DisplayPort 1.4 with DSC)
2) Club-3D CAC-1085 (4 lanes DisplayPort 1.4 with DSC)
3) CalDigit SOHO (uses the Synaptics VMM5210) (2 lanes DisplayPort 1.4, with MST, DSC)
4) Delock 87737 (uses the Synaptics VMM5330) (4 lanes DisplayPort 1.4, with MST)
5) HP Thunderbolt Dock G2 (uses the Synaptics VMM5330) (2 lanes (via USB-C) or 4 lanes (via Thunderbolt) DisplayPort 1.4, with MST)
The AMD Radeon Software reports the pixel clock as 593400 kHz which seems strange (should be 594 Hz).
But I can't get 4K60 10bpc from the DisplayPort port of the CalDigit.
Right now I'm not using the hubs and adapters for anything. The W5700 has no HDMI outputs, so the HDMI functionality of adapters #1, #2, and #3 would be useful. The W5700 has plenty of DisplayPort outputs for DisplayPort functionality. The MST functionality is not useful because the W5700 already has 6 outputs and most GPUs can't do more than that even with MST (in other words, an MST hub won't let you connect two displays to a single port if the other 5 ports already have a display).
Basically, I am using the W5700 with these adapters to test situations where the DSC and MST support would be most useful - such as a PC laptop containing an AMD Navi dGPU with limited display output ports.
My test displays (none have DSC):
1) Acer XV273K - DisplayPort 1.4 4K120, also has a dual cable 4K144 mode, HDMI 2.0 4K60. Each input port is connected and operational even while the current input is set to a different port.
2) Dell UP2715K - DisplayPort 1.2 5K60 dual cable display
3) Dell P2415Q - DisplayPort 1.2 and HDMI 2.0 4K60 (only testing DisplayPort of this one)
I've included two AMDZ reports at https://we.tl/t-tN1bKa1ODx (filename amdz-joevt.zip)
report 1: W5700 Mini DisplayPort -> Delock -> XV273K DisplayPort, XV273K DisplayPort, P2415Q DisplayPort - all running at 4K30 8bpc but with DSC I would expect all three to be able to do 60Hz 8bpc.
report 2: W5700 Mini DisplayPort -> Delock -> XV273K DisplayPort 4K60 12bpc; W5700 USB-C -> CalDigit -> XV273K DisplayPort 4K60 8bpc 594MHz but with DSC I would expect the CalDigit to allow at least 10bpc (but I think 8bpc 594Mhz requires DSC already)
In either case, the Dell UP2715K is also connected (dual cable mode 5K60 10bpc).
You say you get 4K60Hz 10bpc but is that 4:4:4/RGB from a USB-C hub having two lanes of DisplayPort 1.4?
What method do you recommend for getting the EDIDs? Windows methods seem to be unreliable - they sometimes only get 1 or 2 blocks instead of all the blocks. AGDCDiagnose in macOS will get all the blocks (the Apple Pro Display XDR can have 7 blocks depending on the situation).
Keep in mind for DSC you need either DP 1.4 and up or HDMI 2.1 and up. I never tested a USB-C hub but DP 1.4
EDID: Radeon Pro Settings => Settings => Display => Adjust EDID Settings => Open Radeon Pro Settings=> Select the proper Connection => Export EDID
I have uploaded EDIDs for 3 of my displays to:
https://we.tl/t-wcvLvwLCCM
The P2415Q has a HDMI 2.0 and DP 1.2 input.
The XV273K has two HDMI 2.0 and two DP 1.4 inputs (not DSC) but I think I only used three of the inputs.
The UP2715K has two DP 1.2 inputs.
I think what would be more useful than EDID is a dump of the DPCD registers for each DisplayPort device (MST Hub and display).
All three of my MST hubs are DisplayPort 1.4. At least one of them (the CalDigit) supports DSC. An MST Hub can convert a fast and narrow DisplayPort MST signal (HBR3 x2) to a slow and wide DisplayPort SST signal (HBR2 x4) (like a PCIe switch can convert PCIe 3.0 x4 to PCIe 2.0 x8 or x16). An MST Hub that supports DSC can take compressed input and decompress it for a display that does not support DSC. With DSC, a three port 4 lane DisplayPort 1.4 MST Hub can output three 4K60 8bpc DisplayPort 1.2 signals (38 Gbps total; 48 Gbps for 10 bpc - I don't know if DSC is good enough to allows 10 bpc for the three 4K60 displays). Without DSC, the limit is less than the input (HBR3x4 = 25.92 Gbps) - the limit allows two 4K60 8bpc displays (25.6 Gbps).
The CalDigit only has a HBR3x2 input = 12.96 Gbps because it's a USB-C hub that supports USB 3.x (there exists USB-C hubs that support USB 2.0 only and therefore have 4 lane DisplayPort input). With DSC, the CalDigit should be able to do two 4K60 8bpc displays (25.6 Gbps; 10 bpc requires 32 Gbps which exceeds the max allowed by a 2:1 compression ratio but is still less than 3:1 compression ratio but I don't think DSC on MST Hub can do 3:1? - I'm not even sure about 2:1, at least in the case of a MST hub). The product page doesn't mention DSC. Without DSC, two 4K30 8bpc displays can be supported (12.6 Gbps).
https://www.synaptics.com/products/video-interface-ics
https://uploadcdn.oneyac.com/attachments/userfile/b4/13/1593672494627_4765.pdf
Both are Navi boards W5500and W5700 support DSC.
I cannot comment on DSC support on the MST hubs, specially CalDIGIT claiming to be able to convert non-DSC to DSC. Please contact their support line for further investigation. We do not validate the functionality of MST hubs.
DSC and MST are part of the DisplayPort 1.4 spec. Do you not support both those features of the spec?
In macOS 10.15.7, I can't seem to get 10 bpc and DSC to work at the same time. macOS doesn't have a bpc option but the HDR option that it does have will use 10bpc. Since I can't use 10bpc with DSC, the only other way to increase bandwidth to force the use of DSC is to increase the number of pixels per second - either by using a higher resolution or a higher refresh rate. The W5700 can do 4K 114Hz 8bpc RGB (HBR3 x4) from the CalDigit SOHO DisplayPort output using DSC through the input (HBR3 x2).
I went back to Windows, to try the same thing. There is some strange behavior for various 3840x2160 refresh rates. AMD Radeon Software Custom Resolutions only allows 10 custom resolutions which makes testing of different refresh rates difficult. Plus it applies the changes after every change which causes the screen to flash so it takes 5 seconds to make each change. SwitchResX in macOS is a much better experience - changes don't take affect until applied manually so they can be edited quickly.
Below is a list of behaviours for a XV273K connected to DisplayPort output of CalDigit SOHO connected to USB-C port of W5700:
built-in timings:
23Hz, 24Hz, 29Hz 297Mhz; 30Hz 263MHz: 6, 8, 10, 12bpc all work.
50Hz, 59Hz, 60Hz 594MHz: 6bpc and 8bpc works; 10bpc goes to 8bpc.
CVT-RB custom timings:
25Hz 219MHz - 57Hz 506MHz: 6bpc works; 8bpc, 10bpc, and 12bpc goes to 6bpc.
58Hz 515MHz - 68Hz 607MHz: 6bpc works; 8bpc and 10bpc goes to 6bpc.
69Hz 616MHz - 76Hz 681MHz: 6bpc works, 8bpc goes to 6bpc.
77Hz 690MHz - 83Hz 746MHz: 8bpc black screen.
84Hz 755MHz - 115Hz 1049MHz: 8bpc vibrating screen (image moves vertically up and down a few pixels rapidly)
116Hz 1059MHz: not listed.
So it seems that the Windows AMD driver can do DSC with the MST Hub but there are issues with the 6bpc refresh rates, the black screen refresh rates, and the vibrating screen refresh rates.
I was able to update the firmware of the HP Thunderbolt Dock G2 (requires non-DCH Thunderbolt driver). This enables The DSC capability of its internal 3 port DisplayPort 1.4 MST Hub. I can connect the HP Thunderbolt Dock G2 via USB-C to the W5700. This means it uses two lanes of HBR3 like the CalDigit SOHO and the 4K refresh rates have the same behavior as listed above.
I can enable a four lane HBR3 connection between the HP Thunderbolt Dock G2's MST Hub and the W5700 using a GC-TITAN RIDGE. The black screen refresh rates are no longer black screen. But I still can't do custom refresh rates at anything other than 6bpc... Maybe I need to use CRU to create custom resolutions (but I think CRU limits the max number of EDID extension blocks so it may be inefficient for testing many custom refresh rates).
A four lane 3 port DisplayPort 1.4 MST Hub with DSC should be able to do three 4K60 displays. I think this works. I had issues (maybe DisplayPort link training is not working will with this chain of devices: W5700, GC-TITAN RIDGE, HP Thunderbolt Dock G2 internal MST Hub, 3 displays; which causes Radeon Software to timeout/crash sometimes) but restarting seems to make it work better.
I still need to convince Delock that my 87737 doesn't have the firmware required for DSC support - otherwise I would use that for four lane HBR3 MST DSC tests.
All tests use the 20.Q4 2021-02-05 drivers.
DSC and MST are part of the DisplayPort 1.4 spec. Do you not support both those features of the spec?
Yes we comply with DP1.4 specifications. Please read my previous reply carefully. Your issue is related to MST hubs manufactured by various third-party companies.
I cannot comment on DSC support on the MST hubs, specially CalDIGIT claiming to be able to convert non-DSC to DSC. Please contact their support line for further investigation. We do not validate the functionality of MST hubs.
I don't understand your argument about not validating MST functionality because hubs are manufactured by third-party companies. You don't say the same about displays, do you? I'm sure testing has been done in the past with various displays and MST hubs.
My tests in my previous post confirm that the CaDigit and HP hubs convert DSC input to non-DSC output (at least given the info provided by the Radeon Software and the info in Windows: "Settings" -> "Display" -> "Advanced display settings"). My comments apply to the Radeon driver's ability to output the correct signals. It appears that the Windows driver does support DSC+MST functionality but has issues with some refresh rates in combination with some MST hubs. Maybe you can tell by the ranges of pixel clocks if there are edge cases where the driver may be making an incorrect decision. I wonder if the Windows driver sends an SST or MST signal to an MST hub when only one display is connected? That could make a difference.
I removed the MST hubs to verify the issues are MST or not MST related. I tried all my custom resolutions (57Hz, 68Hz, 76Hz, 83H, 115Hz, 116Hz) created using the Radeon software. They all work (no black or vibrating screen) but they all only allow 6bpc as before. If I select 8bpc, 10bpc, or 12bpc, it goes back to 6bpc. The native timings (including 120Hz) allows 6bpc and 8bpc as expected. 120Hz also shows a 10bpc and 12bpc modes but if they're selected, it goes back to 8bpc. They can be used after 4:2:2 is first selected (what might be cool is if an option (like bpc) that requires a change in another option (pixel format or refresh rate) is displayed in a different color). All bpc can be used when the refresh rate is the native 60Hz. So there is some issue with custom resolutions that is not MST related.
I guess I could try using CRU to create the custom resolutions to see if they behave better than the ones created in the Radeon Software.
Why would we need to validate the MST functionality of a MST Hub using the W5700, which has 6x display outputs? You won't get more than 6x displays regardless how many monitors and hub you connect to the card.
You said you removed the MST hub and have issues to get the proper bpp. In that case I can assist you.
Feel free to submit a support ticket:
https://www.amd.com/en/support/contact-email-form
I figure all Navi cards will have similar MST code and behavior so if there's a problem with the W5700 then there is likely a problem with a 5500M or whatever that does not have 3 DisplayPort outputs and that such problems should be reported. I'm sorry I can't contribute my MST hub experiences because my GPU has too many ports.
1, 2) I've uploaded amdz and EDID to https://we.tl/t-GZLiGEvdSK
amdz doesn't list custom resolutions. The 60 Hz timing is not custom so it allows 6bc, 8bpc, 10bpc, and 12bpc. The 57 Hz timing is a custom resolution created by me using the Radeon Software - Only the 6bpc option works - selecting the other 3 options just goes back to 6bpc.
3) no adapters - a DisplayPort 1.4 cable is used (Club 3D CAC-2068)
4) Acer XV273K - two DisplayPort 1.4 ports (no DSC) and two HDMI 2.0 ports; supports 4K 120Hz; can also scale down higher resolutions such as 5K, 6K, and 8K; has a dual cable 4K 144Hz mode. Each port and mode has a different EDID but I included only the EDID for the mode and DisplayPort port that I am testing.
I'll do the support ticket thing.
The display supports arbitrary resolutions and refresh rates. All my tests are with the 4K (3840x2160) resolution. RGB. 6 bpc works for non-custom and custom resolutions/refresh rates. 8, 10, 12 bpc only works for non-custom resolutions/refresh rates. For my tests, I used 60Hz from the non-custom timings and 57Hz for a custom timing (though any refresh rate used in a custom timing will have the same problem).
I am using the Mini DisplayPort to DisplayPort adapter that came with the W5700 (comes with only two - can they be bought separately?). Since I am getting an image and the Radeon Software says it's connected with 8.1 Gbps 4 lanes, then it means there's probably no problem with the cable/adapter (the cable and the adapter do not modify the EDID or capabilities of the GPU or display).
I went to the driver page for the W5700. It shows Enterprise 20.Q4 and Adrenalin 21.2.2. I chose Adrenaline because it's newer. The page also says 21.Q1 will be ready later so maybe I'll switch then. There isn't any info on the this page that helps me decide which driver to choose (though I get the impression that Enterprise gets more testing but I don't know if that makes a difference since more people probably use Adrenaline). The release notes for 20.Q4 have this item which is interesting "EDID management has moved from Radeon Pro Advanced Settings to Radeon Pro Settings, and can be located under the Display tab." Seems silly that in the Adrenaline driver there's a separate app to do EDID management. Still, in either case, I have to use a separate app to change resolution and timing which is not convenient so there's still improvements that can be made (or is this a requirement of DCH drivers?)
I suppose a new VBIOS would be interesting. Is there a change list describing the differences? I'll send a PM.
I am able to connect displays to Intel and W5700 simultaneously so I don't think the problem is there. Having to uninstall the Intel Graphics driver is not convenient but I guess it will be interesting to know if it has an effect so I'll give it a try. But aren't AMD and Intel drivers supposed to work together, especially for features like XConnect?
First I'll uninstall Intel. Test Adrenaline driver. Then use DDU to remove any Nvidia and AMD stuff and test Enterprise driver.
How do I send a PM in this support forum?
Well, I didn't get the answer to my question regarding desired resolution, pixel format, refresh rate and so on. I emulated your EDID and I can get even 12bpc using 4K@60Hz RGB444
FYI: We do not support co-existence with Intel drivers.
You have 6x display outputs on W5700, why would you need to use Intel Onboard Graphics? How many monitors are you planning to use?
I misread the question. You wanted me to pick a single resolution/refresh rate/pixel format. I basically said I wanted all of them (because GPUs are supposed to be able to do that - within the limits of the GPU and display). You can ignore that and pick one of the the examples I gave such as 4K 57Hz RGB 8bpc.
Thanks for trying to reproduce my problem.
In your test, you didn't show that you were using a custom resolution such as 57Hz. You might ask why I want 57Hz when 60Hz works fine (I've already said that 12bpc 4K@60Hz RGB444 works). The answer is that 57Hz is an example, and that the problem exists for all custom refresh rates. Since 57Hz requires less bandwidth than 60Hz, one can conclude that it should be able to use all the bpc options (6,8,10,12) that 60Hz can but I'm only able to get 6bpc with 57Hz.
You don't support co-existence with Intel drivers. What about laptops and eGPUs? Doesn't XConnect depend on Intel GPU existing? So that a Radeon eGPU can draw to the laptop's display?
I might want Intel graphics to test Intel graphics stuff. My motherboard has a Thunderbolt port that only connects to Intel graphics so I need Intel graphics to test Thunderbolt DisplayPort stuff. Or I might want Intel graphics to test AMD stuff - for example I can have a display connected to Intel and do stuff with a display connected to AMD and if AMD produces a black screen then I can use the Intel display to make changes. There might be other reasons to have Intel graphics, such as Quick Sync (but I don't know much about that or how it compares to AMD solutions).
You ask why I want to use stuff like MST, DSC, or Intel with W5700 and my answer is basically because they exist. You can use your imagination and maybe come up with better reasons if it helps get to the problem. If I don't have a good enough reason, maybe someone else will and your help can help them.
Here's a couple examples for why one would want custom resolutions:
1) If I have a DisplayPort to VGA adapter, I will want to use the max refresh rate for a resolution - this usually requires creating custom resolutions.
2) If I have a 5K display like the LG UltraFine 5K display (which can accept USB-C input) and I don't have a Thunderbolt 3 add-in card or a Thunderbolt controller with two DisplayPort inputs, I can still get 5K without Thunderbolt but I need a custom resolution to do that and I'll want to find the max refresh rates that can do 8bpc and 10bpc (I think it's like 39Hz for 8bpc because there's a ≈600MHz pixel clock limit).
I didn't test either of those two examples, so we'll just stick with the XV273K. I could test the first. For the second, I don't have that display but I could do the same emulated EDID test that you did except the emulation wouldn't show the 600MHz pixel clock limit of the display. Actually, I have a Dell UP2715K but I haven't tried 5K with a single DisplayPort 1.2 cable before.
I still need to do the Intel removal and Enterprise driver tests. How do I do the PM to get the firmware update?
OK, now I get it. What you are trying to say is that "custom resolution is locked at 6bpc". This is a known issue and we are working on it.
I received from Delock a new version (5.04.135) of the firmware for my Delock 87737 MST Hub. They didn't include an updater app, so I used the fwupdtool in Linux. Now the Delock 87737 supports DSC like the MST hubs in the HP Thunderbolt Dock G2 and CalDigit SOHO. I can connect three 4K 60Hz 8bpc RGB displays. I found a couple problems:
1) Missing 5K or 8K support for MST hub:
I used CRU to create some custom timings for the XV273K since Radeon Software's custom resolutions are broken. I can output 8K 30Hz and 5K 60Hz 8bpc RGB directly from the W5700 to the display but if the display is connected to an MST Hub (Delock or HP), only 4K or lower options appear (even if the display is the only one connected to the MST Hub).
I can output 5K and 8K through an MST Hub using macOS so the W5700 should be able to do at least one 5K or 8K display through an MST Hub in Windows. Maybe macOS works because it's sending an SST signal? I don't have an Nvidia RTX (supports DSC) to compare and to verify that dual 5K displays connected to the MST Hub can work.
2) Missing DSC fall back for 10bpc:
I have a Dell UP2715K which is a dual cable DisplayPort 1.2 display (each cable does 2560x2880). I can connect the cables directly to the W5700 and get 5K 60Hz 10bpc. If I connect the two cables to a DisplayPort 1.4 MST Hub then the max bpc is 8bpc (no DSC). If I try to switch to 10bpc, the Radeon Software lowers the refresh rate to 30Hz instead of enabling DSC. When changing an option, the order of things to try to fit the connection limits is:
1) no DSC, current resolution, current chroma sub sampling, current bpc, current refresh rate
2) enable DSC (off -> on; for an MST Hub, I guess this should affect all streams unless it can be made a separate option for each?)
3) decrease chroma sub sampling (4:4:4 -> 4:2:2 -> 4:2:0)
4) decrease bits per component (16 bpc -> 12 bpc -> 10 bpc -> 8 bpc -> 6 bpc)
5) decrease refresh rate
6) decrease resolution
Basically, lowering the refresh rate should be the last thing it tries.
I know dual cable display from MST Hub works with DSC because my XV273K has a dual cable mode for 4K 144Hz (each cable does 1920x2160 144Hz 12bpc RGB; 45.5 Gbps total) which does work through an MST Hub with DSC at 8bpc (30.3 Gbps total) but I can't get 10bpc to work (37.9 Gbps) even though three 4K 60Hz 8bpc RGB displays work (38.4 Gbps). I'm not sure if that is a problem or if it is the same problem as the Dell UP2715K.
Maybe I'm wrong and the MST Hub can't do DSC and 10bpc at the same time? I should be able to do two 4K 60Hz displays at 10bpc. 10bpc is required for HDR so it would be kind of sad if the DSC functionality doesn't work with HDR. I can do two 4K 60Hz displays with one 8bpc and the other 10bpc = 32.0 Gbps total. That must be using DSC since it's greater than the DisplayPort 1.4 max of 25.92 Gbps. Is it using DSC for one stream but not the other? The Radeon Software does not say if it's using DSC or what the limits of the DSC used by the MST Hub are so I can't see why it's not working.
For the first issue where 5K and 8K don't appear as options, I also tried some lower resolution options such as 3K which appears to have the same problem: changes to a display's EDID using CRU don't appear when the display is connected to an MST Hub instead of directly to the W5700. I'll report that issue to the CRU forum thread and see if there's a workaround.