Ok so got some extension cables to do some more testing until I get my final mount in place.
They're all rated for HDMI 2.1 40 Gbps at least?
So some interesting results as I'm now testing with the
Sabrent USBc adapter and a new
16.4 foot version of this cable.
So first thing that is interesting is that the regular 4k (3840x2160@60hz) does not seem to initially work with this setup, however, setting it to 4096x2160@60hz does work, and then setting back to the 3840 mode then does work. Strange.
The 8k non scaled versions of resolution do not show up at all:
View attachment 1940845
View attachment 1940847
Do the 8K modes still exist in the Custom Resolutions tab? Post a copy of all the files at
/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-4c2d
.
An issue is that changing the settings of the TV may change the EDID including the product number. For example, previously you posted EDID's that had product ID 0x7154 but these new ones have product ID 0x7153. The dates in the EDIDs are the same, so SwitchResX will use the same override file for both. I want to check the EDID in the override file to see which version it matches (so far I have four different versions from you - one pair for each product ID where each pair has a version that is modified by the VMM6100).
The changes in the EDID that I see with the Realtek (#5_AGD compared to the direct HDMI connection #1#2#3_AGD) are these:
- Model changed to 29011 (0x7153) but the date is the same so the display may be using the older EDID that SwitchResX found.
- the 2560x1440@60Hz mode is replaced by a 120Hz mode.
- An AMD FreeSync VSDB is added: 48Hz to 120 Hz.
I think the direct HDMI connection would have the same EDID if it were using the same TV settings? In other words, I believe the TV settings have changed since you provided the #3_AGD AGDCDiagnose file (game mode wasn't on in #3_AGD?)
You may wish to delete the override file and recreate it from scratch to make sure it has the correct EDID from the TV when connected with the Sabrent adapter.
Also HDR does not show up as an option, even in 4k in the displays panel.
From the AGDCDiagnose output, I see the Sabrent adapter uses the Realtek RTD2173 just like the Club-3d CAC-1085. With my CAC-1085, I could not get HDR to work in macOS until after applying a firmware update.
https://forums.macrumors.com/thread...ransfers-recommendation.2278473/post-29466205
You should contact Realtek for a firmware update, or you could try the one I got for the CAC-1085.
I also tried both 5k resolutions but the TV wouldn't work with them.
Those never worked so they'll probably continue to not work. If you want to try custom resolutions then I suggest experimenting in Windows since the Radeon software gives you more control (RGB, 444, 422, 420; 6,8,10,12 bpp, etc). Use CRU to create the custom resolutions.
So the results from AGC dump are attached.
I wish I knew what to look for in that AGC dump and how to translate that to what I need to enter in the custom resolutions tab of SwitchResX to see if we can get 8k via this route (particularly if we can enable DSC compression), but will need your help to figure that out. Thanks!
That said, snooping at the output I did notice it showed DSC
seems to be enabled?
Timing FB0 DICT 24
Display Mode 80007000
Refresh Rate (Calculated) 60 Hz
Refresh Rate (Stored) 0.0 Hz
Window (Active) 3840 x 2160
Window (Scaled) 0 x 0
Scaled Inset 0 x 0
Pixel Clock 594000000 Hz
Blanking 560 x 90
Border {left,right} {0, 0}
Border {top,bottom} {0, 0}
Sync Offset (h, v) 176 x 8
Sync Pulse Width (h, v) 88, 10
Sync Config (h, v) + x +
Num Links 2
VB Extension 0
OUTPUT: Pixel Encoding 8 (YCbCr420)
OUTPUT: Bits Per Color Component 4 (10 bpc)
OUTPUT: Colorimetry 128 (BT.709)
OUTPUT: Dynamic Range 1 (SDR)
DSC: Num Slices 0 x 0
DSC: Slice Dimensions 0 x 0
DSC: Compressed BPP 0 bits, (0 bits*16) )
All the zeros means DSC is not being used - and also the zero for the "DSC Enable" flag in the DPCD registers for the display connection. But in the DPCD registers we see that this adapter can support DSC. We may need to figure how to make macOS use DSC. Below are DPCD registers related to DSC. I added some info from
https://github.com/torvalds/linux/b...ee4fbd44b3039361d/include/drm/drm_dp_helper.h
Code:
000060: 0x03 0x21 0x00 0x02 0x2b 0x04 0x01 0x00 0x00 0x1f 0x0e 0x11 0x08 0x00 0x00 0x00
Reg: 000060: 03 : DSC Support: 3 DP_DSC_SUPPORT: DP_DSC_DECOMPRESSION_IS_SUPPORTED (1 << 0)
Reg: 000061: 21 : DSC Algorithm revision: 33 DP_DSC_REV: 2.1
Reg: 000062: 00 : DSC RC Buffer Block size: 0 DP_DSC_RC_BUF_BLK_SIZE: DP_DSC_RC_BUF_BLK_SIZE_1
Reg: 000063: 02 : DSC RC Buffer size: 2 DP_DSC_RC_BUF_SIZE: 2?
Reg: 000064: 2b : DSC slice Capabilities 1 : 43 DP_DSC_SLICE_CAP_1: 8, 4, 2, 1
Reg: 000065: 04 : DSC Line buffer bit depth: 4 DP_DSC_LINE_BUF_BIT_DEPTH: 13
Reg: 000066: 01 : DSC Block prediction support: 1 DP_DSC_BLK_PREDICTION_SUPPORT: supported
Reg: 000067: 00 : DSC Maximum bit per pixel: 0 DP_DSC_MAX_BITS_PER_PIXEL_LOW
Reg: 000068: 00 : DSC Maximum bit per pixel: 0 DP_DSC_MAX_BITS_PER_PIXEL_HI: no limit?
Reg: 000069: 1f : DSC Decoder color format capabilities: 31 DP_DSC_DEC_COLOR_FORMAT_CAP: RGB, 444, 422 simple, 422 native, 444 native
Reg: 00006a: 0e : DSC decoder color depth capabilities: 14 DP_DSC_DEC_COLOR_DEPTH_CAP: 8, 10, 12bpc
Reg: 00006b: 11 : DSC Peak Throughput: 17 DP_DSC_PEAK_THROUGHPUT: 340 megapixels per second for both modes (hopefully per slice?)
Reg: 00006c: 08 : DSC Maximum Slice width: 8 DP_DSC_MAX_SLICE_WIDTH: 5120?
Reg: 00006d: 00 : DSC Slice capabilities 2: 0 DP_DSC_SLICE_CAP_2:
Reg: 00006e: 00 : Reserved: 0
Reg: 00006f: 00 : DSC Bits per pixel increment: 0 DP_DSC_BITS_PER_PIXEL_INC: 1/16th
000160: 0x00
Reg: 000160: 00 : DSC Enable: 0x0
00020f: 0x00
Reg: 00020f: 00 : DSC Status: 0
000280: 0x00
Reg: 000280: 00 : FEC Status: 0
I mentioned the
log show
command previously. The output from that could determine if macOS is even considering DSC modes.
And don't forget to try the
defaults write
command I mentioned to set the default DSC bpp to 8 instead of 12. Do the
log show
before and after to show that the default has changed.
Ok, the results with the USBc
cablematters adapter (with the same 16'cablematters HDMI cable) were even weirder.
So first and weirdest, it does not report back the Samsung monitor and instead reports itself as a built in monitor:
View attachment 1940863
So it really didnt like the 3840x2160 mode. Initially I could only get it into 4096x2160@30hz and the screen was dim with horrible contrast. Then I had to reset the TV to game mode. After that, it let me switch to 3840x2160@60hz.
Interestingly, the cable matters USBc adapter shows 8k, 6k modes as well, but none of them work. if I try 7680x4320@30hz the TV reports bad signal, however, if I try 7680x4320@60hz, the TV just keeps spinning its 'beachball' trying to sync, but never does.
Anyway, attached is the AGC dump:
Timing FB0 DICT 24
Display Mode 80007001
Refresh Rate (Calculated) 60 Hz
Refresh Rate (Stored) 0.0 Hz
Window (Active) 3840 x 2160
Window (Scaled) 0 x 0
Scaled Inset 0 x 0
Pixel Clock 594000000 Hz
Scaler Flags 0
Signal Config 0
Blanking 560 x 90
Border {left,right} {0, 0}
Border {top,bottom} {0, 0}
Sync Offset (h, v) 176 x 8
Sync Pulse Width (h, v) 88, 10
Sync Config (h, v) + x +
Num Links 2
VB Extension 0
OUTPUT: Pixel Encoding 8 (YCbCr420)
OUTPUT: Bits Per Color Component 4 (10 bpc)
OUTPUT: Colorimetry 256 (BT.2020)
OUTPUT: Dynamic Range 2 (HDR10)
DSC: Num Slices 0 x 0
DSC: Slice Dimensions 0 x 0
DSC: Compressed BPP 0 bits, (0 bits*16) )
Overall, the Cablematters adapter seems more "wonky" at least at first blush.
Anyway, appreciate any help making heads or tails of this.
This adapter appears to be very similar to the Decon cable adapter. I mentioned before some of the similarities:
- Both use the VMM6100
- Both do not support DSC - apply the Cable Matters firmware update to at least the Cable Matters adapter. Dump the firmware version and other info (press the dump all button) before and after doing the firmware update.
The EDID changes it makes are similar (comparing #3_AGD with #6_AGD):
- the 8K50 and 8K60 modes are removed.
Actually, there's one difference I can't explain. In #6_AGD, the HDMI 2.1 VSDB has includes VRR 48 to 120Hz but every other EDID does not. I guess we need a dump using a direct connect to the HDMI port to determine if the Cable Matters adapter added that, or if the Sabrent adapter removed that.
I've attached a utility I made to dump some display info. Try it with the Sabrent adapter. It's a work in progress. Run the command like this:
./AllRez > 7_AllRez_Sabrent.txt
I'm still trying to determine where InstallTimingWithWireFormats function in CoreDisplay framework is storing the wired formats and the DSC modes.
Code:
Values for range, encode, bits, color expressed as range_encode_bits_color in show log output:
range: "legacyRng"=0,"SDR"=1,"HDR10"=2,"DoVI_422"=4,"DoVI_tunnel"=8,"HDR_gamma"=0x10;
encode: "legacyEnc"=0,"RGB"=1,"444"=2,"422"=4,"420"=8;
bits: "legacyBit"=0,"_6"=1,"_8"=2,"10"=4,"12"=8,"16"=0x10;
color: "legacyClr"=0,"Native"=1,"sRGB"=2,"P3"=4,"Adobe"=8,"xvYCC"=0x10,"WGRGB"=0x20,"BT601"=0x40,"BT709"=0x80,"BT2020"=0x100,"BT2100"=0x200;
DSC message in show log output:
"Attempting to install DSC mode variant with parameters: BPP = %d, Width = %d, Height = %d"
Updates:
Feb 9, 2022: I've updated the AllRez utility again. It now dumps DisplayPort DPCD info. I added some M1 Mac stuff but haven't added the E-DDC, MCCS, DPCD stuff for them yet.
It seems I can't get DisplayPort Sideband Messages (for communicating with DisplayPort devices that are connected to branch devices - MST hubs) or E-DDC (for getting EDID longer than 256 bytes). For those capabilities, an IOFramebuffer patch is required (using something like Lilu/Whatevergreen).
April 19, 2022: The output is more compact (by removing some duplication). Parsed some more items from the IORegistry.
April 26, 2022: Moved AllRez to GitHub.
https://github.com/joevt/AllRez