Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

fiatlux

macrumors 6502
Original poster
Dec 5, 2007
352
143
My "latest Macs" are a heavily upgraded 2009 Mac Pro (6c CPU, M.2 SSD, USB 3, RX580...) and more recently a 12c 2013 Mac Pro with an eGPU (Vega 56) - both machines with more than enough CPU power, GPU power and RAM for my needs, but I long aspired to upgrade to a nice 5k monitor to replace my aging 30" WQHD monitor which only took dual-link DVI inputs (requiring clunky and expensive adapter on the MP tube).

The LG 5k Ultrafine monitors are relatively pricey and limited to TB3 (and USB-C) inputs so, no really an option for my equipment.

Dell, HP and Philips all used to offer 5k displays which took two DP 1.2 inputs to run at 5k, but they were all quickly discontinued and don't have the best reliability reputation (does the latter explain the former?).

The last option was Iiyama's 5k which appeared to share the same LG Display panel as the iMac and LG monitors and supported 5k with a single DP1.4 input, but with electronics limiting color to 6 bit+FRC and with poor color accuracy reviews. It has recently been EOL'd.

I was about to give up when I started reading reports on DIY 5k monitors made from spare parts sourced from the Internet. I was intrigued and gave it a go. I should warn you that this is a risky enterprise and that you need a bit a faith (you need to source parts from questionable sources without much if any warranty). It also won't be a dirt cheap option - likely much cheaper than a new LG monitor, but still not dirt cheap.

Here is what you need as a minimum:
  1. A 5k panel - there are only two commonly available such panels: the LG Display LM270QQ1 (the one used in 5k iMac) and LM270QQ2 (used in LG Ultrafines). Essentially the same panel in a slightly different delivery - the iMac version coming glued to a shiny glass front the exact same shape as the iMac screen, the other being a plain rectangular panel (semi-matt from the look of the photos).
  2. A 5k driving board - again there seems to be essentially two versions of such board: the R9A18 board which has 2 HDMI 2.0 and 2 DP 1.2 inputs (requiring two DP 1.2 cables to run at 5k/60Hz), and the more expensive R1811 board which as 2 HDMI 2.0, 2 DP 1.4 (one being enough for 5k/60Hz) and 1 USB-C input (with 65W PD). Both boards come with all the necessary panel cables and power supply, but you will have to specify which panel to match.
Both the panel and the board are typically found on aliexpress and eBay. I sourced my panel (an iMac LM270QQ1) from a local eBay reseller to avoid taxes and customs charges, but had to order the board from aliexpress as I specifically wanted the newer and less common R1811 allowing the use of a single DP1.4.

Connecting the two isn't difficult (you have to be careful with those flat cables and thin connectors) and is enough to have a working 5K monitor but, without a proper enclosure, the screen isn't terribly rigid and the whole setup a mess with exposed electronics.

From there you have plenty of options I guess, depending on you DIY skills, but I elected to go for a nice and tidy look, and an option not requiring too much messing around with tools. Having bought an iMac panel, the easiest is to purchase an empty 27" iMac housing - the A1419 version for which the LM270QQ1 is designed to be the "drop-in" replacement screen. The housing is large enough to host the driver board (and even the power adapter if you want). You will have to make sure the display and power cables are correctly connected and routed to the outside (most likely through the memory access panel) before you attach the screen with those pesky sticky strips.

Sourcing a new 27" iMac housing spare part is probably not going to be easy, or affordable, but used parts can often be found on eBay - in various conditions but much cheaper. Note that most often than not the housing will come without a stand, which means another challenge to address.

I wanted to be able to control height and tilt of the monitor anyway, so I pursued the VESA mount option. As you may know, the A1419 does not offer any official solution to install a VESA mount if that option was not selected at purchase time, but it turns out that you can easily remove the original stand hinge mechanism (at least when you have an empty housing), use a A1312 stand hinge mechanism instead and then install the Apple VESA kit which was designed for the older 24"and 27" iMacs and Thunderbolt displays (there are third-party options).

So, in addition to the above panel and board, here is what I needed to get a 5k monitor looking like a VESA-mounted iMac:
  1. An A1419 iMac empty housing
  2. An A1312 hinge mechanism
  3. An Apple VESA Mount adapter
I am quite glad with the end result which looks much better than I feared (but cost a bit more than I hoped as well). I will post pictures once I clean up my desk ;-)

5K/60Hz/10 bit works without any problem on a single DP 1.4 cable with the RX580 or Vega 56, the 4K/30Hz/8 bit over HDMI looks surprisingly nice and crisp (150% size in Windows, similar scaling in macOS), not tested USB-C yet. Colors look very nice, the control board on-screen menu offers the options of native/sRGB/AdobeRGB/P3 color spaces, but I have yet to measure and profile the monitor.

Do not hesitate to ask any question!
 

Brookzy

macrumors 601
May 30, 2010
4,985
5,577
UK
This sounds awesome. I'm now wondering if I could try to make a stripped out iMac into a dumb 5K external display but with a much better look than the UltraFine by following the same process. Following for the pics.
 
  • Like
Reactions: Dmitriy Demidov

fiatlux

macrumors 6502
Original poster
Dec 5, 2007
352
143
This sounds awesome. I'm now wondering if I could try to make a stripped out iMac into a dumb 5K external display but with a much better look than the UltraFine by following the same process. Following for the pics.

In theory, yes, gutting a dead iMac 5k with a good screen, and just adding a control board would work as well. Trouble is, there are not that many dead iMac that still have a pristine screen, and removing the said screen without damaging it is not that easy.
 

joevt

macrumors 604
Jun 21, 2012
6,935
4,235
5K/60Hz/10 bit works without any problem on a single DP 1.4 cable with the RX580 or Vega 56
DisplayPort 1.4 without DSC does not have enough bandwidth for 5K60 10 bpc. You are probably seeing only 8 bpc.
Dual DisplayPort 1.2 has enough bandwidth for 5K60 10 bpc which is why LG and Apple uses that in their displays and iMacs.

macOS does not show the output pixel format (RGB888) - it only shows the framebuffer pixel format (ARGB2101010).

Use the AGDCDiagnose command to see the output pixel format (8 bpc or 24 bpp).
 

kylix7

macrumors newbie
Sep 23, 2020
4
8
fiatlux
Congratulations on the project. I'm going to do the same thing. I'm waiting for the components to arrive. Do you have the photos of the final project?
 

runtime_error0x

macrumors newbie
May 3, 2018
21
1
how did you install the A1312 mechanism? the A1419 has three screws while the A1312 mechanism has 4 and they're in different locations? Debating whether to do this too!
 

jukkhop

macrumors member
Dec 27, 2016
79
60
Needless to say this is pretty damn awesome. Please post some videos and/or pictures.
 

runtime_error0x

macrumors newbie
May 3, 2018
21
1
Update, I attempted this with slight deviations but works well in Windows and MacOS with the new revision of the board. However seems to only work on newer MacBooks (Mine is 2019 16in MacBook Pro). I believe they have to have a certain thunderbolt chipset in order for the new board to work (needs to be in spec with DP 1.4). Reached out to the seller to see if it will work with MacBook Pro 15in 2016 with some workaround
 

shansoft

macrumors 6502
Apr 24, 2011
437
268
How is it possible 5K/60Hz/10bit can be done with single DP 1.4?

DP1.4 bandwidth is 25.92 Gbit/s, and 5K/60/10bit is 27.72 Gbit/s
 

runtime_error0x

macrumors newbie
May 3, 2018
21
1
Probably not using DSC. macOS shows 10 bpc framebuffer but the output is probably 8 bpc. Use AGDCDiagnose command to find out.

Any help finding specifically where it mentions? I ran it but doesn't have a clear "bpc" or "bpp" string in the output (running Catalina)
 

runtime_error0x

macrumors newbie
May 3, 2018
21
1
Post the output.

Something interesting I saw is there's two connections on 1 and 4. Doesn't seem to allow me to attach .txt file. A snippet here


Code:
AGDCDiagnose Version: 4.7.2.2
### Start: GPUWrangler #######################################################
Stats: GPUCAdded:1 GpuAdded:2 Eject:0/f0/fd0/c0 Remove:0/t0 Un:0

gpu 0x5624 flags 0xb2000010 (IG,published,quiet,pubSched,pubArmed) vid.did=8086.3e9b b:d:f=0:2:0 
gpu 0x5624        pci 0x10000037b IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2
gpu 0x5624       agdc 0x1000006dd     /AppleIntelFramebufferController/IntelFBClientControl
gpu 0x5624       gpuc 0x000000000 
gpu 0x5624 agdpclient 0x000000000 
gpu 0x5624      accel 0x1000006d7     /IntelAccelerator
gpu 0x5624      fb0:0 0x1000006d9     /AppleIntelFramebuffer@0

gpu 0x88b4 flags 0xbe000020 (DG,published,driversStarted,hasGPUC,quiet,pubSched,pubArmed) vid.did=1002.7340 b:d:f=3:0:0 
gpu 0x88b4        pci 0x100000294 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/EGP0@0/IOPP/EGP1@0/IOPP/GFX0@0
gpu 0x88b4       agdc 0x100000771     /AMDRadeonX6000_AmdAgdcServices
gpu 0x88b4       gpuc 0x1000006b7     /AMDRadeonX6000_AmdGpuWrangler
gpu 0x88b4 agdpclient 0x100000773     /AMDRadeonX6000_AmdAgdcServices/AppleGraphicsDevicePolicy/AGDPClientControl
gpu 0x88b4      accel 0x100000725     /AMDRadeonX6000_AMDNavi14GraphicsAccelerator
gpu 0x88b4      fb0:0 0x10000073a     /AMDRadeonX6000_AmdRadeonControllerNavi14/ATY,Boa@0
gpu 0x88b4      fb1:1 0x10000073c     /AMDRadeonX6000_AmdRadeonControllerNavi14/ATY,Boa@1
gpu 0x88b4      fb2:2 0x10000073f     /AMDRadeonX6000_AmdRadeonControllerNavi14/ATY,Boa@2
gpu 0x88b4      fb3:3 0x100000744     /AMDRadeonX6000_AmdRadeonControllerNavi14/ATY,Boa@3
gpu 0x88b4      fb4:4 0x10000074a     /AMDRadeonX6000_AmdRadeonControllerNavi14/ATY,Boa@4

### End: GPUWrangler (took 0.109 sec) ########################################

### Start: EFIDisplayInfo ####################################################
Dumping EFI data for GPU Path IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2
Dumping EFI data for GPU Path IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/EGP0@0/IOPP/EGP1@0/IOPP/GFX0@0
GraphicsDisplaySetup:
Version 65536
ConnectorNumber 1
AvailableLanes 4
AvailableBitRate 5400
DisplayRestoredFromNVRAM 0
HibernateWake 0

DP Configuration
Version: 65537
Mode: 0
BitRate: 2
Lanes: 4
CommonVoltage: 0
CommonPreEmphasis: 0
CommonPostCursor2: 0
EnhancedFraming: 1
Scrambling: 1
AlternateScramblerSeedReset: 1
OtherBitRateInMegaBitsPerSecond: 0

Framebuffer Timing
TimingIndex: 0
Encoding: 1
BitDepth: 3
PixelClock: 373510000
HActive: 3072
VActive: 1920
HBlank: 80
HBorderLeft: 0
HBorderRight: 0
VBlank: 55
VBorderTop: 0
VBorderBottom: 0
HSyncStart: 8
HSyncWidth: 32
HSyncPositive: 1
VSyncStart: 41
VSyncWidth: 8
VSyncPositive: 0
Interlace: 0

Framebuffer resolution
Version: 65536
Width: 3584
Height: 2240
Stride: 0
Format: 1
Rotation: 0
Reverse: 0
### End: EFIDisplayInfo (took 0.108 sec) #####################################

### Start: Mux ###############################################################
System is in Dynamic mode: Better Battery Mode set, using Discrete
gMUX Status: Version: 5.0.0, 3D:2, FB:6
LVDS: EG [DDC: None], DP: IG [Disabled] [0, 0]
  IG: FB0:off FB1:N/A FB2:N/A FB3:N/A FB4:N/A 3D:idle HDA:N/A  Power:on 
  EG: FB0:on  FB1:on  FB2:off FB3:off FB4:off 3D:idle HDA:busy Power:on 
Policy:on GPUPowerDown:on Backlight Control:on Recovery:on
Power State Machine IG: 0 EG: 0
StateMachine: 0 [AGC_GPU_IDLE]
Switch Statistics: Switches 40 Errors 0 CRC 00000000
  0000: 0000258 ms       0016: 0000279 ms 
  0001: 0001043 ms       0017: 0001063 ms 
  0002: 0000217 ms       0018: 0000215 ms 
  0003: 0000894 ms       0019: 0001337 ms 
  0004: 0000248 ms       0020: 0015604 ms 
  0005: 0000887 ms       0021: 0001104 ms 
  0006: 0000256 ms       0022: 0000480 ms 
  0007: 0001210 ms*      0023: 0001092 ms 
  0008: 0000203 ms       0024: 0000294 ms 
  0009: 0000660 ms       0025: 0001206 ms 
  0010: 0000210 ms       0026: 0000366 ms 
  0011: 0001278 ms       0027: 0001198 ms 
  0012: 0009958 ms       0028: 0000341 ms 
  0013: 0001225 ms       0029: 0001093 ms 
  0014: 0000274 ms       0030: 0000278 ms 
  0015: 0001059 ms       0031: 0000413 ms 
Register Dump:
  00: 00 00 00 00 00 00 00 00 
  08: 00 00 03 00 00 00 00 00 
  10: 11 03 00 00 ff 00 00 00 
  18: 00 00 00 00 00 00 00 00 
  20: 00 e6 00 00 00 00 00 00 
  28: 00 00 00 00 00 00 00 00 
  30: 7f 00 ff 00 61 61 ff 00 
  38: ff ff 00 00 00 01 01 03 
  40: 01 10 00 00 00 00 00 00 
  48: 00 00 00 00 00 00 00 00 
  50: 03 7f 1f 00 00 00 00 00 
  58: 00 00 00 00 00 00 00 00 
  60: 00 00 00 00 00 00 00 00 
  68: 00 00 00 00 00 00 00 00 
  70: 00 00 00 00 00 00 00 00 
  78: 00 00 00 00 00 00 00 00 
### End: Mux (took 0.161 sec) ################################################

### Start: Ports #############################################################
### Start: AGDC[1] 0x100000703 ###############################################
IOService:/IOResources/AppleGPUWrangler
Vendor: Apple [0000106b]: AppleGPUWrangler [8 10000] (0)
### End: AGDC[1] 0x100000703 (took 0.001 sec) ################################

### Start: AGDC[2] 0x100000688 ###############################################
IOService:/AppleACPIPlatformExpert/GPUC/AppleMuxControl/AGDCMuxClientControl
Vendor: AppleMuxControl [0000106b]: AppleMuxControl [9 10000] (0)
### End: AGDC[2] 0x100000688 (took 0.000 sec) ################################

### Start: AGDC[3] 0x1000006dd ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl
Vendor: AppleIntelFramebufferController [0000106b]: IntegratedGPU [1 10000] (0)
FBs: 1, Ports: 0x2 mst:0 ddc:0 aux:0x2, Streams: dp:0 dvi:0 mst:2 max:3
Framebuffers:
* 0: Address:  1.0 Stream: Not Associated Group: 0   Online                     Fixed    
Port Capabilities:
* 1: AUX
Connections:
* 1: 
## EDID Dump Port 1 - Start ## 
// EDID Dump: device, 0 bytes, Invalid
uint8_t EDID_@@@_0_0[] = {
};
## EDID Dump Port 1 - End ## 
### End: AGDC[3] 0x1000006dd (took 0.125 sec) ################################

### Start: AGDC[4] 0x1000006b7 ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/EGP0@0/IOPP/EGP1@0/IOPP/GFX0@0/AMDRadeonX6000_AmdGpuWrangler
Vendor: AMD [00001002]: GPURoot [7 30000] (0)
### End: AGDC[4] 0x1000006b7 (took 0.000 sec) ################################

### Start: AGDC[5] 0x100000771 ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/EGP0@0/IOPP/EGP1@0/IOPP/GFX0@0/AMDRadeonX6000_AmdAgdcServices
See 0x100000773
### End: AGDC[5] 0x100000771 (took 0.001 sec) ################################

### Start: AGDC[6] 0x100000773 ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/EGP0@0/IOPP/EGP1@0/IOPP/GFX0@0/AMDRadeonX6000_AmdAgdcServices/AppleGraphicsDevicePolicy/AGDPClientControl
Vendor: AMD [00001002]: DiscreteGPU [2 30000] (0)
FBs: 5, Ports: 0x3e mst:0x3c ddc:0x3e aux:0x3e, Streams: dp:5 dvi:5 mst:5 max:5
Framebuffers:
* 0: Address:  1.0 Stream: Enabled  Group: -1  Online   Assoc'd  MayGroup Fixed  
* 1: Address:  4.0 Stream: Enabled  Group: -1  Online   Assoc'd  MayGroup        
  2: Address:  0.0 Stream: Not Associated Group: -1                    MayGroup        
  3: Address:  0.0 Stream: Not Associated Group: -1                    MayGroup        
  4: Address:  0.0 Stream: Not Associated Group: -1                    MayGroup        
Port Capabilities:
* 1: AUX, DDC
  2: AUX, DDC, MST
  3: AUX, DDC, MST
* 4: AUX, DDC, MST
  5: AUX, DDC, MST
Connections:
* 1: [DP 1.2 4 x HBR2]      Status: [4 x HBR2 7777]      caps [features 0x103141f, p_encoding 0xd]             Sink   OUI:000-016-250 eD?gba [101-068-021-103-098-097] HW Version: 1    FW Version: 9.10
  2:
  3:
* 4: [DP 1.2 4 x HBR2]      Status: [4 x HBR3 7777]      caps [features 0x101141b, p_encoding 0xd]      DP     Branch OUI:000-224-076 Dp1.2? [068-112-049-046-050-000] HW Version: 0    FW Version: 0.0
  5:
## Register Dump Port 1 - Start ##
  Reg: 000000: 12 : DPCD_REV: 1.2
  Reg: 000001: 14 : MAX_LINK_RATE: HBR2
  Reg: 000002: c4 : MAX_LANE_COUNT: 4, TPS3_SUPPORTED: 1, ENHANCED_FRAME_CAP: 1
  Reg: 000003: 41 : MAX_DOWNSPREAD: 0.5% down, NO_AUX_HANDSHAKE_LINK_TRAINING: 1
  Reg: 000004: 00 : NORP: 0
  Reg: 000005: 00 : DOWNSTREAMPORT_PRESENT: DWN_STRM_PORT_PRESENT: 0, DWN_STRM_PORT_TYPE: [0] DisplayPort, FORMAT_CONVERSION: 0, DETAILED_CAP_INFO_AVAILABLE: 0
  Reg: 000006: 01 : MAIN_LINK_CHANNEL_CODING: ANSI 8B/10B
  Reg: 000007: 80 : DOWN_STREAM_PORT_COUNT: DWN_STRM_PORT_COUNT: 0, MSA_TIMING_PAR_IGNORED: 0, OUI: 1
  Reg: 000008: 02 : RECEIVE_PORT0_CAP_0: LOCAL_EDID_PRESENT: 1, ASSOCIATED_TO_PRECEDING_PORT: 0
  Reg: 000009: 00 : RECEIVE_PORT0_CAP_1: BUFFER_SIZE: 32
  Reg: 00000a: 00 : RECEIVE_PORT1_CAP_0:
  Reg: 00000b: 00 : RECEIVE_PORT1_CAP_1:
  Reg: 00000c: 0f : I2C Speed: 1Kbps 5Kbps 10Kbps 100Kbps
  Reg: 00000d: 0b : eDP_CONFIGURATION_CAP: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 1, FRAMING_CHANGE_CAPABLE: 1
  Reg: 00000e: 00 : TRAINING_AUX_RD_INTERVAL: 100 us, EXTENDED_RECEIVER_CAPABILITY_FIELD_PRESENT: NO
  Reg: 00000f: 00 : ADAPTER_CAP: FORCE_LOAD_SENSE_CAP: 0, ALTERNATE_I2C_PATTERN_CAP: 0
  Reg: 000020: 00 : FAUX_CAP: FAUX_CAP: 0
  Reg: 000021: 00 : MSTM_CAP: MST_CAP: 0
  Reg: 000022: 00 : NUMBER_OF_AUDIO_ENDPOINTS: 0
  Reg: 000060: 00 : DSC Support: 0
  Reg: 000061: 00 : DSC Algorithm revision: 0
  Reg: 000062: 00 : DSC RC Buffer Block size: 0
  Reg: 000063: 00 : DSC RC Buffer size: 0
  Reg: 000064: 00 : DSC slice Capabilities 1 : 0
  Reg: 000065: 00 : DSC Line buffer bit depth: 0
  Reg: 000066: 00 : DSC Block prediction support: 0
  Reg: 000067: 00 : DSC Maximum bit per pixel: 0
  Reg: 000068: 00 : DSC Maximum bit per pixel: 0
  Reg: 000069: 00 : DSC Decoder color format capabilities: 0
  Reg: 00006a: 00 : DSC decoder color depth capabilities: 0
  Reg: 00006b: 00 : DSC Peak Throughput: 0
  Reg: 00006c: 00 : DSC Maximum Slice width: 0
  Reg: 00006d: 00 : DSC Slice capabilities 2: 0
  Reg: 00006e: 00 : Reserved: 0
  Reg: 00006f: 00 : DSC Bits per pixel increment: 0
  Reg: 000090: 00 : FEC Capability: 0x0
  Reg: 000080: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000081: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000082: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000083: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000084: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000085: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000086: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000087: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000088: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000089: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008a: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008b: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008c: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008d: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008e: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008f: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000100: 14 : LINK_BW_SET: HBR2
  Reg: 000101: 84 : LANE_COUNT_SET: LANE_COUNT_SET 4, ENHANCED_FRAME_EN: 1
  Reg: 000107: 00 : DOWNSPREAD_CTRL: SPREAD_AMP: 0, MSA_TIMING_PAR_IGNORE_EN: 0
  Reg: 00010a: 01 : eDP_CONFIGURATION_CAP_SET: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 1, FRAMING_CHANGE_CAPABLE: 0
  Reg: 000111: 00 : MSTM_CTRL: UPSTREAM_IS_SRC:0 UP_REQ_EN:0 MST_EN:0
  Reg: 000120: 00 : FEC Configuration: 0x0
  Reg: 000160: 00 : DSC Enable: 0x0
  Reg: 000200: 01 : SINK_COUNT: SINK_COUNT 1, CP_READY: 0
  Reg: 000202: 77 : LANE0: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
  Reg: 000202: 77 : LANE1: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
  Reg: 000203: 77 : LANE2: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
  Reg: 000203: 77 : LANE3: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
  Reg: 000205: 01 : SINK_STATUS: RECEIVE_PORT_0_STATUS: 1, RECEIVE_PORT_1_STATUS: 0
  Reg: 000206: 00 : LANE0: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
  Reg: 000206: 00 : LANE1: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
  Reg: 000207: 00 : LANE2: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
  Reg: 000207: 00 : LANE3: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
  Reg: 00020f: 00 : DSC Status: 0
  Reg: 00042f: 00 : DISPLAY_ROTATION: 0x0
  Reg: 002200: 00 : DPCD_REV: 0.0
  Reg: 002201: 00 : MAX_LINK_RATE: ???
  Reg: 002202: 00 : MAX_LANE_COUNT: 0, TPS3_SUPPORTED: 0, ENHANCED_FRAME_CAP: 0
  Reg: 002203: 00 : MAX_DOWNSPREAD: None, NO_AUX_HANDSHAKE_LINK_TRAINING: 0
  Reg: 002204: 00 : NORP: 0
  Reg: 002205: 00 : DOWNSTREAMPORT_PRESENT: DWN_STRM_PORT_PRESENT: 0, DWN_STRM_PORT_TYPE: [0] DisplayPort, FORMAT_CONVERSION: 0, DETAILED_CAP_INFO_AVAILABLE: 0
  Reg: 002206: 00 : MAIN_LINK_CHANNEL_CODING_SET: ??
  Reg: 002207: 00 : DOWN_STREAM_PORT_COUNT: DWN_STRM_PORT_COUNT: 0, MSA_TIMING_PAR_IGNORED: 0, OUI: 0
  Reg: 002208: 00 : RECEIVE_PORT0_CAP_0: LOCAL_EDID_PRESENT: 0, ASSOCIATED_TO_PRECEDING_PORT: 0
  Reg: 002209: 00 : RECEIVE_PORT0_CAP_1: BUFFER_SIZE: 32
  Reg: 00220a: 00 : RECEIVE_PORT1_CAP_0:
  Reg: 00220b: 00 : RECEIVE_PORT1_CAP_1:
  Reg: 00220c: 00 : I2C Speed:
  Reg: 00220d: 00 : eDP_CONFIGURATION_CAP_SET: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 0, FRAMING_CHANGE_CAPABLE: 0
  Reg: 00220e: 00 : TRAINING_AUX_RD_INTERVAL: 100 us, EXTENDED_RECEIVER_CAPABILITY_FIELD_PRESENT: NO
  Reg: 00220f: 00 : ADAPTER_CAP: FORCE_LOAD_SENSE_CAP: 0, ALTERNATE_I2C_PATTERN_CAP: 0
  Reg: 068028: 00 : HDCP_CAPABLE: 0, REPEATER: 0
  Reg: 06921d: 00 : VERSION: 0
  Reg: 06921f: 00 : HDCP_CAPABLE: 0, REPEATER: 0
  Reg: 069330: 00 : HDCP_Depth: 0
  Reg: 069331: 00 : HDCP_count: 0  HDCP2_0 Downstream: 0 HDCP1 Downstream: 0
  Reg: 069493: 00 : Ready: 0 , H' Available: 0, Pairing_available: 0 , Reauth_req: 0, Link Integrity: 0
## Register Dump Port 1 - End ##
## EDID Dump Port 1 - Start ##
// EDID Dump: device, 256 bytes, OK
uint8_t EDID_APP_610_a044[] = {
  /* 000: */  0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
  /* 008: */  0x06, 0x10, 0x44, 0xa0, 0x00, 0x00, 0x00, 0x00,
  /* 010: */  0x24, 0x1d, 0x01, 0x04, 0xb5, 0x22, 0x16, 0x78,
  /* 018: */  0x02, 0x0f, 0xe1, 0xae, 0x52, 0x43, 0xb0, 0x26,
  /* 020: */  0x0c, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
  /* 028: */  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
  /* 030: */  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xe7, 0x91,
  /* 038: */  0x00, 0x50, 0xc0, 0x80, 0x37, 0x70, 0x08, 0x20,
  /* 040: */  0x98, 0x08, 0x59, 0xd7, 0x10, 0x00, 0x00, 0x1a,
  /* 048: */  0x00, 0x00, 0x00, 0xfc, 0x00, 0x43, 0x6f, 0x6c,
  /* 050: */  0x6f, 0x72, 0x20, 0x4c, 0x43, 0x44, 0x0a, 0x20,
  /* 058: */  0x20, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
  /* 060: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 068: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
  /* 070: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 078: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x4c,
  /* 080: */  0x70, 0x12, 0x79, 0x03, 0x00, 0x7f, 0x81, 0x3f,
  /* 088: */  0xfa, 0x10, 0x00, 0x03, 0x01, 0x18, 0x0f, 0x28,
  /* 090: */  0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 098: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0a0: */  0x4c, 0x50, 0x31, 0x36, 0x30, 0x57, 0x54, 0x31,
  /* 0a8: */  0x2d, 0x53, 0x4a, 0x41, 0x32, 0x0a, 0x20, 0x00,
  /* 0b0: */  0x46, 0x30, 0x59, 0x39, 0x33, 0x39, 0x31, 0x30,
  /* 0b8: */  0x31, 0x48, 0x52, 0x4c, 0x50, 0x30, 0x4a, 0x37,
  /* 0c0: */  0x32, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7f,
  /* 0c8: */  0x81, 0x29, 0xfa, 0x10, 0x00, 0x02, 0x01, 0x00,
  /* 0d0: */  0x11, 0x00, 0x00, 0x02, 0x90, 0x03, 0x4e, 0x04,
  /* 0d8: */  0x56, 0x05, 0xc0, 0x07, 0xb0, 0x0a, 0x58, 0x0e,
  /* 0e0: */  0x01, 0x13, 0x0d, 0x1a, 0x09, 0x23, 0xb7, 0x31,
  /* 0e8: */  0x2e, 0x43, 0xf1, 0x5e, 0x28, 0x82, 0xdd, 0xb6,
  /* 0f0: */  0x5e, 0xfe, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0f8: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x90
};
## EDID Dump Port 1 - End ##
## Register Dump Port 4 - Start ##
  Reg: 000000: 12 : DPCD_REV: 1.2
  Reg: 000001: 14 : MAX_LINK_RATE: HBR2
  Reg: 000002: c4 : MAX_LANE_COUNT: 4, TPS3_SUPPORTED: 1, ENHANCED_FRAME_CAP: 1
  Reg: 000003: 81 : MAX_DOWNSPREAD: 0.5% down, NO_AUX_HANDSHAKE_LINK_TRAINING: 0
  Reg: 000004: 01 : NORP: 1
  Reg: 000005: 01 : DOWNSTREAMPORT_PRESENT: DWN_STRM_PORT_PRESENT: 1, DWN_STRM_PORT_TYPE: [0] DisplayPort, FORMAT_CONVERSION: 0, DETAILED_CAP_INFO_AVAILABLE: 0
  Reg: 000006: 01 : MAIN_LINK_CHANNEL_CODING: ANSI 8B/10B
  Reg: 000007: c0 : DOWN_STREAM_PORT_COUNT: DWN_STRM_PORT_COUNT: 0, MSA_TIMING_PAR_IGNORED: 1, OUI: 1
  Reg: 000008: 02 : RECEIVE_PORT0_CAP_0: LOCAL_EDID_PRESENT: 1, ASSOCIATED_TO_PRECEDING_PORT: 0
  Reg: 000009: 00 : RECEIVE_PORT0_CAP_1: BUFFER_SIZE: 32
  Reg: 00000a: 06 : RECEIVE_PORT1_CAP_0:
  Reg: 00000b: 00 : RECEIVE_PORT1_CAP_1:
  Reg: 00000c: 00 : I2C Speed:
  Reg: 00000d: 00 : eDP_CONFIGURATION_CAP: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 0, FRAMING_CHANGE_CAPABLE: 0
  Reg: 00000e: 84 : TRAINING_AUX_RD_INTERVAL: 0 RESERVED, EXTENDED_RECEIVER_CAPABILITY_FIELD_PRESENT: YES
  Reg: 00000f: 00 : ADAPTER_CAP: FORCE_LOAD_SENSE_CAP: 0, ALTERNATE_I2C_PATTERN_CAP: 0
  Reg: 000020: 00 : FAUX_CAP: FAUX_CAP: 0
  Reg: 000021: 00 : MSTM_CAP: MST_CAP: 0
  Reg: 000022: 00 : NUMBER_OF_AUDIO_ENDPOINTS: 0
  Reg: 000060: 01 : DSC Support: 1
  Reg: 000061: 21 : DSC Algorithm revision: 33
  Reg: 000062: 00 : DSC RC Buffer Block size: 0
  Reg: 000063: 02 : DSC RC Buffer size: 2
  Reg: 000064: 2b : DSC slice Capabilities 1 : 43
  Reg: 000065: 04 : DSC Line buffer bit depth: 4
  Reg: 000066: 01 : DSC Block prediction support: 1
  Reg: 000067: 00 : DSC Maximum bit per pixel: 0
  Reg: 000068: 00 : DSC Maximum bit per pixel: 0
  Reg: 000069: 1f : DSC Decoder color format capabilities: 31
  Reg: 00006a: 0e : DSC decoder color depth capabilities: 14
  Reg: 00006b: 11 : DSC Peak Throughput: 17
  Reg: 00006c: 08 : DSC Maximum Slice width: 8
  Reg: 00006d: 00 : DSC Slice capabilities 2: 0
  Reg: 00006e: 00 : Reserved: 0
  Reg: 00006f: 00 : DSC Bits per pixel increment: 0
  Reg: 000090: bf : FEC Capability: 0xbf
  Reg: 000080: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000081: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000082: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000083: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000084: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000085: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000086: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000087: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000088: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000089: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008a: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008b: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008c: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008d: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008e: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 00008f: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
  Reg: 000100: 1e : LINK_BW_SET: HBR3
  Reg: 000101: 84 : LANE_COUNT_SET: LANE_COUNT_SET 4, ENHANCED_FRAME_EN: 1
  Reg: 000107: 10 : DOWNSPREAD_CTRL: SPREAD_AMP: 1, MSA_TIMING_PAR_IGNORE_EN: 0
  Reg: 00010a: 00 : eDP_CONFIGURATION_CAP_SET: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 0, FRAMING_CHANGE_CAPABLE: 0
  Reg: 000111: 00 : MSTM_CTRL: UPSTREAM_IS_SRC:0 UP_REQ_EN:0 MST_EN:0
  Reg: 000120: 00 : FEC Configuration: 0x0
  Reg: 000160: 01 : DSC Enable: 0x1
  Reg: 000200: 41 : SINK_COUNT: SINK_COUNT 1, CP_READY: 1
  Reg: 000202: 77 : LANE0: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
  Reg: 000202: 77 : LANE1: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
  Reg: 000203: 77 : LANE2: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
  Reg: 000203: 77 : LANE3: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
  Reg: 000205: 03 : SINK_STATUS: RECEIVE_PORT_0_STATUS: 1, RECEIVE_PORT_1_STATUS: 1
  Reg: 000206: 22 : LANE0: VOLTAGE_SWING: 2, PRE-EMPHASIS: 0
  Reg: 000206: 22 : LANE1: VOLTAGE_SWING: 2, PRE-EMPHASIS: 0
  Reg: 000207: 22 : LANE2: VOLTAGE_SWING: 2, PRE-EMPHASIS: 0
  Reg: 000207: 22 : LANE3: VOLTAGE_SWING: 2, PRE-EMPHASIS: 0
  Reg: 00020f: 00 : DSC Status: 0
  Reg: 00042f: 00 : DISPLAY_ROTATION: 0x0
  Reg: 002200: 14 : DPCD_REV: 1.4
  Reg: 002201: 1e : MAX_LINK_RATE: HBR3
  Reg: 002202: c4 : MAX_LANE_COUNT: 4, TPS3_SUPPORTED: 1, ENHANCED_FRAME_CAP: 1
  Reg: 002203: 81 : MAX_DOWNSPREAD: 0.5% down, NO_AUX_HANDSHAKE_LINK_TRAINING: 0
  Reg: 002204: 01 : NORP: 1
  Reg: 002205: 01 : DOWNSTREAMPORT_PRESENT: DWN_STRM_PORT_PRESENT: 1, DWN_STRM_PORT_TYPE: [0] DisplayPort, FORMAT_CONVERSION: 0, DETAILED_CAP_INFO_AVAILABLE: 0
  Reg: 002206: 01 : MAIN_LINK_CHANNEL_CODING_SET: ANSI 8B/10B
  Reg: 002207: c0 : DOWN_STREAM_PORT_COUNT: DWN_STRM_PORT_COUNT: 0, MSA_TIMING_PAR_IGNORED: 1, OUI: 1
  Reg: 002208: 02 : RECEIVE_PORT0_CAP_0: LOCAL_EDID_PRESENT: 1, ASSOCIATED_TO_PRECEDING_PORT: 0
  Reg: 002209: 00 : RECEIVE_PORT0_CAP_1: BUFFER_SIZE: 32
  Reg: 00220a: 06 : RECEIVE_PORT1_CAP_0:
  Reg: 00220b: 00 : RECEIVE_PORT1_CAP_1:
  Reg: 00220c: 00 : I2C Speed:
  Reg: 00220d: 00 : eDP_CONFIGURATION_CAP_SET: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 0, FRAMING_CHANGE_CAPABLE: 0
  Reg: 00220e: 84 : TRAINING_AUX_RD_INTERVAL: 0 RESERVED, EXTENDED_RECEIVER_CAPABILITY_FIELD_PRESENT: YES
  Reg: 00220f: 00 : ADAPTER_CAP: FORCE_LOAD_SENSE_CAP: 0, ALTERNATE_I2C_PATTERN_CAP: 0
  Reg: 068028: 03 : HDCP_CAPABLE: 1, REPEATER: 1
  Reg: 06921d: 02 : VERSION: 2
  Reg: 06921f: 02 : HDCP_CAPABLE: 1, REPEATER: 0
  Reg: 069330: 00 : HDCP_Depth: 0
  Reg: 069331: 00 : HDCP_count: 0  HDCP2_0 Downstream: 0 HDCP1 Downstream: 0
  Reg: 069493: 00 : Ready: 0 , H' Available: 0, Pairing_available: 0 , Reauth_req: 0, Link Integrity: 0
## Register Dump Port 4 - End ##
## EDID Dump Port 4 - Start ##
// EDID Dump: device, 384 bytes, OK
uint8_t EDID_CHY_d19_3213[] = {
  /* 000: */  0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
  /* 008: */  0x0d, 0x19, 0x13, 0x32, 0x00, 0x00, 0x00, 0x00,
  /* 010: */  0x0f, 0x1e, 0x01, 0x04, 0xb5, 0x47, 0x28, 0x78,
  /* 018: */  0x3b, 0x72, 0x25, 0xac, 0x50, 0x33, 0xb7, 0x26,
  /* 020: */  0x0b, 0x50, 0x54, 0x21, 0x08, 0x00, 0x81, 0x00,
  /* 028: */  0xb3, 0x00, 0xd1, 0x00, 0xa9, 0x40, 0x81, 0x80,
  /* 030: */  0xd1, 0xc0, 0x01, 0x01, 0x01, 0x01, 0x51, 0xd0,
  /* 038: */  0x00, 0xa0, 0xf0, 0x70, 0x3e, 0x80, 0x50, 0x20,
  /* 040: */  0x65, 0x0c, 0x53, 0x4f, 0x21, 0x00, 0x00, 0x1a,
  /* 048: */  0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
  /* 050: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 058: */  0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x44,
  /* 060: */  0x50, 0x20, 0x35, 0x4b, 0x33, 0x4b, 0x0a, 0x20,
  /* 068: */  0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfd,
  /* 070: */  0x00, 0x30, 0x3c, 0x1f, 0xb4, 0x36, 0x01, 0x0a,
  /* 078: */  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x02, 0x60,
  /* 080: */  0x02, 0x03, 0x34, 0xf1, 0x4f, 0x01, 0x03, 0x04,
  /* 088: */  0x12, 0x13, 0x05, 0x14, 0x1f, 0x10, 0x02, 0x5d,
  /* 090: */  0x5e, 0x5f, 0x60, 0x61, 0x23, 0x09, 0x07, 0x07,
  /* 098: */  0x83, 0x01, 0x00, 0x00, 0x68, 0x1a, 0x00, 0x00,
  /* 0a0: */  0x01, 0x01, 0x30, 0x3c, 0x00, 0xe3, 0x05, 0xc3,
  /* 0a8: */  0x01, 0xe3, 0x0f, 0x00, 0x40, 0xe6, 0x06, 0x07,
  /* 0b0: */  0x01, 0x61, 0x56, 0x1c, 0x4d, 0xd0, 0x00, 0xa0,
  /* 0b8: */  0xf0, 0x70, 0x3e, 0x80, 0x50, 0x20, 0x65, 0x0c,
  /* 0c0: */  0x55, 0x50, 0x21, 0x00, 0x00, 0x18, 0x56, 0x5e,
  /* 0c8: */  0x00, 0xa0, 0xa0, 0xa0, 0x29, 0x50, 0x30, 0x20,
  /* 0d0: */  0x35, 0x00, 0x55, 0x50, 0x21, 0x00, 0x00, 0x1a,
  /* 0d8: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0e0: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0e8: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0f0: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0f8: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd6,
  /* 100: */  0x70, 0x12, 0x79, 0x00, 0x00, 0x03, 0x01, 0x3c,
  /* 108: */  0x88, 0x79, 0x01, 0x84, 0xff, 0x13, 0x3f, 0x01,
  /* 110: */  0x5f, 0x80, 0x3f, 0x00, 0x3f, 0x0b, 0x3d, 0x00,
  /* 118: */  0x02, 0x00, 0x04, 0x00, 0x10, 0x5d, 0x00, 0x04,
  /* 120: */  0xff, 0x09, 0x9f, 0x00, 0x2f, 0x80, 0x1f, 0x00,
  /* 128: */  0x3f, 0x0b, 0x28, 0x00, 0x02, 0x00, 0x09, 0x00,
  /* 130: */  0xc4, 0xbc, 0x00, 0x04, 0xff, 0x09, 0x9f, 0x00,
  /* 138: */  0x2f, 0x80, 0x1f, 0x00, 0x3f, 0x0b, 0x51, 0x00,
  /* 140: */  0x02, 0x00, 0x09, 0x00, 0x07, 0x00, 0x0a, 0x08,
  /* 148: */  0x81, 0x00, 0x08, 0x04, 0x00, 0x04, 0x02, 0x10,
  /* 150: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 158: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 160: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 168: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 170: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 178: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x90
};
## EDID Dump Port 4 - End ##
## Display Connection Stats Dump Port 4 - End ##
  Display mfgName: CHY, productID: 0x3213
  Time to EDID read: 2009
  Time to link train: 0
  Link training duration: 58303
  Link training status: 1
  Link training count: 1
  HDCP status: 0
  HDCP retry count: 1
## Display Connection Stats Dump Port 4 - End ##
### End: AGDC[6] 0x100000773 (took 0.353 sec) ################################

### End: Ports (took 0.353 sec) ##############################################
 
Last edited:

joevt

macrumors 604
Jun 21, 2012
6,935
4,235
Something interesting I saw is there's two connections on 1 and 4. Doesn't seem to allow me to attach .txt file. A snippet here
You can attach zip file.
Output that might include bpp or bpc is missing.
Make sure the command is:
/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a > AGDCDiagnose_a.txt 2>&1
You have AGDCDiagnose Version: 4.7.2.2 but I am expected AGDCDiagnose Version: 5.2.6.6 from Catalina 10.15.7.
You are running an old version of macOS Catalina? Update macOS.

I use my script from https://gist.github.com/joevt/32e5efffe3459958759fb702579b9529 to examine the output.
Code:
cd /Volumes/Updates/Docs/Video/DVI_EDID_DDC_stuff/EDIDs/EDID\ from\ runtime_error0x
source ../Scripts/EDIDUtil.sh

loadagdcfile AGDCDiagnose_a.txt
agdcdevicedump AGDCDiagnose_a.txt > AGDCDiagnosedump.txt
decodeall
dumpedidall
edidbinall
useedidnum 1
listedids

1)
vendor:1552 (APP) product:41028
override product name:DisplayVendorID-610/DisplayProductID-a044
override date name:DisplayVendorID-610/DisplayYearManufacture-2019-DisplayWeekManufacture-36
strings:Color LCD LP160WT1-SJA2 F0Y939101HRLP0J72      
theedid=00ffffffffffff00061044a000000000241d0104b5221678020fe1ae5243b0260c505400000001010101010101010101010101010101e7910050c08037700820980859d71000001a000000fc00436f6c6f72204c43440a202020000000100000000000000000000000000000000000100000000000000000000000000000014c70127903007f813ffa10000301180f28170000000000000000000000000000004c503136305754312d534a41320a200046305939333931303148524c50304a37320a20202020207f8129fa10000201001100000290034e045605c007b00a580e01130d1a0923b7312e43f15e2882ddb65efec900000000000000000000009f90
sources:
AGDCDiagnose_a.txt:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/EGP0@0/IOPP/EGP1@0/IOPP/GFX0@0/AMDRadeonX6000_AmdAgdcServices/AppleGraphicsDevicePolicy/AGDPClientControl/Port 1
/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a044:edid-patches of (1)

2)
vendor:3353 (CHY) product:12819
override product name:DisplayVendorID-d19/DisplayProductID-3213
override date name:DisplayVendorID-d19/DisplayYearManufacture-2020-DisplayWeekManufacture-15
strings:G(x;r% DP 5K3K              ]^_`a# )P0 5
theedid=00ffffffffffff000d191332000000000f1e0104b54728783b7225ac5033b7260b50542108008100b300d100a9408180d1c00101010151d000a0f0703e805020650c534f2100001a000000ff0000000000000000000000000000000000fc00445020354b334b0a2020202020000000fd00303c1fb436010a2020202020200260020334f14f010304121305141f10025d5e5f60612309070783010000681a00000101303c00e305c301e30f0040e606070161561c4dd000a0f0703e805020650c555021000018565e00a0a0a029503020350055502100001a000000000000000000000000000000000000000000000000000000000000000000000000000000d6701279000003013c88790184ff133f015f803f003f0b3d0002000400105d0004ff099f002f801f003f0b280002000900c4bc0004ff099f002f801f003f0b51000200090007000a08810008040004021000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f490
sources:
AGDCDiagnose_a.txt:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/EGP0@0/IOPP/EGP1@0/IOPP/GFX0@0/AMDRadeonX6000_AmdAgdcServices/AppleGraphicsDevicePolicy/AGDPClientControl/Port 4

translateoui 000-016-250
translateoui 000-224-076

oui: 0x0010FA = Apple, Inc.
oui: 0x00E04C = REALTEK SEMICONDUCTOR CORP.

ls -l
total 136
-rw-r--r--@ 1 joevt  staff  28200 Oct 10 14:29 AGDCDiagnose_a.txt
-rw-r--r--  1 joevt  staff      0 Oct 10 14:29 AGDCDiagnosedump.txt
-rw-r--r--@ 1 joevt  staff   8249 Sep 24 11:09 EDID.worksheet
-rw-r--r--  1 joevt  staff    256 Oct 10 14:29 EDID_APP_610_a044_1.bin
-rw-r--r--  1 joevt  staff    954 Oct 10 14:29 EDID_APP_610_a044_1_dumpedid.txt
-rw-r--r--  1 joevt  staff   2529 Oct 10 14:29 EDID_APP_610_a044_1_edid-decode.txt
-rw-r--r--  1 joevt  staff    384 Oct 10 14:29 EDID_CHY_d19_3213_2.bin
-rw-r--r--  1 joevt  staff   2301 Oct 10 14:29 EDID_CHY_d19_3213_2_dumpedid.txt
-rw-r--r--  1 joevt  staff   7619 Oct 10 14:29 EDID_CHY_d19_3213_2_edid-decode.txt

Connection 1 is MacBook Pro built-in display (3072x1920) (connected with 4 lanes of HBR2)
Connection 4 is the 5120x2880 display (connected with 4 lanes of HBR3 so it will be limited to 8bpc) - but it says it supports DSC! and DSC is enabled! But the display is only 5K so HBR2 with DSC should be sufficient so why is it using HBR3? Maybe to reduce compression ratio for better results? With DSC, a higher bpc should be allowed. The EDID says 10 bpc is supported (also YCbCr 4:4:4, 4:2:2, 4:2:0, AMD free sync?, HDR). If DSC is required then it means it only works with Macs with Navi GPUs (5300, 5500, 5600, 5700 etc.).

So try again with the suggested command after update of Catalina to see if you can get more info from the command.

Connection 4 has OUI from REALTEK SEMICONDUCTOR CORP. Are they the maker of the DisplayPort controller?

Is there a hub between the display and the GPU? Does the controller board have a MST hub built-in? In Windows, the Intel Graphics Control Panel has an option to show MST topology. Maybe Linux can show MST topology too? (in either case, the display would need to be connected to the iGPU).
 

runtime_error0x

macrumors newbie
May 3, 2018
21
1
You can attach zip file.
Output that might include bpp or bpc is missing.
Make sure the command is:
/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a > AGDCDiagnose_a.txt 2>&1
You have AGDCDiagnose Version: 4.7.2.2 but I am expected AGDCDiagnose Version: 5.2.6.6 from Catalina 10.15.7.
You are running an old version of macOS Catalina? Update macOS.

I use my script from https://gist.github.com/joevt/32e5efffe3459958759fb702579b9529 to examine the output.
Code:
cd /Volumes/Updates/Docs/Video/DVI_EDID_DDC_stuff/EDIDs/EDID\ from\ runtime_error0x
source ../Scripts/EDIDUtil.sh

loadagdcfile AGDCDiagnose_a.txt
agdcdevicedump AGDCDiagnose_a.txt > AGDCDiagnosedump.txt
decodeall
dumpedidall
edidbinall
useedidnum 1
listedids

1)
vendor:1552 (APP) product:41028
override product name:DisplayVendorID-610/DisplayProductID-a044
override date name:DisplayVendorID-610/DisplayYearManufacture-2019-DisplayWeekManufacture-36
strings:Color LCD LP160WT1-SJA2 F0Y939101HRLP0J72     
theedid=00ffffffffffff00061044a000000000241d0104b5221678020fe1ae5243b0260c505400000001010101010101010101010101010101e7910050c08037700820980859d71000001a000000fc00436f6c6f72204c43440a202020000000100000000000000000000000000000000000100000000000000000000000000000014c70127903007f813ffa10000301180f28170000000000000000000000000000004c503136305754312d534a41320a200046305939333931303148524c50304a37320a20202020207f8129fa10000201001100000290034e045605c007b00a580e01130d1a0923b7312e43f15e2882ddb65efec900000000000000000000009f90
sources:
AGDCDiagnose_a.txt:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/EGP0@0/IOPP/EGP1@0/IOPP/GFX0@0/AMDRadeonX6000_AmdAgdcServices/AppleGraphicsDevicePolicy/AGDPClientControl/Port 1
/System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-610/DisplayProductID-a044:edid-patches of (1)

2)
vendor:3353 (CHY) product:12819
override product name:DisplayVendorID-d19/DisplayProductID-3213
override date name:DisplayVendorID-d19/DisplayYearManufacture-2020-DisplayWeekManufacture-15
strings:G(x;r% DP 5K3K              ]^_`a# )P0 5
theedid=00ffffffffffff000d191332000000000f1e0104b54728783b7225ac5033b7260b50542108008100b300d100a9408180d1c00101010151d000a0f0703e805020650c534f2100001a000000ff0000000000000000000000000000000000fc00445020354b334b0a2020202020000000fd00303c1fb436010a2020202020200260020334f14f010304121305141f10025d5e5f60612309070783010000681a00000101303c00e305c301e30f0040e606070161561c4dd000a0f0703e805020650c555021000018565e00a0a0a029503020350055502100001a000000000000000000000000000000000000000000000000000000000000000000000000000000d6701279000003013c88790184ff133f015f803f003f0b3d0002000400105d0004ff099f002f801f003f0b280002000900c4bc0004ff099f002f801f003f0b51000200090007000a08810008040004021000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f490
sources:
AGDCDiagnose_a.txt:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/EGP0@0/IOPP/EGP1@0/IOPP/GFX0@0/AMDRadeonX6000_AmdAgdcServices/AppleGraphicsDevicePolicy/AGDPClientControl/Port 4

translateoui 000-016-250
translateoui 000-224-076

oui: 0x0010FA = Apple, Inc.
oui: 0x00E04C = REALTEK SEMICONDUCTOR CORP.

ls -l
total 136
-rw-r--r--@ 1 joevt  staff  28200 Oct 10 14:29 AGDCDiagnose_a.txt
-rw-r--r--  1 joevt  staff      0 Oct 10 14:29 AGDCDiagnosedump.txt
-rw-r--r--@ 1 joevt  staff   8249 Sep 24 11:09 EDID.worksheet
-rw-r--r--  1 joevt  staff    256 Oct 10 14:29 EDID_APP_610_a044_1.bin
-rw-r--r--  1 joevt  staff    954 Oct 10 14:29 EDID_APP_610_a044_1_dumpedid.txt
-rw-r--r--  1 joevt  staff   2529 Oct 10 14:29 EDID_APP_610_a044_1_edid-decode.txt
-rw-r--r--  1 joevt  staff    384 Oct 10 14:29 EDID_CHY_d19_3213_2.bin
-rw-r--r--  1 joevt  staff   2301 Oct 10 14:29 EDID_CHY_d19_3213_2_dumpedid.txt
-rw-r--r--  1 joevt  staff   7619 Oct 10 14:29 EDID_CHY_d19_3213_2_edid-decode.txt

Connection 1 is MacBook Pro built-in display (3072x1920) (connected with 4 lanes of HBR2)
Connection 4 is the 5120x2880 display (connected with 4 lanes of HBR3 so it will be limited to 8bpc) - but it says it supports DSC! and DSC is enabled! But the display is only 5K so HBR2 with DSC should be sufficient so why is it using HBR3? Maybe to reduce compression ratio for better results? With DSC, a higher bpc should be allowed. The EDID says 10 bpc is supported (also YCbCr 4:4:4, 4:2:2, 4:2:0, AMD free sync?, HDR). If DSC is required then it means it only works with Macs with Navi GPUs (5300, 5500, 5600, 5700 etc.).

So try again with the suggested command after update of Catalina to see if you can get more info from the command.

Connection 4 has OUI from REALTEK SEMICONDUCTOR CORP. Are they the maker of the DisplayPort controller?

Is there a hub between the display and the GPU? Does the controller board have a MST hub built-in? In Windows, the Intel Graphics Control Panel has an option to show MST topology. Maybe Linux can show MST topology too? (in either case, the display would need to be connected to the iGPU).


Yep I'll update Catalina in next few days and run it again. Yes this only worked on my 2019 MacBook Pro 16in. Realtek seems to be the manufacturer of the driver board yes. And yeah the display is first connected to this driver board, then the driver board is connected to either my Macbook or PC. My PC is using an Nvidia graphics card though so can't see that topology but it definitely is running at 10bpc due to DSC on the Nvidia Display control center. I have an older Macbook and wanted to use 5k on it so I actually flashed a different image on the driver board right now to allow for Dual DisplayPort input. Hopefully it shouldn't change the above results too much as each DP is still at 1.4. Very interesting
 

fiatlux

macrumors 6502
Original poster
Dec 5, 2007
352
143
This is a view of the finished project, although still with bits of masking tape to hold the screen to the enclosure (I have the proper adhesive strips to attache the screen, I am just waiting to be 100% sure I'm happy with the cabling options before I proceed).

The monitor stand is the one from my former HP screen, I'll eventually get a sleeker VESA desk stand.

The green strip you see is a piece of PCB with the OSD buttons to control the screen. I guess it would be nicer to stick at the back of the monitor. You don't really need to enter the OSD menu once you're set - the control board supports automatic HDMI/DP/USB-C input switching.
 

Attachments

  • IMG_0277.jpeg
    IMG_0277.jpeg
    216.7 KB · Views: 2,503

fiatlux

macrumors 6502
Original poster
Dec 5, 2007
352
143
A view from the back. You can see the VESA stand adapter and my former HP monitor stand (which handily uses VESA 100 attachment). I will explain below how to attach the adapter (normally designed for older 27" iMac and monitors).
 

Attachments

  • IMG_0278.jpeg
    IMG_0278.jpeg
    161.2 KB · Views: 1,220
  • Like
Reactions: Amethyst1

fiatlux

macrumors 6502
Original poster
Dec 5, 2007
352
143
Another view from the back - a bit messy as I have two DP, one HDMI, one USB-C, the power adapter cable and the flat ribbon cable for the OSD control buttons going through the RAM access door.

I'll probably rationalise the number of cables and route them better once I get another VESA stand with cable management.
 

Attachments

  • IMG_0279.jpeg
    IMG_0279.jpeg
    142.3 KB · Views: 1,010
  • Like
Reactions: BigMac?

fiatlux

macrumors 6502
Original poster
Dec 5, 2007
352
143
And here is a view on the internals (from the top of the enclosure). On the left you see the control board. On the right you see the A1312 hinge mechanism which is needed to attach the VESA adapter. You first need to remove the original hinge mechanism (a few screws to remove). You cannot screw the A1312 hinge mechanism to the enclosure as the mounting screws do not match, but all you need to do is sandwich the enclosure between the A1312 hinge mechanism and the VESA adapter, and attach the latter two together. Once the screws are well tightened, the enclosure is held perfectly in place, there is zero wobble.
 

Attachments

  • IMG_0313.jpeg
    IMG_0313.jpeg
    200.3 KB · Views: 2,221

yaosiang

macrumors member
Jul 3, 2010
57
47
And here is a view on the internals (from the top of the enclosure). On the left you see the control board. On the right you see the A1312 hinge mechanism which is needed to attach the VESA adapter. You first need to remove the original hinge mechanism (a few screws to remove). You cannot screw the A1312 hinge mechanism to the enclosure as the mounting screws do not match, but all you need to do is sandwich the enclosure between the A1312 hinge mechanism and the VESA adapter, and attach the latter two together. Once the screws are well tightened, the enclosure is held perfectly in place, there is zero wobble.
Rather than using the A1312 hinge mechanism for VESA, I went with the cheaper DIY solution by using a 100 x 100 VESA plate from K&M (model number 19615). This metal adapter plate has 2 “studs” welded to it and comes with 2 nuts. The opening/gap of the A1419 chassis for the iMac stand is big enough for the M6 threaded studs to pass through.

IMG_0687.jpeg


To secure the VESA plate to the monitor arm, I used screws, washers and nuts. The monitor arm that I purchased from AliExpress came with M4 screws so I only had to purchase the washers and nuts from eBay. I added a layer of 3mm MDF between the chassis and VESA plate (mainly as padding) to prevent the screws from scratching the back of the aluminium enclosure. I also cut a rectangular piece of MDF to “fill in” the gap around the opening of the enclosure to prevent the VESA plate from sliding left and right. Finally, I also added 2 x 25mm M6 washers to increase the surface area that holds the enclosure when the nuts are tighten.

Overall, I am pretty satisfied with the end result especially for the price since the Apple VESA kit for A1419 (used) cost £100+. Initially, I was worried that the 2 x M6 nuts that hold the enclosure might come loose when I adjust the monitor but after few weeks of using it and adjusting the monitor from time to time, the nuts seem to stay tightly secured to the plate. I paid £7.10 (or £12.05 delivered) for the K&M 19615 VESA plate. The washers, nuts and 3mm MDF A4 sheet cost about £10 (or less) in total from eBay.

I have the R9A18 5K driver board connected to an eGPU (RX 580) via 2 x DP1.2. The eGPU is connected to a MBP 15” 2015 via the M.2 SSD slot.


Photo #1: K&M 19615 attached to the enclosure without padding. The cables in the photo are for the iMac speakers, connected to the 5K driver board via a 4-pin header.
IMG_0295.jpeg

Photo #2: Height of the stud without padding. I used a 3mm MDF board as padding.
IMG_0299.jpeg

Photo #3: Rear view of the enclosure with VESA plate without padding.
IMG_0300.jpeg

Photo #4 Interior view of the set up with padding, small rectangular piece of MDF to prevent the plate from sliding left/right and 2 x 25mm M6 washers. If you look through the vents, you will see the screws used to secure the VESA plate to the monitor arm.
IMG_0516.jpeg

Photo #5 and #6: Exterior views of the set up, attached to a monitor arm.
IMG_0686.jpeg IMG_0688.jpeg
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.