Skip to content

Instantly share code, notes, and snippets.

@joevt
Last active July 23, 2024 03:03
Show Gist options
  • Save joevt/32e5efffe3459958759fb702579b9529 to your computer and use it in GitHub Desktop.
Save joevt/32e5efffe3459958759fb702579b9529 to your computer and use it in GitHub Desktop.
A set of shell functions used to view and edit EDIDs.
#!/bin/bash
#!/bin/zsh
# by joevt May 24/2023
#=========================================================================================
edid_decode=edid-decode
#=========================================================================================
# Modify EDID
getarrstart () {
# bash arrays start at 0
# zsh arrays start at 1 (applies only to [] syntax) but this can be changed with "setopt ksh_arrays"
# zsh arrays start at 0 when using ${arr:x:x} syntax
local arr=(1 0)
arrstart=${arr[1]}
}
getarrstart
if ((0)); then
# to clear errors in ShellCheck
debug=1
dodump=1
afterdetailedblockoffset=0
doclearserialnumber=0
docleardate=0
do8bpc=0
doRGB=0
do422=0
dosetpreferredisnative=0
doclearchromaticity=0
doclearestablishedtimings=0
doclearmanufacturerstimings=0
doclearstandardtimings=0
patches=()
fi
replacebytes () {
local bytepos=$(($1*2))
local thebytes=$2
local thelen=${#thebytes}
[[ -n $3 ]] && thelen=$(($3*2))
theedid=${theedid:0:$bytepos}${thebytes}${theedid:$bytepos+thelen}
}
repairchecksums () {
local blockoffset=0
while (( blockoffset*2 < ${#theedid} )); do
local blocktag=${theedid:$blockoffset*2:2}
if [[ $blocktag = 70 ]]; then
local sectionsize=$((0x${theedid:$blockoffset*2+4:2}))
replacebytes $((blockoffset+sectionsize+5)) "$(printf "%02x" $(( -($(echo -n "${theedid:$blockoffset*2+2:$sectionsize*2+8}" | sed "s/../+0x&/g")) & 0xff )))"
fi
replacebytes $((blockoffset+127)) "$(printf "%02x" $(( -($(echo -n "${theedid:$blockoffset*2:254}" | sed "s/../+0x&/g")) & 0xff )))"
((blockoffset+=128))
done
}
deleteextensionblock () {
local blockoffset=$(($1*128))
if (( blockoffset*2 < ${#theedid} )); then
(( debug )) && echo ": deleteextensionblock $blockoffset" 1>&2
replacebytes $blockoffset "" 128
replacebytes 126 "$(printf "%02x" $((0x${theedid:252:2}-1)))"
processedid
repairchecksums
else
echo "Block at $blockoffset doesn't exist"
fi
}
deleteextensionblocktype () {
local blocktype="$1"
local blockoffset=128
local blocknum=1
while (( blockoffset*2 < ${#theedid} )); do
local blocktag=${theedid:$blockoffset*2:2}
(( debug )) && echo ": deleteextensionblocktype $blocknum) $blockoffset $blocktag" 1>&2
if (( 0x$blocktag == blocktype )); then
deleteextensionblock $blocknum
else
((blockoffset+=128))
((blocknum++))
fi
done
}
adddisplayidextensionblock () {
local version="$1"
local producttype="$2"
(( debug )) && echo ": adddisplayidextensionblock $version $producttype" 1>&2
#echo adddisplayidextensionblock $version $producttype
replacebytes 126 "$(printf "%02x" $((0x${theedid:252:2}+1)))"
theedid+=$(printf "70%02x79%02x%0248x" $((0x${version//./})) "$producttype" 0)
repairchecksums
}
addctaextensionblock () {
local version="$1"
local YCbCrSupportbyte="$2"
local offset="$3"
if [[ -z $YCbCrSupportbyte ]]; then
YCbCrSupportbyte=4
fi
if [[ -z $offset ]]; then
offset=$((${#theedid} / 2))
fi
(( debug )) && echo ": addctaextensionblock $version" 1>&2
#echo addctaextensionblock $version $producttype
replacebytes 126 "$(printf "%02x" $((0x${theedid:252:2}+1)))"
# theedid=${theedid:0:$offset*2}$(printf "02%02x0400%0248x" $((version)) 0)${theedid:$offset*2}
# 00 edid tag 02
#
# 01 1 CTA version
# 02 2 detailed descriptors offset
# 03 3 YCbCrSupportbyte
theedid=${theedid:0:$offset*2}$(printf "02%02x04%02x%0248x" $((version)) $((YCbCrSupportbyte)) 0)${theedid:$offset*2}
repairchecksums
}
detailed_block () {
local detailedblock=$1
# other parameters are optional
local detailedblockoffset=$2
local willbereplaced=$3
local willbedeleted=$4
[[ -z $willbereplaced ]] && willbereplaced=1 # just output it
[[ -z $willbedeleted ]] && willbedeleted=1 # just output it
local dodump=$dodump
if (( $# == 1 )); then
dodump=1
fi
if [[ ${detailedblock:0:4} = 0000 ]]; then
case ${detailedblock} in
000000000000000000000000000000000000) (( dodump )) && printf "Empty" ;;
000000100000000000000000000000000000) (( dodump )) && printf "Dummy block" ;;
*)
case ${detailedblock:6:2} in
0*) (( dodump )) && printf "Manufacturer-specified data" ;;
10) (( dodump )) && printf "Dummy block" ;;
f7) (( dodump )) && printf "Established timings III" ;;
f8) (( dodump )) && printf "CVT 3-byte timing codes" ;;
f9) (( dodump )) && printf "Color management data" ;;
fa) (( dodump )) && printf "More standard timings" ;;
fb) (( dodump )) && printf "Color point" ;;
fc) (( dodump )) && printf "Monitor name" ;;
fd) (( dodump )) && printf "Display range limits" ;;
fe) (( dodump )) && printf "ASCII string" ;;
ff) (( dodump )) && printf "Serial number" ;;
*) (( dodump )) && printf "Reserved(%s)" "${detailedblock:6:2}" ;;
esac
(( dodump )) && printf ": %s" "$detailedblock"
esac
case ${detailedblock:6:2} in
fd)
local minV=$((((0x${detailedblock:8:2} >> 0) & 1) * 255 + 0x${detailedblock:10:2}))
local maxV=$((((0x${detailedblock:8:2} >> 1) & 1) * 255 + 0x${detailedblock:12:2}))
local minH=$((((0x${detailedblock:8:2} >> 2) & 1) * 255 + 0x${detailedblock:14:2}))
local maxH=$((((0x${detailedblock:8:2} >> 3) & 1) * 255 + 0x${detailedblock:16:2}))
local maxP=$((0x${detailedblock:18:2} * 10))
local timingtype="?"
case $((0x${detailedblock:20:2})) in
0) timingtype="default GTF" ;;
1) timingtype="limits only" ;;
2) timingtype="Secondary GTF" ;;
4) timingtype="CVT" ;;
*) timingtype="Reserved($((0x${detailedblock:20:2})))" ;;
esac
(( dodump )) && printf " = %d-%dHz %d-%dkHz %dMHz (%s:%s)\n" $minV $maxV $minH $maxH $maxP "$timingtype" "${detailedblock:22}"
;;
*) (( dodump )) && echo
;;
esac
else
local MHz=00$((0x${detailedblock:2:2}${detailedblock:0:2}))
local hmm=$((0x${detailedblock:28:1}${detailedblock:24:2}))
local vmm=$((0x${detailedblock:29:1}${detailedblock:26:2}))
local hactive=$((0x${detailedblock:8:1}${detailedblock:4:2}))
local hfront=$((((0x${detailedblock:22:1} >> 2) << 8) + 0x${detailedblock:16:2}))
local hpulse=$((((0x${detailedblock:22:1} & 3) << 8) + 0x${detailedblock:18:2}))
local hblank=$((0x${detailedblock:9:1}${detailedblock:6:2}))
local vactive=$((0x${detailedblock:14:1}${detailedblock:10:2}))
local vfront=$((((0x${detailedblock:23:1} >> 2) << 4) + 0x${detailedblock:20:1}))
local vpulse=$((((0x${detailedblock:23:1} & 3) << 4) + 0x${detailedblock:21:1}))
local vblank=$((0x${detailedblock:15:1}${detailedblock:12:2}))
local hborder=$((0x${detailedblock:30:2}))
local vborder=$((0x${detailedblock:32:2}))
local hsync='-'
local vsync='-'
local interlaced=''
local hback=$((hblank - hfront - hpulse))
local vback=$((vblank - vfront - vpulse))
(( 0x${detailedblock:34:2} >> 7 )) && interlaced='i'
(( 0x${detailedblock:34:2} & 2 )) && hsync='+'
(( 0x${detailedblock:34:2} & 4 )) && vsync='+'
local kHz='000'
local Hz='000'
if (( hactive + hblank )); then
kHz=000$(((10#$MHz * 100000 / (hactive+hblank) + 5)/10))
fi
if (( (vactive+vblank)*(hactive+hblank) )); then
Hz=000$(((10#$MHz * 100000000 / ((vactive+vblank)*(hactive+hblank)) + 5)/10))
fi
local timingstring=""
timingstring=$(
printf "%dx%d%s@%d.%sHz %d.%skHz %d.%sMHz h(%d %d %d %s) v(%d %d %d %s)" \
$hactive $vactive "$interlaced" \
$((10#$Hz/1000)) ${Hz: -3} $((10#$kHz/1000)) ${kHz: -3} $((10#$MHz/100)) ${MHz: -2} \
$hfront $hpulse $hback "$hsync" \
$vfront $vpulse $vback "$vsync"
)
(( debug )) && echo ":(( $willbereplaced == 0 ))" 1>&2
if (( willbereplaced == 0 && willbedeleted == 0 )); then
thetimings+=("$timingstring")
thetimingsoffsets+=("$detailedblockoffset")
thetimingshex+=("$detailedblock")
fi
(( dodump )) && printf "Detailed timing: %s = %s\n" "$detailedblock" "$timingstring"
fi
}
one_detailed_block () {
(( debug )) && echo ": one_detailed_block $*" 1>&2
local detailedblockoffset=$1
local willbereplaced=$2
local willbedeleted=$3
(( dodump )) && echo -n " ${detailedblockoffset}) "
detailed_block "${theedid:$detailedblockoffset*2:36}" "$detailedblockoffset" "$willbereplaced" "$willbedeleted"
}
detailed_blocks () {
(( debug )) && echo ": detailed_blocks $*" 1>&2
local param=""
for param in detailedblockoffset afterdetailedblockoffset dodump doreplacedescriptoroffset deletedescriptoroffset replacementdescriptor; do
(( debug )) && echo ": param $param=$1" 1>&2
eval "local $param=\"$1\""; shift
done
(( afterdetailedblockoffset = detailedblockoffset + (afterdetailedblockoffset - detailedblockoffset) / 18 * 18 ))
if (( detailedblockoffset + 18 <= afterdetailedblockoffset )); then
(( dodump )) && echo " Descriptors:"
while (( detailedblockoffset + 18 <= afterdetailedblockoffset )); do
local willbereplaced=$(( detailedblockoffset == doreplacedescriptoroffset ))
local willbedeleted=$(( detailedblockoffset == deletedescriptoroffset ))
one_detailed_block "$detailedblockoffset" "$willbereplaced" "$willbedeleted"
if (( willbereplaced )); then
replacebytes "$detailedblockoffset" "$replacementdescriptor"
(( dodump )) && echo " changed:"
one_detailed_block "$detailedblockoffset" 0 0
fi
if (( willbedeleted )); then
deletedescriptoroffset=0
replacebytes "$detailedblockoffset" "${theedid:(detailedblockoffset+18)*2:(afterdetailedblockoffset-detailedblockoffset-18)*2}""$(printf "000000%c00000000000000000000000000000" $((detailedblockoffset < 128)) )"
(( dodump )) && echo " changed: deleted"
else
((detailedblockoffset+=18))
fi
done
fi
}
colorc () {
local ccc=$1
# [0..1023]
# [0..9990]
# [10005..19995] add leading zeros (ignore the 1) and rounding
local rx=$((
(
(
(0x${theedid:54+ccc*2:2} << 2) | ((0x${theedid:50:4} >> (14-ccc*2)) & 3)
) * 10000 / 1024
) + 10005
));
echo -n 0.${rx:1:3} # output 3 digits (ignoring the leading 1)
}
dumptype1timingdescriptor () {
local type1timing=$1
local MHz=00$((0x${type1timing:4:2}${type1timing:2:2}${type1timing:0:2} + 1))
local preferred=''
(( 0x${type1timing:6:2} >> 7 )) && preferred=' preferred'
local support3D=' 3D:undefined'
case $(( (0x${type1timing:6:2} >> 5) & 3 )) in
0) support3D='' ;;
1) support3D=' stereo' ;;
2) support3D=' stereo/mono' ;;
3) support3D=' 3D:reserved' ;;
esac
local interlaced=''
(( (0x${type1timing:6:2} >> 4) & 1 )) && interlaced='i'
local aspect=' aspect:reserved'
case $(( 0x${type1timing:6:2} & 15 )) in
0) aspect=' 1:1' ;;
1) aspect=' 5:4' ;;
2) aspect=' 4:3' ;;
3) aspect=' 15:9' ;;
4) aspect=' 16:9' ;;
5) aspect=' 16:10' ;;
6) aspect=' 64:27' ;;
7) aspect=' 256:135' ;;
8) aspect=' aspect:undefined' ;;
esac
local hactive=$((0x${type1timing:10:2}${type1timing:8:2} + 1))
local hblank=$((0x${type1timing:14:2}${type1timing:12:2} + 1))
local hfront=$(((0x${type1timing:18:2}${type1timing:16:2} & 32767) + 1))
local hsync='-'
(( 0x${type1timing:18:2} >> 7 )) && hsync='+'
local hpulse=$((0x${type1timing:22:2}${type1timing:20:2} + 1))
local hback=$((hblank - hfront - hpulse))
local vactive=$((0x${type1timing:26:2}${type1timing:24:2} + 1))
local vblank=$((0x${type1timing:30:2}${type1timing:28:2} + 1))
local vfront=$(((0x${type1timing:34:2}${type1timing:32:2} & 32767) + 1))
local vsync='-'
(( 0x${type1timing:34:2} >> 7 )) && vsync='+'
local vpulse=$((0x${type1timing:38:2}${type1timing:36:2} + 1))
local vback=$((vblank - vfront - vpulse))
local kHz=000$(((10#$MHz * 100000 / (hactive+hblank) + 5)/10))
local Hz=000$(((10#$MHz * 100000000 / ((vactive+vblank)*(hactive+hblank)) + 5)/10))
printf "%dx%d%s@%d.%sHz %d.%skHz %d.%sMHz h(%d %d %d %s) v(%d %d %d %s)%s%s%s" \
$hactive $vactive "$interlaced" \
$((10#$Hz/1000)) ${Hz: -3} $((10#$kHz/1000)) ${kHz: -3} $((10#$MHz/100)) ${MHz: -2} \
$hfront $hpulse $hback "$hsync" \
$vfront $vpulse $vback "$vsync" \
"$support3D" "$aspect" "$preferred"
}
dumptileddisplaytopologyblock () {
local tiledblock=$1
local revision=$((0x${tiledblock:2:2} & 7)) # high 5 bits should be 0
local length=$((0x${tiledblock:4:2})) # should be 22
local capabilities=$((0x${tiledblock:6:2}))
local enclosuretype=$(( (capabilities >> 7) & 1 ))
local tilebezelinformationdescriptoravailable=$(( (capabilities >> 6) & 1 ))
# bit 5 reserved
local behaviorsome=$(( (capabilities >> 3) & 3 ))
local behavioronly=$(( (capabilities >> 0) & 7 ))
tileCountH=$(( 0x${tiledblock:8:1} + ((0x${tiledblock:12:2} >> 2) & 0x30) + 1 ))
tileCountV=$(( 0x${tiledblock:9:1} + ((0x${tiledblock:12:2} >> 0) & 0x30) + 1 ))
local tileLocationH=$(( 0x${tiledblock:10:1} + ((0x${tiledblock:12:2} << 2) & 0x30) ))
local tileLocationV=$(( 0x${tiledblock:11:1} + ((0x${tiledblock:12:2} << 4) & 0x30) ))
tileSizeH=$(( 0x${tiledblock:16:2}${tiledblock:14:2} + 1 ))
tileSizeV=$(( 0x${tiledblock:20:2}${tiledblock:18:2} + 1 ))
# depends on tilebezelinformationdescriptoravailable
local pixelmultiplier=$(( 0x${tiledblock:22:2} ))
local bezelsizetop=$(( 0x${tiledblock:24:2} ))
local bezelsizebottom=$(( 0x${tiledblock:26:2} ))
local bezelsizeleft=$(( 0x${tiledblock:28:2} ))
local bezelsizeright=$(( 0x${tiledblock:30:2} ))
local vendorid=""
vendorid=$(echo -n "${tiledblock:32:6}" | xxd -p -r)
local productid=$((0x${tiledblock:40:2}${tiledblock:38:2}))
local serialnumber=$((0x${tiledblock:48:2}${tiledblock:46:2}${tiledblock:44:2}${tiledblock:42:2}))
if (( dodump )); then
printf "%dx%d @ (%d,%d) of (%dx%d) vendor:%s product:0x%04x serial:%d" \
$tileSizeH $tileSizeV \
$tileLocationH $tileLocationV \
$tileCountH $tileCountV \
"$vendorid" $productid $serialnumber
printf ' enclosure:'
case $enclosuretype in
0) printf 'multiple' ;;
1) printf 'single' ;;
esac
printf ' some:'
case $behaviorsome in
0) printf 'undescribed' ;;
1) printf 'location' ;;
*) printf 'reserved%s' $behaviorsome ;;
esac
printf ' one:'
case $behavioronly in
0) printf 'undescribed' ;;
1) printf 'location' ;;
2) printf 'scaled' ;;
3) printf 'cloned' ;;
*) printf 'reserved%s' $behavioronly ;;
esac
if (( tilebezelinformationdescriptoravailable )); then
printf " bezel(t,l,b,r):(%d,%d,%d,%d)x%d" \
$bezelsizetop \
$bezelsizeleft \
$bezelsizebottom \
$bezelsizeright \
$pixelmultiplier
fi
fi
}
flagsstring () {
local label=$1
local bitfirst=$2
local bitlast=$3
local bitdirection=1
local theflags="$4"
local result=""
if [[ -z $theflags ]]; then
result="missing"
else
shift 4
theflags=$((0x$theflags))
(( bitlast < bitfirst )) && bitdirection=-1
result=""
local thebit=$bitfirst
while (( 1 )); do
if (( theflags & (2 ** thebit) )); then
[[ -n $result ]] && result+=","
[[ -z $1 ]] && result+="reserved$thebit" || result+="$1"
fi
(( $# )) && shift
(( thebit == bitlast )) && break
(( thebit = thebit + bitdirection ))
done
fi
[[ -n $result ]] && echo -n " $label:$result"
}
dumpdisplayinterfacefeaturesdata () {
local theblock=$1
local revision=$((0x${theblock:2:2} & 7)) # high 5 bits should be 0
local length=$((0x${theblock:4:2})) # should be 9+N
local colorDepthsRGB=""
local colorDepthsYCbCr444=""
local colorDepthsYCbCr422=""
local colorDepthsYCbCr420=""
local audio=""
local colorspace_eotf_combinations1=""
local colorspace_eotf_combinations2=""
colorDepthsRGB=$(flagsstring "RGB" 0 7 "${theblock:6:2}" 6 8 10 12 14 16)
colorDepthsYCbCr444=$(flagsstring "444" 0 7 "${theblock:8:2}" 6 8 10 12 14 16)
colorDepthsYCbCr422=$(flagsstring "422" 0 7 "${theblock:10:2}" 8 10 12 14 16)
colorDepthsYCbCr420=$(flagsstring "420" 0 7 "${theblock:12:2}" 8 10 12 14 16)
local minRateYCbCr420string=" 420(MHz):missing"
if [[ -n ${theblock:14:2} ]]; then
local minRateYCbCr420=$((0x${theblock:14:2} * 7425)) # / 100
(( minRateYCbCr420 > 0 )) && minRateYCbCr420string=" 420:≥$(( minRateYCbCr420/100 )).${minRateYCbCr420: -2}MHz" || minRateYCbCr420string=""
fi
audio=$(flagsstring "audio(kHz)" 7 0 "${theblock:16:2}" "32" "44.1" "48")
colorspace_eotf_combinations1=$(flagsstring "colorspace/eotf#1" 0 7 "${theblock:18:2}" \
"sRGB" \
"BT.601" \
"BT.709/BT.1886" \
"Adobe RGB" \
"DCI-P3" \
"BT.2020" \
"BT.2020/SMPTE ST 2084")
colorspace_eotf_combinations2=$(flagsstring "colorspace/eotf#2" 0 7 "${theblock:20:2}")
local additional_colorspace_eotf="missing"
if [[ -n ${theblock:22:2} ]]; then
local num_additional_colorspace_eotf=$((0x${theblock:22:2} & 7))
additional_colorspace_eotf=""
local cendx=""
for (( cendx = 0; cendx < num_additional_colorspace_eotf; cendx++ )); do
(( cendx > 0 )) && additional_colorspace_eotf+=","
local colorspace=""
local eotf=""
if [[ -z ${theblock:24+$cendx*2:2} ]]; then
additional_colorspace_eotf+="missing"
else
case $((0x${theblock:24+$cendx*2:2} >> 4)) in
0) colorspace="Undefined" ;;
1) colorspace="sRGB" ;;
2) colorspace="BT.601" ;;
3) colorspace="BT.709" ;;
4) colorspace="Adobe RGB" ;;
5) colorspace="DCI-P3" ;;
6) colorspace="BT.2020" ;;
7) colorspace="Custom" ;;
*) colorspace="Reserved$((0x${theblock:24+$cendx*2:2} >> 4))" ;;
esac
case $((0x${theblock:24+$cendx*2:2} & 15)) in
0) eotf="Undefined" ;;
1) eotf="sRGB" ;;
2) eotf="BT.601" ;;
3) eotf="BT.1886" ;;
4) eotf="Adobe RGB" ;;
5) eotf="DCI-P3" ;;
6) eotf="BT.2020" ;;
7) eotf="Gamma function" ;;
8) eotf="SMPTE ST 2084" ;;
9) eotf="Hybrid Log" ;;
10) eotf="Custom" ;;
*) eotf="Reserved$((0x${theblock:24+$cendx*2:2} & 15))" ;;
esac
[[ $colorspace = "$eotf" ]] && additional_colorspace_eotf+="$colorspace" || additional_colorspace_eotf+="$colorspace/$eotf"
fi
done
fi
local lengtherror=""
(( length != 9 + num_additional_colorspace_eotf )) && lengtherror+=" ($length != $((9 + num_additional_colorspace_eotf)))"
[[ -n $additional_colorspace_eotf ]] && additional_colorspace_eotf=" colorspace/eotf#n:$additional_colorspace_eotf"
if (( dodump )); then
printf "revision:%d%s%s%s%s%s%s%s%s%s%s" \
$revision \
"$colorDepthsRGB" \
"$colorDepthsYCbCr444" \
"$colorDepthsYCbCr422" \
"$colorDepthsYCbCr420" \
"$minRateYCbCr420string" \
"$audio" \
"$colorspace_eotf_combinations1" \
"$colorspace_eotf_combinations2" \
"$additional_colorspace_eotf" \
"$lengtherror"
fi
}
processedid () {
(( debug )) && echo ": processedid $*" 1>&2
local ctablocktypetodelete=":"
local newctablocks=()
local currentnewctablock=0
local newctadescriptors=()
local currentnewctadescriptor=0
local displayidblocktypetodelete=9999
local newdisplayidblocks=()
local currentnewdisplayidblock=0
while (( $# )); do
local param="$1"; shift
eval "local $param=1"
case "$param" in
doreplacedescriptor)
local doreplacedescriptoroffset="$1"; shift
local replacementdescriptor="$1"; shift ;;
doaddctablock)
local doaddctablockoffset="$1"; shift
if (( doaddctablockoffset == 0 )); then
doaddctablockoffset=$EndOfLastctablock
fi
(( debug )) && echo ": doaddctablock $doaddctablockoffset" 1>&2
while (( $# )); do
(( debug )) && echo ": doaddctablock param: $1" 1>&2
newctablocks+=("$1"); shift
done
;;
dodeletectablock)
local deletectablockoffset="$1"; shift ;;
dodeletectablocktype)
while [[ "$1" =~ [0-9a-f]+ ]]; do
ctablocktypetodelete="${ctablocktypetodelete}$1:"; shift
done
;;
doaddctadescriptor)
local doaddctadescriptoroffset="$1"; shift
if (( doaddctadescriptoroffset == 0 )); then
doaddctadescriptoroffset=$EndOfLastctadescriptor
fi
(( debug )) && echo ": doaddctadescriptor $doaddctadescriptoroffset" 1>&2
while (( $# )); do
(( debug )) && echo ": doaddctadescriptor param: $1" 1>&2
newctadescriptors+=("$1"); shift
done
;;
dodeletedescriptor)
local deletedescriptoroffset="$1"; shift ;;
doadddisplayidblock)
local doadddisplayidblockoffset="$1"; shift
if (( doadddisplayidblockoffset == 0 )); then
doadddisplayidblockoffset=$EndOfLastDisplayIDblock
fi
(( debug )) && echo ": doadddisplayidblock $doadddisplayidblockoffset" 1>&2
while (( $# )); do
(( debug )) && echo ": doadddisplayidblock param: $1" 1>&2
newdisplayidblocks+=("$1"); shift
done
;;
dodeletedisplayidblock)
local deletedisplayidblockoffset="$1"; shift ;;
dodeletedisplayidblockblocktype)
local displayidblocktypetodelete="$1"; shift ;;
dosetpreferredisnative)
preferredvalue="$1"; shift ;;
esac
done
# Remember the end of the last CTA block (-1 means no CTA blocks exist.
# It is also used by addctablock for inserting new CTA blocks at the first available location.
EndOfLastctablock=-1
# Keep a list of found CTA blocks.
ctablocks=()
# Remember the end of the last CTA descriptor block (-1 means no CTA blocks exist.
# It is also used by addctadescriptor for inserting new CTA blocks at the first available location.
EndOfLastctadescriptor=-1
# Keep a list of found CTA blocks.
ctadescriptors=()
# Remember the end of the last DisplayID block (-1 means no DisplayID blocks exist.
# It is also used by adddisplayidblock for inserting new DisplayID blocks at the first available location.
EndOfLastDisplayIDblock=-1
# Keep a list of found DisplayID blocks.
DisplayIDblocks=()
# Keep a list of found timings and their offsets.
thetimings=()
thetimingsoffsets=()
thetimingshex=()
HasAudio=0
HasTile=0
(( debug )) && echo ": parse 1" 1>&2
theproductid=$((0x${theedid:22:2}${theedid:20:2}))
thevendorid=$((0x${theedid:16:4}))
(( debug )) && echo ": parse 2" 1>&2
thevendorcode="$(printf "%06x" $((((thevendorid&0x7c00)<<6)+((thevendorid&0x3e0)<<3)+(thevendorid&0x1f)+0x404040)) | xxd -p -r)"
(( debug )) && echo ": parse 2.1" 1>&2
theweekofmanufacture=$((0x${theedid:32:2}))
(( debug )) && echo ": parse 2.2" 1>&2
theyearofmanufacture=$((0x${theedid:34:2}+1990))
(( debug )) && echo ": parse 3" 1>&2
thevendordir="DisplayVendorID-$(printf "%x" $thevendorid)"
theproductfile="${thevendordir}/DisplayProductID-$(printf "%x" $theproductid)"
themanufacturefile="${thevendordir}/DisplayYearManufacture-$theyearofmanufacture-DisplayWeekManufacture-$theweekofmanufacture"
thefilenamebase="$(printf "EDID_%s_%x_%x" "$thevendorcode" $thevendorid $theproductid)"
(( debug )) && echo ": parse 4" 1>&2
theEDIDversion=$((0x${theedid:0x12*2:2})).$((0x${theedid:0x13*2:2})) # 1.3 or 1.4
isdigital=$(( 0x${theedid:0x14*2:1} > 7 )) # 0 or 1
colordepth=$(( 0x${theedid:0x14*2:1} & 7 ))
featuresupportbyte=$((0x${theedid:0x18*2:2}))
featuresupport=$(( (featuresupportbyte >> 3) & 3 ))
preferredisnative=$(( (featuresupportbyte >> 1) & 1 ))
iscontinuous=$(( (featuresupportbyte >> 0) & 1 ))
(( dodump )) && echo "0) EDID $theEDIDversion"
(( dodump )) && printf " Vendor ID: %s %d = 0x%x\n" "$thevendorcode" $thevendorid $thevendorid
(( dodump )) && printf " Product ID: %d = 0x%x\n" $theproductid $theproductid
if [[ ${theedid:24:8} != 00000000 ]]; then
(( dodump )) && printf " Serial Number: %d" $((0x${theedid:30:2}${theedid:28:2}${theedid:26:2}${theedid:24:2}))
if (( doclearserialnumber )); then
replacebytes 12 00000000
(( dodump )) && printf " changed: unspecified"
fi
(( dodump )) && echo
fi
if [[ ${theedid:32:4} != 0000 ]]; then
if (( dodump )); then
case ${theedid:32:4} in
00*) printf " Made in year %s" "$theyearofmanufacture" ;;
ff*) printf " Model year: %s" "$theyearofmanufacture" ;;
*) printf " Made in week %s of %s" "$theweekofmanufacture" "$theyearofmanufacture"
esac
fi
if (( docleardate )); then
replacebytes 16 0000
(( dodump )) && printf " changed: unspecified"
fi
(( dodump )) && echo
fi
(( dodump )) && printf " "
if [[ " $theEDIDversion" < " 1.4" ]]; then
(( dodump )) &&
case $featuresupport in
0) echo "Monochrome or Grayscale" ;;
1) echo "RGB color" ;;
2) echo "Non-RGB color" ;;
3) echo "Undefined" ;;
esac
else
(( dodump )) &&
case $isdigital$featuresupport in
00) echo "Monochrome or Grayscale" ;;
01) echo "RGB color" ;;
02) echo "Non-RGB color" ;;
03) echo "Undefined" ;;
10) printf "RGB 4:4:4" ;;
11) printf "RGB 4:4:4, YCrCb 4:4:4" ;;
12) printf "RGB 4:4:4, YCrCb 4:2:2" ;;
13) printf "RGB 4:4:4, YCrCb 4:4:4, YCrCb 4:2:2" ;;
esac
if (( isdigital )); then
(( dodump )) &&
case $colordepth in
0) echo "; undefined bpc" ;;
1) echo "; 6 bpc" ;;
2) echo "; 8 bpc" ;;
3) echo "; 10 bpc" ;;
4) echo "; 12 bpc" ;;
5) echo "; 14 bpc" ;;
6) echo "; 16 bpc" ;;
7) echo "; 18 bpc error" ;;
esac
if (( do8bpc )); then
replacebytes 20 "$(printf "%02x" $(((0x${theedid:0x14*2:2} & ~0x70) | 0x20)))"
(( dodump )) && echo ' changed: 8 bpc'
fi
fi
if (( doRGB )); then
local newfeaturesupportbyte=$(((featuresupportbyte & ~0x18) | (0 << 3) ))
replacebytes 24 "$(printf "%02x" $newfeaturesupportbyte)"
(( dodump )) &&
case $isdigital in
0) echo ' changed: Monochrome or Grayscale' ;;
1) echo ' changed: RGB 4:4:4' ;;
esac
fi
if (( do422 )); then
local newfeaturesupportbyte=$(((featuresupportbyte & ~0x18) | (3 << 3) ))
replacebytes 24 "$(printf "%02x" $newfeaturesupportbyte)"
(( dodump )) &&
case $isdigital in
0) echo ' changed: Undefined' ;;
1) echo ' changed: RGB 4:4:4, YCrCb 4:4:4, YCrCb 4:2:2' ;;
esac
fi
fi
(( dodump )) &&
case $preferredisnative in
1) echo " Preferred Timing Mode is native pixel format and preferred refresh rate" ;;
esac
if (( dosetpreferredisnative && (preferredvalue != preferredisnative) )); then
local newfeaturesupportbyte=$(((featuresupportbyte & ~2) | (preferredvalue << 1) ))
replacebytes 24 "$(printf "%02x" $newfeaturesupportbyte)"
(( dodump )) && echo ' changed'
fi
(( dodump )) &&
case $iscontinuous in
0) echo " Display is non-continuous frequency" ;;
1) echo " Display is continuous frequency" ;;
esac
if [[ ${theedid:50:20} != 00000000000000000000 ]]; then
(( dodump )) && printf " Color characteristics: R(%s,%s) G(%s,%s) B(%s,%s) W(%s,%s)" "$(colorc 0)" "$(colorc 1)" "$(colorc 2)" "$(colorc 3)" "$(colorc 4)" "$(colorc 5)" "$(colorc 6)" "$(colorc 7)"
if (( doclearchromaticity )); then
replacebytes 25 00000000000000000000
(( dodump )) && printf " changed: unspecified"
fi
(( dodump )) && echo
fi
if [[ ${theedid:70:4} != 0000 ]]; then
(( dodump )) && printf " Established timings: %s" "${theedid:70:4}"
if (( doclearestablishedtimings )); then
replacebytes 35 0000
(( dodump )) && printf " changed: unspecified"
fi
(( dodump )) && echo
fi
if [[ ${theedid:74:2} != 00 ]]; then
(( dodump )) && printf " Manufacturer's timings: %s" "${theedid:74:2}"
if (( doclearmanufacturerstimings )); then
replacebytes 37 00
(( dodump )) && printf " changed: unspecified"
fi
(( dodump )) && echo
fi
if [[ ${theedid:76:32} != 01010101010101010101010101010101 ]]; then
(( dodump )) && printf " Standard timings: %s" "${theedid:76:32}"
if (( doclearstandardtimings )); then
replacebytes 38 01010101010101010101010101010101
(( dodump )) && printf " changed: unspecified"
fi
(( dodump )) && echo
fi
detailed_blocks 54 126 "$dodump" "$doreplacedescriptoroffset" "$deletedescriptoroffset" "$replacementdescriptor"
local blockoffset=128
while (( blockoffset*2 < ${#theedid} )); do
(( debug )) && echo ": extension block $blockoffset" 1>&2
local theblock=${theedid:$blockoffset*2:254}
(( debug )) && echo ": extension theblock = $theblock" 1>&2
local blocktag=${theblock:0:2}
(( debug )) && echo ": blocktag = $blocktag" 1>&2
if [[ $blocktag = 02 ]]; then
(( debug )) && echo ": parsing CTA extension block" 1>&2
# 00 edid tag 02
#
# 01 1 CTA version
# 02 2 detailed descriptors offset
# 03 3 YCbCrSupportbyte
#
# 04 00 CTA data block #1 3 bit type (0-7), 5 bit length - 1 (1-32)
# 05 01 CTA data block #1 extended tag code if type is 7
#
# detailedTimingDescriptorsOffset 18 byte descriptors
#
# 7F EDID checksum
CTAversion=$((0x${theblock:2:2}))
(( debug )) && echo ": CTAversion = $CTAversion" 1>&2
local detailedTimingDescriptorsOffset=$((0x${theblock:4:2}))
local afterctadescriptorblockoffset=127
YCbCrSupportbyte=$((0x${theblock:6:2}))
if (( CTAversion > 1 )); then
(( dodump )) && echo "$blockoffset) CTA-861 extension block with new version $CTAversion"
YCbCrSupport=$((( YCbCrSupportbyte >> 4) & 3))
(( dodump )) &&
case $YCbCrSupport in
0) echo " No YCbCr support" ;;
1) echo " YCbCr 4:2:2" ;;
2) echo " YCbCr 4:4:4" ;;
3) echo " YCbCr 4:4:4, YCbCr 4:2:2" ;;
esac
if (( doRGB )); then
newYCbCrSupportbyte=$(((YCbCrSupportbyte & ~0x30) | (0 << 4) ))
replacebytes $((blockoffset+3)) "$(printf "%02x" $newYCbCrSupportbyte)"
(( dodump )) && echo ' changed: No YCbCr support'
fi
if (( do422 )); then
newYCbCrSupportbyte=$(((YCbCrSupportbyte & ~0x30) | (3 << 4) ))
replacebytes $((blockoffset+3)) "$(printf "%02x" $newYCbCrSupportbyte)"
(( dodump )) && echo ' changed: YCbCr 4:4:4, YCbCr 4:2:2'
fi
BasicAudioSupport=$((( YCbCrSupportbyte >> 6) & 1))
(( dodump )) &&
case $BasicAudioSupport in
1) echo " Basic audio support" ;;
esac
else
(( dodump )) && echo "$blockoffset) CTA-861 extension block with old version $CTAversion"
fi
local newctablock=""
local lastctablockoffset=0
local ctablocksAdded=0
local newctadescriptor=""
local lastctadescriptoroffset=0
local ctadescriptorsAdded=0
if (( CTAversion > 2 )); then
# Loop CTA blocks
local CTAdatablockoffset=4
if (( doaddctablockoffset == -1 )); then
doaddctablockoffset=$((blockoffset + CTAdatablockoffset))
fi
local overflow=0
while (( CTAdatablockoffset <= detailedTimingDescriptorsOffset )); do
if (( blockoffset + CTAdatablockoffset == doaddctablockoffset )); then
(( debug )) && echo ": found CTA block $doaddctablockoffset" 1>&2
# concatenate all the new blocks that will fit
while (( currentnewctablock < ${#newctablocks[@]} )); do
local CTAdatablock=${newctablocks[currentnewctablock+arrstart]}
(( debug )) && echo ": testing $CTAdatablock" 1>&2
if (( ${#CTAdatablock}/2 > 0x7b )); then
echo "Error: CTA block is too large: ${CTAdatablock}" 1>&2
else
if (( 4 + (${#newctablock} + ${#CTAdatablock})/2 > 0x7f )); then
(( debug )) && echo ": overflow" 1>&2
overflow=1
break
fi
newctablock+="${CTAdatablock}"
((ctablocksAdded++))
(( debug )) && echo ": $ctablocksAdded: concetenate result: $newctablock" 1>&2
fi
((currentnewctablock++))
done
newctablocks=("${newctablocks[@]:$currentnewctablock}")
currentnewctablock=0
if (( ctablocksAdded == 0 )); then
# none fit here, try in the next block
doaddctablockoffset=-1
fi
fi
if (( CTAdatablockoffset >= detailedTimingDescriptorsOffset)); then
break
fi
local CTAdatablocklength=$(((0x${theblock:$CTAdatablockoffset*2:2} & 0x1f) + 1))
local CTAdatablock=${theblock:$CTAdatablockoffset*2:$CTAdatablocklength * 2}
# blocks that won't fit are inserted into a list that will be added later
if (( overflow || (4 + ${#newctablock}/2 + CTAdatablocklength > 0x7f) )); then
overflow=1
newctablocks+=("$CTAdatablock")
if ((lastctablockoffset == 0)); then
lastctablockoffset=$CTAdatablockoffset
fi
else
newctablock+="${CTAdatablock}"
fi
((CTAdatablockoffset+=CTAdatablocklength))
done
if ((lastctablockoffset == 0)); then
lastctablockoffset=$CTAdatablockoffset
fi
fi # CTAversion > 2
if ((1)); then
# Loop CTA descriptors
local ctadescriptorblockoffset=$((detailedTimingDescriptorsOffset))
if (( doaddctadescriptoroffset == -1 )); then
doaddctadescriptoroffset=$((blockoffset + ctadescriptorblockoffset))
fi
local overflow=0
while (( ctadescriptorblockoffset <= afterctadescriptorblockoffset )); do
if (( blockoffset + ctadescriptorblockoffset == doaddctadescriptoroffset )); then
(( debug )) && echo ": found CTA descriptor offset $doaddctadescriptoroffset" 1>&2
# concatenate all the new blocks that will fit
while (( currentnewctadescriptor < ${#newctadescriptors[@]} )); do
local ctadescriptor=${newctadescriptors[currentnewctadescriptor+arrstart]}
(( debug )) && echo ": testing $ctadescriptor" 1>&2
if (( ${#ctadescriptor}/2 != 18 )); then
echo "Error: CTA descriptor is wrong size (18 bytes expected): ${ctadescriptor}" 1>&2
else
if (( 4 + (${#newctablock} + ${#newctadescriptor} + ${#ctadescriptor})/2 > 0x7f )); then
(( debug )) && echo ": overflow" 1>&2
overflow=1
break
fi
newctadescriptor+="${ctadescriptor}"
((ctadescriptorsAdded++))
(( debug )) && echo ": $ctadescriptorsAdded: concetenate result: $newctadescriptor" 1>&2
fi
((currentnewctadescriptor++))
done
newctadescriptors=("${newctadescriptors[@]:$currentnewctadescriptor}")
currentnewctadescriptor=0
if (( ctadescriptorsAdded == 0 )); then
# none fit here, try in the next block
doaddctadescriptoroffset=-1
fi
fi
if (( ctadescriptorblockoffset + 18 > afterctadescriptorblockoffset )); then
break
fi
local ctadescriptorlength=18
local ctadescriptor=${theblock:$ctadescriptorblockoffset*2:$ctadescriptorlength * 2}
# blocks that won't fit are inserted into a list that will be added later
if (( overflow || (4 + (${#newctablock} + ${#newctadescriptor})/2 + ctadescriptorlength > 0x7f) )); then
overflow=1
case ${ctadescriptor} in
000000000000000000000000000000000000) ;; # "Empty"
000000100000000000000000000000000000) ;; # "Dummy block"
*)
newctadescriptors+=("$ctadescriptor")
if ((lastctadescriptoroffset == 0)); then
lastctadescriptoroffset=$ctadescriptorblockoffset
fi
;;
esac
else
newctadescriptor+="${ctadescriptor}"
fi
((ctadescriptorblockoffset+=ctadescriptorlength))
done
if ((lastctadescriptoroffset == 0)); then
lastctadescriptoroffset=$ctadescriptorblockoffset
fi
fi
if (( ctablocksAdded || ctadescriptorsAdded )); then
detailedTimingDescriptorsOffset=$(( 4 + ${#newctablock}/2 ))
replacebytes $(( 2 + blockoffset )) "$( printf "%02x" "$detailedTimingDescriptorsOffset" )"
replacebytes $(( 4 + blockoffset )) "${newctablock}${newctadescriptor}$(printf "%0*x" $((0x7b*2 - ${#newctablock} - ${#newctadescriptor})) 0)"
theblock=${theedid:$blockoffset*2:254}
if (( ${#newctablocks[@]} > 0 )); then
doaddctablockoffset=-1
fi
if (( ${#newctadescriptors[@]} > 0 )); then
doaddctadescriptoroffset=-1
fi
fi
if (( CTAversion > 2 )); then
# Process CTA blocks
CTAdatablockoffset=4
(( dodump && (CTAdatablockoffset < detailedTimingDescriptorsOffset) )) && echo " CTA data blocks:"
while (( CTAdatablockoffset < detailedTimingDescriptorsOffset )); do
CTAdatablocklength=$(((0x${theblock:$CTAdatablockoffset*2:2} & 0x1f) + 1))
CTAdatablock=${theblock:$CTAdatablockoffset*2:$CTAdatablocklength * 2}
CTAtagcode=$((0x${CTAdatablock:0:2} >> 5))
if (( CTAtagcode == 7 )); then
CTAtagcode=$(printf "%x" $((0x${CTAdatablock:2:2} + 0x700)))
fi
if (( dodump )); then
echo -n " $((blockoffset + CTAdatablockoffset))) "
case $CTAtagcode in
0) printf "Reserved" ;;
1) printf "Audio" ;;
2) printf "Video" ;;
3) printf "Vendor-specific" ;;
4) printf "Speaker allocation" ;;
5) printf "Display transfer characteristic" ;;
6) printf "Reserved" ;;
700) printf "Video capability" ;;
701) printf "Vendor-specific video" ;;
702) printf "VESA display device" ;;
703) printf "VESA video timing block" ;;
704) printf "Reserved for HDMI video" ;;
705) printf "Colorimetry" ;;
706) printf "HDR static metadata" ;;
707) printf "HDR dynamic metadata" ;;
70d) printf "Video format preference" ;;
70e) printf "YCbCr 4:2:0 video" ;;
70f) printf "YCbCr 4:2:0 capability map" ;;
710) printf "Reserved for CTA miscellaneous audio fields" ;;
711) printf "Vendor-specific audio" ;;
712) printf "Reserved for HDMI audio" ;;
713) printf "Room configuration" ;;
714) printf "Speaker location" ;;
720) printf "InfoFrames" ;;
*)
if (( 0x$CTAtagcode < 0x70d )); then
printf "Reserved for video-related"
elif (( 0x$CTAtagcode < 0x720 )); then
printf "Reserved for audio-related"
else
printf "Reserved"
fi
printf " (e%s)" "${CTAtagcode: -2}"
;;
esac
echo -n ": $CTAdatablock"
fi
local thepattern=".*:$CTAtagcode:.*"
local willberemoved=0
if (( blockoffset + CTAdatablockoffset == deletectablockoffset )); then
willberemoved=1
deletectablockoffset=0
fi
if [[ $ctablocktypetodelete =~ $thepattern ]]; then
willberemoved=1
fi
case $CTAtagcode in
1)
(( dodump )) && echo
HasAudio=1
;;
3)
IEEEOUI=${CTAdatablock:6:2}${CTAdatablock:4:2}${CTAdatablock:2:2}
(( dodump )) && echo -n " = $IEEEOUI:"
case $IEEEOUI in
000c03)
(( dodump )) && echo " HDMI Licensing, LLC -> H14b VSDB"
H14bByte=${CTAdatablock:12:2}
if [[ -n $H14bByte ]]; then
H14bByte=$((0x${H14bByte}))
(( dodump )) && printf " Supports AI - %s\n" "$( (( H14bByte & 0x80 )) && echo "Yes" || echo "No")"
(( dodump )) &&
case $(( (H14bByte >> 4) & 7 )) in
0) echo " Supports Deep Color - No" ;;
1) echo " Supports Deep Color - 10 bpc" ;;
2) echo " Supports Deep Color - 12 bpc" ;;
3) echo " Supports Deep Color - 10 bpc, 12 bpc" ;;
4) echo " Supports Deep Color - 16 bpc" ;;
5) echo " Supports Deep Color - 10 bpc, 16 bpc" ;;
6) echo " Supports Deep Color - 12 bpc, 16 bpc" ;;
7) echo " Supports Deep Color - 10 bpc, 12 bpc, 16 bpc" ;;
esac
if (( do8bpc )); then
local newH14bByte=$(( H14bByte & ~0x70 ))
replacebytes $((blockoffset+CTAdatablockoffset+6)) "$(printf "%02x" $newH14bByte)"
(( dodump )) && echo " changed: Supports Deep Color - No"
fi
(( dodump )) && printf " Supports Deep Color YCbCr 4:4:4 - %s\n" "$( (( H14bByte & 0x08 )) && echo "Yes" || echo "No")"
if (( doRGB )); then
local newH14bByte=$(( (H14bByte & ~0x08) | (0 << 3) )) # 0: No (RGB only), 1: Yes (YCbCr 4:4:4)
replacebytes $((blockoffset+CTAdatablockoffset+6)) "$(printf "%02x" $newH14bByte)"
(( dodump )) && echo " changed: Support YCbCr 4:4:4 - No"
fi
if (( do422 )); then
local newH14bByte=$(( (H14bByte & ~0x08) | (1 << 3) )) # 0: No (RGB only), 1: Yes (YCbCr 4:4:4)
replacebytes $((blockoffset+CTAdatablockoffset+6)) "$(printf "%02x" $newH14bByte)"
(( dodump )) && echo " changed: Support YCbCr 4:4:4 - Yes"
fi
(( dodump )) && printf " Supports DVI Dual-Link - %s\n" "$( (( H14bByte & 0x01 )) && echo "Yes" || echo "No")"
fi
;;
c45dd8)
(( dodump )) && echo " HDMI Forum -> HF-VSDB"
HFByte=$((0x${CTAdatablock:14:2}))
HF=$(( (HFByte >> 0) & 7 ))
(( dodump )) &&
case $HF in
0) echo " 4:2:0 10/12/16 bpc - No" ;;
1) echo " 4:2:0 10 bpc - Yes" ;;
2) echo " 4:2:0 12 bpc - Yes" ;;
3) echo " 4:2:0 10/12 bpc - Yes" ;;
4) echo " 4:2:0 16 bpc - Yes" ;;
5) echo " 4:2:0 10/16 bpc - Yes" ;;
6) echo " 4:2:0 12/16 bpc - Yes" ;;
7) echo " 4:2:0 10/12/16 bpc - Yes" ;;
esac
if (( doRGB )); then
newHFByte=$(( (HFByte & ~0x07) | (0 << 0) ))
replacebytes $((blockoffset+CTAdatablockoffset+7)) "$(printf "%02x" $newHFByte)"
(( dodump )) && echo " changed: 4:2:0 10/12/16 bpc - No"
fi
if (( do422 )); then
newHFByte=$(( (HFByte & ~0x07) | (7 << 0) ))
replacebytes $((blockoffset+CTAdatablockoffset+7)) "$(printf "%02x" $newHFByte)"
(( dodump )) && echo " changed: 4:2:0 10/12/16 bpc - Yes"
fi
;;
*)
(( dodump )) && echo " Unknown OUI"
;;
esac
;;
*)
(( dodump )) && echo
;;
esac
if (( willberemoved )); then
((detailedTimingDescriptorsOffset-=CTAdatablocklength))
replacebytes $((blockoffset+2)) "$(printf "%02x" "$detailedTimingDescriptorsOffset")"
local nextctablockoffset=$((CTAdatablockoffset+CTAdatablocklength))
replacebytes $((blockoffset+CTAdatablockoffset)) "${theedid:(blockoffset+nextctablockoffset)*2:(127-nextctablockoffset)*2}${CTAdatablock//?/0}"
theblock=${theedid:$blockoffset*2:254}
(( dodump )) && echo " changed: deleted"
else
ctablocks+=("$CTAdatablock")
((CTAdatablockoffset+=CTAdatablocklength))
EndOfLastctablock=$((blockoffset + CTAdatablockoffset))
fi
done
(( dodump && (ctablocksAdded > 0) )) && echo " changed: added $ctablocksAdded"
if ((CTAdatablockoffset < detailedTimingDescriptorsOffset || detailedTimingDescriptorsOffset + 18 > 0x7f )); then
(( dodump )) && echo " $((blockoffset + CTAdatablockoffset)))"
fi
fi
# Process CTA descriptors
detailed_blocks $((blockoffset+detailedTimingDescriptorsOffset)) $((blockoffset + 127)) "$dodump" "$doreplacedescriptoroffset" "$deletedescriptoroffset" "$replacementdescriptor"
local ctadescriptorblockoffset=$((detailedTimingDescriptorsOffset))
local ctadescriptorlength=18
while (( ctadescriptorblockoffset + 18 <= afterctadescriptorblockoffset )); do
local ctadescriptor=${theblock:$ctadescriptorblockoffset*2:$ctadescriptorlength * 2}
case ${ctadescriptor} in
000000000000000000000000000000000000) ;; # "Empty"
000000100000000000000000000000000000) ;; # "Dummy block"
*)
ctadescriptors+=("$ctadescriptor")
EndOfLastctadescriptor=$((blockoffset + ctadescriptorblockoffset + ctadescriptorlength))
;;
esac
((ctadescriptorblockoffset+=ctadescriptorlength))
done
(( dodump && (ctadescriptorsAdded > 0) )) && echo " changed: added $ctadescriptorsAdded"
elif [[ $blocktag = 70 ]]; then
(( debug )) && echo ": parsing DisplayID extension block" 1>&2
# 00 edid tag 70
#
# 01 1 DisplayID version
# 02 2 DisplayID len 0x79
# 03 3 DisplayID product type
# 04 4 DisplayID nextcount
#
# 05 00 DisplayID block #1
# 06 01 DisplayID block #1 revision
# 07 02 DisplayID block #1 length
#
# 7E 5 displayID checksum
#
# 7F EDID checksum
DisplayIDversion=${theblock:2:1}.${theblock:3:1}
# maximum length of DisplayID section in an EDID extension block is 121 = 0x79 bytes.
# this is the length of all the DisplayID blocks
DisplayIDlength=$((0x${theblock:4:2}))
DisplayIDproducttype=$((0x${theblock:6:2}))
#DisplayIDextcount=$((0x${theblock:8:2}))
DisplayIDblockoffset=5
if (( doadddisplayidblockoffset == -1 )); then
doadddisplayidblockoffset=$((blockoffset + DisplayIDblockoffset))
fi
local newdisplayidblock=""
local newDisplayIDblocklength=0
local lastDisplayIDblockoffset=0
local displayidblocksAdded=0
local overflow=0
while (( DisplayIDblockoffset < DisplayIDlength + 5 )); do
if (( blockoffset + DisplayIDblockoffset == doadddisplayidblockoffset )); then
(( debug )) && echo ": found DisplayID block $doadddisplayidblockoffset" 1>&2
# concatenate all the new blocks that will fit
while (( currentnewdisplayidblock < ${#newdisplayidblocks[@]} )); do
local DisplayIDblock=${newdisplayidblocks[currentnewdisplayidblock+arrstart]}
(( debug )) && echo ": testing $DisplayIDblock" 1>&2
if (( ${#DisplayIDblock}/2 > 0x79 )); then
echo "Error: DisplayID block is too large: ${DisplayIDblock}" 1>&2
else
if (( (${#newdisplayidblock} + ${#DisplayIDblock})/2 > 0x7e - DisplayIDblockoffset )); then
(( debug )) && echo ": overflow" 1>&2
overflow=1
break
fi
newdisplayidblock+="${DisplayIDblock}"
((displayidblocksAdded++))
(( debug )) && echo ": $displayidblocksAdded: concetenate result: $newdisplayidblock" 1>&2
fi
((currentnewdisplayidblock++))
done
newdisplayidblocks=("${newdisplayidblocks[@]:$currentnewdisplayidblock}")
currentnewdisplayidblock=0
newDisplayIDblocklength=$((${#newdisplayidblock}/2))
if (( displayidblocksAdded == 0 )); then
# none fit here, try in the next block
doadddisplayidblockoffset=-1
fi
fi
# stop when the remaining bytes are 0
local remains=${theblock:$DisplayIDblockoffset * 2:($DisplayIDlength + 5 - $DisplayIDblockoffset)*2}
if [ -z "${remains//0/}" ]; then
break
fi
local DisplayIDblocklength=$((0x${theblock:$DisplayIDblockoffset * 2 + 4:2} + 3))
# blocks that won't fit are inserted into a list that will be added later
if (( overflow || (DisplayIDblockoffset + DisplayIDblocklength + newDisplayIDblocklength > 0x7e) )); then
overflow=1
local DisplayIDblock=${theblock:$DisplayIDblockoffset*2:$DisplayIDblocklength * 2}
newdisplayidblocks+=("$DisplayIDblock")
if ((lastDisplayIDblockoffset == 0)); then
lastDisplayIDblockoffset=$DisplayIDblockoffset
fi
fi
((DisplayIDblockoffset+=DisplayIDblocklength))
done
if ((lastDisplayIDblockoffset == 0)); then
lastDisplayIDblockoffset=$DisplayIDblockoffset
fi
(( dodump )) && printf "%s) DisplayID extension block: version %s, type %d\n" $blockoffset "$DisplayIDversion" $DisplayIDproducttype
DisplayIDblockoffset=5
while (( DisplayIDblockoffset < DisplayIDlength + 5 )); do
if (( blockoffset + DisplayIDblockoffset == doadddisplayidblockoffset )); then
replacebytes $((doadddisplayidblockoffset)) "$newdisplayidblock${theblock:$DisplayIDblockoffset*2:($lastDisplayIDblockoffset-$DisplayIDblockoffset)*2}"
doadddisplayidblockoffset=-1
((lastDisplayIDblockoffset+=newDisplayIDblocklength))
if (( DisplayIDlength + 5 < lastDisplayIDblockoffset )); then
DisplayIDlength=$((lastDisplayIDblockoffset - 5))
replacebytes $((blockoffset+2)) "$(printf "%02x" $DisplayIDlength)"
fi
theblock=${theedid:$blockoffset*2:254}
fi
local DisplayIDblocklength=$((0x${theblock:$DisplayIDblockoffset * 2 + 4:2} + 3))
(( dodump )) && echo -n " $((blockoffset + DisplayIDblockoffset)))"
local DisplayIDblock=${theblock:$DisplayIDblockoffset*2:$DisplayIDblocklength * 2}
local DisplayIDtagcode=${DisplayIDblock:0:2}
# stop when the remaining bytes are 0
local remains=${theblock:$DisplayIDblockoffset * 2:($DisplayIDlength + 5 - $DisplayIDblockoffset)*2}
if [ -z "${remains//0/}" ]; then
(( dodump )) && echo
break
fi
if (( dodump )); then
printf " "
case $DisplayIDtagcode in
# DisplayID 1.3
00) printf "Product identification" ;;
01) printf "Display parameters" ;;
02) printf "Color characteristics" ;;
03) printf "Type 1 detailed timing" ;;
04) printf "Type 2 detailed timing" ;;
05) printf "Type 3 short timing" ;;
06) printf "Type 4 DMT timing" ;;
07) printf "VESA timings" ;;
08) printf "CTA timings" ;;
09) printf "Video timing range" ;;
0a) printf "Product serial number" ;;
0b) printf "General purpose ASCII string" ;;
0c) printf "Display device data" ;;
0d) printf "Interface power sequencing" ;;
0e) printf "Transfer characterisitics" ;;
0f) printf "Display interface" ;;
10) printf "Stereo display interface" ;;
12) printf "Tiled display topology" ;;
# DisplayID 2.0
20) printf "Product ID data" ;;
21) printf "Display parameters data" ;;
22) printf "Type 7 timing - detailed timing data" ;;
23) printf "Type 8 timing - enumerated timing code data" ;;
24) printf "Type 9 timing - formula-based timing data" ;;
25) printf "Dynamic video timing range limits data" ;;
26) printf "Display interface features data" ;;
27) printf "Stereo display interface data" ;;
28) printf "Tiled display topology data" ;;
29) printf "ContainerID data" ;;
# 2Ah .. 7Dh RESERVED for Additional VESA-defined Data Blocks
7e) printf "2.0 Vendor-specific data" ;;
7f) printf "1.3 Vendor-specific data" ;;
81) printf "CTA DisplayID data" ;;
# 82h .. FFh RESERVED
*)
if (( 0x$DisplayIDtagcode <= 0x1f )); then
printf "Reserved for legacy"
elif (( 0x$DisplayIDtagcode <= 0x7d )); then
printf "Reserved for VESA"
elif (( 0x$DisplayIDtagcode <= 7f )); then
printf "Reserved"
else
printf "Reserved for external standards"
fi
printf " (%s)" "$DisplayIDtagcode"
;;
esac
echo -n ": $DisplayIDblock"
fi
local willberemoved=0
if (( blockoffset + DisplayIDblockoffset == deletedisplayidblockoffset )); then
willberemoved=1
deletedisplayidblockoffset=0
fi
if (( 0x$DisplayIDtagcode == displayidblocktypetodelete )); then
willberemoved=1
fi
case $DisplayIDtagcode in
03)
local timing1offset=3
(( dodump == 1 && DisplayIDblocklength > 23 )) && echo
while ((timing1offset < DisplayIDblocklength )); do
local type1timing=${DisplayIDblock:$timing1offset*2:40}
if (( dodump )); then
(( DisplayIDblocklength > 23 )) && echo -n " $((blockoffset+DisplayIDblockoffset+timing1offset))) $type1timing"
fi
local type1timingtext=""
type1timingtext="$(dumptype1timingdescriptor "$type1timing")"
if (( willberemoved == 0 )); then
thetimings+=("$type1timingtext")
thetimingsoffsets+=("$(( blockoffset + DisplayIDblockoffset + timing1offset ))")
thetimingshex+=("$type1timing")
fi
(( dodump )) && echo " = $type1timingtext"
((timing1offset+=20))
done
;;
12)
HasTile=1
(( dodump )) && printf " = "
dumptileddisplaytopologyblock "$DisplayIDblock"
(( dodump )) && echo
;;
26) (( dodump )) && printf " = "
dumpdisplayinterfacefeaturesdata "$DisplayIDblock"
(( dodump )) && echo
if (( do8bpc || doRGB )); then
# RGB: 6 8 10 12 14 16
# 444: 6 8 10 12 14 16
# 422: 8 10 12 14 16
# 420: 8 10 12 14 16
local validdepths=$((0x3f3f1f1f))
if (( do8bpc )); then
((validdepths &= 0x03030101))
fi
if (( doRGB )); then
((validdepths &= 0xff000000))
fi
replacebytes $((blockoffset + DisplayIDblockoffset + 3)) "$( printf "%08x" $(( 0x${DisplayIDblock:6:8} & validdepths )) )"
theblock=${theedid:$blockoffset*2:254}
DisplayIDblock=${theblock:$DisplayIDblockoffset*2:$DisplayIDblocklength * 2}
if (( dodump )); then
printf " changed: %s = " "$DisplayIDblock"
dumpdisplayinterfacefeaturesdata "$DisplayIDblock"
echo
fi
fi
;;
*)
(( dodump )) && echo
;;
esac
if (( willberemoved )); then
(( debug )) && echo ":" replacebytes $((blockoffset + DisplayIDblockoffset)) "${theblock:($DisplayIDblockoffset + $DisplayIDblocklength)*2:($lastDisplayIDblockoffset - $DisplayIDblockoffset - $DisplayIDblocklength)*2}${DisplayIDblock//?/0}" 1>&2
(( debug )) && echo ":" $DisplayIDblockoffset $DisplayIDblocklength "$lastDisplayIDblockoffset" "${DisplayIDblock//?/0}" 1>&2
replacebytes $((blockoffset + DisplayIDblockoffset)) "${theblock:($DisplayIDblockoffset + $DisplayIDblocklength)*2:($lastDisplayIDblockoffset - $DisplayIDblockoffset - $DisplayIDblocklength)*2}${DisplayIDblock//?/0}"
((lastDisplayIDblockoffset-=DisplayIDblocklength))
theblock=${theedid:$blockoffset*2:254}
(( dodump )) && echo " changed: deleted"
else
DisplayIDblocks+=("$DisplayIDblock")
((DisplayIDblockoffset+=DisplayIDblocklength))
EndOfLastDisplayIDblock=$((blockoffset + DisplayIDblockoffset))
fi
done
(( dodump && (displayidblocksAdded > 0) )) && echo " changed: added $displayidblocksAdded"
else
(( dodump )) && echo "$blockoffset) Extension block: type:$blocktag: $theblock"
fi
((blockoffset+=128))
if (( ((blockoffset*2 == ${#theedid}) || (0x${theedid:$blockoffset*2:2} != 2) ) && ((doaddctablockoffset == -1) && (${#newctablocks[@]} > 0) || (doaddctadescriptoroffset == -1) && (${#newctadescriptors[@]} > 0)) )); then
addctaextensionblock "${CTAversion:=3}" "$YCbCrSupportbyte" "$blockoffset"
fi
if (( (blockoffset*2 == ${#theedid}) && (doadddisplayidblockoffset == -1) && (${#newdisplayidblocks[@]} > 0) )); then
adddisplayidextensionblock "${DisplayIDversion:=1.3}" ${DisplayIDproducttype:=0}
fi
done
(( dodump )) && echo "$blockoffset) End"
# post processing
local timingndx=0
local tileTimingsCurrent=""
for ((timingndx = 0 ; timingndx < ${#thetimings[@]} ; timingndx++)); do
local thetiming="${thetimings[timingndx+arrstart]}"
local thewidth=${thetiming%%x*}
local theheight=${thetiming#*x}
theheight=${theheight%%@*}
local thetimingrefresh=${thetiming#*@}
thetimingrefresh=${thetimingrefresh%%Hz*}
thetimingrefresh=0000${thetimingrefresh/./}
thetimingrefresh=${thetimingrefresh: -7}
if (( thewidth > maxresH )); then
maxresH=$thewidth
maxresV=$theheight
fi
if (( HasTile )); then
if [[ "$thetiming" =~ ${tileSizeH}x${tileSizeV}@([0-9.]+)Hz.* ]]; then
tileTimingsCurrent+="$thetimingrefresh $thetiming\n"
fi
fi
done
if (( HasTile )); then
if [[ -n $tileTimingsCurrent ]]; then
tileTimings=$(echo "$tileTimingsCurrent" | sort -r)
tileRefresh=$(( (10#${tileTimings%% *} + 50)/100)) # round to 1 decimal
if (( tileRefresh % 10 )); then
tileRefresh=$((tileRefresh / 10)).${tileRefresh: -1}
else
tileRefresh=$((tileRefresh / 10))
fi
fi
fi
}
createdetailedtiming () {
# currently supports only "Normal Display" with "Digital Separate Sync"
local param=""
for param in MHz hactive hfront hpulse hback vactive vfront vpulse vback hsync vsync hmm vmm hborder vborder; do
eval "local $param=\"$1\""; (( $# )) && shift
done
local interlaced=0
[[ -n ${vactive//[^i]} ]] && interlaced=1
vactive=${vactive//[^0-9]}
[[ "$hsync" = '+' ]] && hsync=1 || hsync=0
[[ "$vsync" = '+' ]] && vsync=1 || vsync=0
local MHzint=$(( (10#$(printf "0%s.000" $MHz | sed -E "s/^([0-9]*)\.([0-9])\.*([0-9])\.*([0-9]).*/\1\2\3\4/g") + 5) / 10))
local hblank=$((hfront + hpulse + hback))
local vblank=$((vfront + vpulse + vback))
printf "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x" \
$((MHzint & 255)) $((MHzint >> 8)) \
$((hactive & 255)) \
$((hblank & 255)) \
$(((hactive >> 8 << 4) + (hblank >> 8))) \
$((vactive & 255)) \
$((vblank & 255)) \
$(((vactive >> 8 << 4) + (vblank >> 8))) \
$((hfront & 255)) \
$((hpulse & 255)) \
$((((vfront & 15) << 4) + (vpulse & 15))) \
$(((hfront >> 8 << 6) + (hpulse >> 8 << 4) + (vfront >> 4 << 2) + (vpulse >> 4))) \
$((${hmm:=0} & 255)) \
$((${vmm:=0} & 255)) \
$(((${hmm:=0} >> 8 << 4) + (${vmm:=0} >> 8))) \
${hborder:=0} \
${vborder:=0} \
$(((interlaced << 7) + 0x18 + (vsync << 2) + (hsync << 1)))
}
createtype1timingdescriptor () {
# currently supports only "Normal Display" with "Digital Separate Sync"
# no 3D, no interlaced
local param=""
for param in MHz hactive hfront hpulse hback vactive vfront vpulse vback hsync vsync preferred; do
eval "local $param=\"$1\""; (( $# )) && shift
done
local interlaced=0
[[ -n ${vactive//[^i]} ]] && interlaced=1
vactive=${vactive//[^0-9]}
[[ "$hsync" = '+' ]] && hsync=1 || hsync=0
[[ "$vsync" = '+' ]] && vsync=1 || vsync=0
local MHzint=$(((10#$(printf "0%s.000" $MHz | sed -E "s/^([0-9]*)\.([0-9])\.*([0-9])\.*([0-9]).*/\1\2\3\4/g") + 5) / 10))
local hblank=$((hfront + hpulse + hback))
local vblank=$((vfront + vpulse + vback))
local aspect=8
case $(((hactive * 10000 / vactive + 5)/10)) in
1000) aspect=0 ;;
1250) aspect=1 ;;
1333) aspect=2 ;;
1667) aspect=3 ;;
1778) aspect=4 ;;
1600) aspect=5 ;;
2370) aspect=6 ;;
1896) aspect=7 ;;
esac
((MHzint-=1))
((hactive-=1))
((hblank-=1))
((hfront-=1))
((hpulse-=1))
((vactive-=1))
((vblank-=1))
((vfront-=1))
((vpulse-=1))
printf "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x" \
$((MHzint & 255)) $(((MHzint >> 8) & 255)) $((MHzint >> 16)) \
$(((${preferred:=0} << 7) + (interlaced << 4) + aspect)) \
$((hactive & 255)) $((hactive >> 8)) \
$((hblank & 255)) $((hblank >> 8)) \
$((hfront & 255)) $((((hfront >> 8) & 127) + (hsync << 7))) \
$((hpulse & 255)) $((hpulse >> 8)) \
$((vactive & 255)) $((vactive >> 8)) \
$((vblank & 255)) $((vblank >> 8)) \
$((vfront & 255)) $((((vfront >> 8) & 127) + (vsync << 7))) \
$((vpulse & 255)) $((vpulse >> 8))
}
createtype1timingblock () {
local type1timingblock=""
while (( $# )); do
type1timingblock+=$1
shift
done
printf "0300%02x%s" $((${#type1timingblock}/2)) "$type1timingblock"
}
addchromasubsampling () {
processedid do422 dodeletectablocktype 70f # = YCbCr 4:2:0 capability map
repairchecksums
}
removechromasubsampling () {
processedid doRGB dodeletectablocktype 70f # = YCbCr 4:2:0 capability map
repairchecksums
}
set8bpcmax () {
processedid do8bpc dodeletectablocktype 706 707 # = HDR static metadata, HDR dynamic metadata
repairchecksums
}
deletectablock () {
processedid dodeletectablock "$1"
repairchecksums
}
deletectablocktype () {
processedid dodeletectablocktype "$1"
repairchecksums
}
addctablock () {
processedid doaddctablock "$@"
repairchecksums
}
deletedescriptor () {
processedid dodeletedescriptor "$1"
repairchecksums
}
addctadescriptor () {
processedid doaddctadescriptor "$@"
repairchecksums
}
replacedescriptor () {
processedid doreplacedescriptor "$1" "$2"
repairchecksums
}
cleardate () {
processedid docleardate
repairchecksums
}
clearserialnumber () {
processedid doclearserialnumber
repairchecksums
}
setpreferredisnative () {
processedid dosetpreferredisnative "$1"
repairchecksums
}
clearchromaticity () {
processedid doclearchromaticity
repairchecksums
}
clearestablishedtimings () {
processedid doclearestablishedtimings
repairchecksums
}
clearmanufacturerstimings () {
processedid doclearmanufacturerstimings
repairchecksums
}
clearstandardtimings () {
processedid doclearstandardtimings
repairchecksums
}
deletedisplayidblock () {
processedid dodeletedisplayidblock "$1"
repairchecksums
}
deletedisplayidblocktype () {
processedid dodeletedisplayidblockblocktype "$1"
repairchecksums
}
adddisplayidblock () {
processedid doadddisplayidblock "$@"
repairchecksums
}
dumpedid () {
processedid dodump
}
dumpedidall () {
local dostdout=0
local thefolderpath="."
while (( $# )); do
case "$1" in
"-s") dostdout=1 ;;
*) thefolderpath="$1" ;;
esac
shift
done
local saveedid="$theedid"
local i=""
for ((i = 1 ; i <= ${#edids[@]} ; i++)); do
useedidnum "$i"
if ((dostdout)); then
echo "=========================================================================================="
echo "$i)"
echo "${paths[i+arrstart-1]}"
echo "=================="
dumpedid
else
dumpedid > "${thefolderpath:=.}/${thefilenamebase}_dumpedid.txt"
fi
done
useedidstring "$saveedid"
}
createdummydescriptor () {
echo -n "000000100000000000000000000000000000"
}
createemptydescriptor () {
echo -n "000000000000000000000000000000000000"
}
#=========================================================================================
# Use EDID
clearedidinfo () {
tileTimings=""
tileSizeH=""
tileSizeV=""
tileRefresh=""
maxresH=0
maxresV=0
}
useedidstring () {
clearedidinfo
(( debug )) && echo ": useedidstring $1" 1>&2
theedid="$1"
processedid
}
useedidnum () {
clearedidinfo
theedid=${edids[arrstart - 1 + $1]}
processedid
thefilenamebase="${thefilenamebase}_$i"
}
#=========================================================================================
# Get EDID
clearedids () {
edids=()
paths=()
}
clearedids
applypatches () {
thefilename="$1"
sourcename="$2"
if [[ -f "${thefilename}" ]]; then
if /usr/libexec/PlistBuddy -c 'Print :edid-patches' "${thefilename}" > /dev/null 2>&1; then
local index=0
while [ -n "$(/usr/libexec/PlistBuddy -c "Print :edid-patches:$index:offset" "${thefilename}" 2> /dev/null)" ]; do
local theoffset=""
local thedata=""
theoffset=$(/usr/libexec/PlistBuddy -c "Print :edid-patches:$index:offset" "${thefilename}")
thedata=$(/usr/libexec/PlistBuddy -c "Print :edid-patches:$index:data" "${thefilename}" | xxd -p -c 99999)
thedata=${thedata%0a} # remove extra linefeed that was added by PlistBuddy
theedid=${theedid:0:$theoffset*2}${thedata}${theedid:$theoffset*2 + ${#thedata}}
((index+=1))
done
if (( ${#theedid} % 256 == 0 )); then
if [[ -n $sourcename ]]; then
addedid "${thefilename}:edid-patches of ($sourcename)" "$theedid"
else
addedid "${thefilename}:edid-patches" "$theedid"
fi
else
theedid=""
fi
fi
fi
}
addedid () {
local saveedid="$theedid"
local thepath="$1"
useedidstring "$2"
local isnew=1
local i=""
for ((i = 0 ; i < ${#edids[@]} ; i++)); do
if [[ $theedid = "${edids[i+arrstart]}" ]]; then
if [[ ! "$(printf "_\n%s\n_" "${paths[i+arrstart]}")" =~ $(printf ".*\n%s\n.*" "${thepath}") ]]; then
paths[i+arrstart]="$(printf "%s\n%s" "${paths[i+arrstart]}" "$thepath")"
fi
isnew=0
break
fi
done
if (( isnew )); then
(( debug )) && echo ": isnew" 1>&2
edids+=("$theedid")
paths+=("$thepath")
local newndx=${#edids[@]}
local thefilename=""
local thedir=""
for thedir in "/System" ""; do
local fulldir="$thedir/Library/Displays/Contents/Resources/Overrides"
for thefilename in "$fulldir/$themanufacturefile" "$fulldir/$theproductfile"; do
(( debug )) && echo ": checking $thefilename" 1>&2
if [[ -f "${thefilename}" ]]; then
loadoverridefile "${thefilename}"
[[ -n $lastoverrideedid ]] && theedid=$lastoverrideedid
applypatches "${thefilename}" "$newndx"
fi
done
for thefilename in "$fulldir/${themanufacturefile}.mtdd" "$fulldir/${theproductfile}.mtdd"; do
(( debug )) && echo ": checking $thefilename" 1>&2
if [[ -f "${thefilename}" ]]; then
loadmtddfile "${thefilename}"
fi
done
done
fi
useedidstring "$saveedid"
}
loadoverridefile () {
while (( $# )); do
local thefilename=""
thefilename="$1"
shift
# lastoverrideedid is not local
lastoverrideedid=$(/usr/libexec/PlistBuddy -c 'Print :IODisplayEDID' "${thefilename}" 2> /dev/null | xxd -p -c 99999)
lastoverrideedid=${lastoverrideedid%0a} # remove extra linefeed that was added by PlistBuddy
[[ -n $lastoverrideedid ]] && addedid "${thefilename}:IODisplayEDID" "$lastoverrideedid"
local theedid=""
theedid=$(/usr/libexec/PlistBuddy -c 'Print :"SwitchResX backuped settings":IODisplayEDID' "${thefilename}" 2> /dev/null | xxd -p -c 99999)
theedid=${theedid%0a} # remove extra linefeed that was added by PlistBuddy
[[ -n $theedid ]] && addedid "${thefilename}:SwitchResX backuped settings:IODisplayEDID" "$theedid"
done
}
loadmtddfile () {
while (( $# )); do
local thefilename="$1"
shift
local theedid=""
theedid=$(/usr/libexec/PlistBuddy -c 'Print :display:overlay' "${thefilename}" 2> /dev/null | xxd -p -c 99999)
theedid=${theedid%0a} # remove extra linefeed that was added by PlistBuddy
[[ -n $theedid ]] && addedid "${thefilename}:overlay" "$theedid"
done
}
loadswitchresxfile () {
while (( $# )); do
local thefilename="$1"
shift
local theedid=""
theedid=$(sed -n -E -e $'/^ *<([0-9A-F \t]+)[ \t]*>/s//\\1/p' "${thefilename}" | xxd -r -p | xxd -p -c 99999)
addedid "${thefilename}:switchresx" "$theedid"
done
}
loadmamhexfile () {
while (( $# )); do
local thefilename="$1"
shift
local theedid=""
theedid=$(sed -n -E -e "/^:[0-9A-F]{8}([0-9A-F]{64})[0-9A-F]{2}.?$/s//\1/p" "${thefilename}" | xxd -p -r | xxd -p -c 99999)
addedid "${thefilename}:Monitor Asset Manager.hex" "$theedid"
done
}
loadmaminffile () {
while (( $# )); do
local thefilename="$1"
shift
local theedid=""
theedid=$(sed -n -E -e '/^HKR,EDID_OVERRIDE,".+",0x01((,0x[0-9A-F]{2})*).?$/s//\1/;s/,0x//gp' "${thefilename}" | xxd -p -r | xxd -p -c 99999)
addedid "${thefilename}:Monitor Asset Manager.hex" "$theedid"
done
}
loadmamdatfile () {
while (( $# )); do
local thefilename="$1"
shift
local theedid=""
theedid=$(sed -n -E -e '/^[0-9A-F]{2,4} \|(( [0-9A-F]{2})*).?$/s//\1/p' "${thefilename}" | xxd -r -p | xxd -p -c 99999)
addedid "${thefilename}:Monitor Asset Manager.dat" "$theedid"
done
}
numstrings=0
loadstring () {
local theedid="$1"
local sourcename="$2"
theedid=$(echo ${theedid//0x/} | tr -d ' \n\r\t,$')
if [[ -z $sourcename ]]; then
((numstrings++))
sourcename="string:$numstrings"
fi
addedid "$sourcename" "$(tr 'A-F' 'a-f' <<< "$theedid")"
}
loadcurrentedid () {
loadstring "$theedid" "$1"
}
loadbinfile () {
while (( $# )); do
local thefilename="$1"
shift
addedid "$thefilename" "$(xxd -p -c 99999 < "$thefilename")"
done
}
loadhexfile () {
while (( $# )); do
local thefilename="$1"
shift
addedid "$thefilename" "$(
if [[ -z $(tr -d 'a-fA-F0-9 \n\t' < "$thefilename") ]]; then
xxd -p -r < "$thefilename"
else
xxd -r < "$thefilename"
fi | xxd -p -c 99999
)"
done
}
loadoneediditem () {
local ediditem="$1"
local thepath="${ediditem% = <*}"
local theedid="${ediditem##* = <}"
local theedid="${theedid%>}"
(( debug )) && echo ":" addedid "${thepath}" "${theedid}" 1>&2
addedid "${thepath}" "${theedid}"
}
loadagdcfile () {
while (( $# )); do
local thefilename="$1"
shift
IFS=$'\n'
local ediditem=""
for ediditem in $(
perl -e '
$thepath=""; while (<>) {
if ( m|^(?:\[\d+\] )?IOService:(/.*)| ) { $thepath = $1 }
if ( /^[#|]* ?EDID Dump (Port \d+) - Start( ##)?/ ) { $theport = $1; $edid = "" }
if ( m|^( )?/\*? ...: \*?/ ?(.*)| ) { $edid .= $2 }
if ( /^(## )?EDID Dump (Port \d+) - End( ##)?/ and length $edid > 0 ) { $edid =~ s/0x(..)(, *)?/$1/g; print "'"${thefilename}"':" . $thepath . "/" . $theport . " = <" . $edid . ">\n" }
}
' < "${thefilename}"
); do
(( debug )) && echo ":" loadoneediditem "${ediditem}" 1>&2
loadoneediditem "${ediditem}"
done
done
}
loadmamfile () {
while (( $# )); do
local thefilename="$1"
shift
IFS=$'\n'
local ediditem=""
for ediditem in $(
perl -e '
$thepath=""; while (<>) {
if ( m|^(Monitor( #.*\S)?)\s*$| ) { $thepath = $1 }
if ( /^Raw data.?$/ ) { $edid = "" }
if ( m| *(([0-9A-F]{2},){31}[0-9A-F]{2},).?$| ) { $edid .= $1 }
if ( m| *(([0-9A-F]{2},){31}[0-9A-F]{2})[^,]*$| ) { $edid .= $1 . ","; $edid =~ s/(..),/$1/g; print "'"${thefilename}"':" . $thepath . " = <" . lc $edid . ">\n" }
}
' < "${thefilename}"
); do
(( debug )) && echo ":" loadoneediditem "${ediditem}" 1>&2
loadoneediditem "${ediditem}"
done
done
}
loadagdc () {
local thefilename="$1"
if [[ -z $thefilename ]]; then
thefilename=$(mktemp /tmp/local_AGDCDiagnose.XXXXXX) || exit 1
fi
/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a > "$thefilename" 2>&1
loadagdcfile "$thefilename"
}
loadioregfile () {
while (( $# )); do
local thefilename="$1"
shift
IFS=$'\n'
local ediditem=""
for ediditem in $(
perl -e '
$thepath=""; while (<>) {
if ( /^([ |]*)\+\-o (.+) </ ) { $indent = (length $1) / 2; $name = $2; $thepath =~ s|^((/[^/]*){$indent}).*|$1/$name| }
if ( /^[ |]*"([^"]+)" = <(00ffffffffffff00[0-9a-f]*)>/i ) { print "'"${thefilename}"'" . ":" . $thepath . "/" . $1 . " = <" . $2 . ">\n" }
}
' < "${thefilename}"
); do
loadoneediditem "${ediditem}"
done
done
}
loadallrezfile () {
while (( $# )); do
local thefilename="$1"
shift
IFS=$'\n'
local ediditem=""
for ediditem in $(
perl -e '
$agdcpath="";
$thepath=""; while (<>) {
if ( /^( *)(\w.*?) += \{$/ ) { $indent = (length $1) / 4; $name = $2 =~ s|/|•|gr; $thepath =~ s|^((/[^/]*){$indent}).*|$1/$name| }
elsif ( /^( *)\}.*$/ ) { $indent = (length $1) / 4; $thepath =~ s|^((/[^/]*){$indent}).*|$1| }
if ( /^ *(\w.*?) += (00ffffffffffff00[0-9a-f]*)/i ) { $var = $1; $edid = $2; print "'"${thefilename}"'" . ":" . ($thepath =~ s|•|/|gr) . "/" . $var . " = <" . $edid . ">\n" }
if ( m|^(?:\[\d+\] )?IOService:(/.*)| ) { $agdcpath = $1 }
if ( /^[#|]* ?EDID Dump (Port \d+) - Start( ##)?/ ) { $theport = $1; $edid = "" }
if ( m|^( )?/\*? ...: \*?/ ?(.*)| ) { $edid .= $2 }
if ( /^(## )?EDID Dump (Port \d+) - End( ##)?/ and length $edid > 0 ) { $edid =~ s/0x(..)(, *)?/$1/g; print "'"${thefilename}"':" . $agdcpath . "/" . $theport . " = <" . $edid . ">\n" }
}
' < "${thefilename}"
); do
loadoneediditem "${ediditem}"
done
done
}
loadioreg () {
local tmpfilename=""
tmpfilename=$(mktemp /tmp/local_ioreg.XXXXXX) || exit 1
ioreg -lw0 > "$tmpfilename"
loadioregfile "$tmpfilename"
}
listedids () {
local saveedid="$theedid"
local i=""
for ((i = 1 ; i <= ${#edids[@]} ; i++)); do
useedidnum "$i"
echo "$i)"
echo "vendor:$thevendorid ($thevendorcode) product:$theproductid ID:${thevendorcode}$(printf "%04X" $theproductid)/$(printf "$theedid" | md5 | sed -E 's/(.{12}).*/\1/' | tr 'abcdef' 'ABCDEF')"
echo "override product name:$theproductfile"
echo "override date name:$themanufacturefile"
echo "strings:$(echo -n "$theedid" | xxd -p -r | strings - | tr -s '\n\t ' ' ' | sed '/ *$/s///' )"
echo "theedid=$theedid"
echo "sources:"
echo "${paths[i+arrstart-1]}"
echo
done
useedidstring "$saveedid"
}
#=========================================================================================
# Files from EDID
edidbin () {
echo -n "$theedid" | xxd -p -r
}
edidbinall () {
local saveedid="$theedid"
local thefolderpath="$1"
local i=""
for ((i = 1 ; i <= ${#edids[@]} ; i++)); do
useedidnum "$i"
edidbin > "${thefolderpath:=.}/${thefilenamebase}.bin"
done
useedidstring "$saveedid"
}
decode () {
local tmpfilename=""
tmpfilename=$(mktemp /tmp/edidbin.XXXXXX) || exit 1
edidbin > "$tmpfilename"
"$edid_decode" -cC --skip-sha "$tmpfilename" 2>&1
}
decodeall () {
local dostdout=0
local thefolderpath="."
while (( $# )); do
case "$1" in
"-s") dostdout=1 ;;
*) thefolderpath="$1" ;;
esac
shift
done
local saveedid="$theedid"
local i=""
for ((i = 1 ; i <= ${#edids[@]} ; i++)); do
useedidnum "$i"
if ((dostdout)); then
echo "=========================================================================================="
echo "$i)"
echo "${paths[i+arrstart-1]}"
echo "=================="
decode
else
decode > "${thefolderpath:=.}/${thefilenamebase}_edid-decode.txt"
fi
done
useedidstring "$saveedid"
}
agdcdevicedump () {
# Indent the Device Dump section of a AGDCDiagnose file.
# Note that some DICT sizes seem to be greater than the number of lines included in the dump.
local thefilename="$1"
perl -e '
sub dict {
my $indent = $_[0];
my $lines = $_[1];
while ($lines-- != 0) {
my $theline = "";
do {
$theline = <>;
} until ($theline !~ /^$/);
die if ($theline =~ /\-\-END Device Dump\-\-/);
print $indent.$theline;
dict($indent."\t", $1) if ($theline =~ /^.*[\t ]DICT[\t ]+(\d+)\n$/);
}
}
while (<>) { if ( /\-\-BEGIN Device Dump\-\-/ ) { print "----------------\n"; eval { dict("", -1); } } }
' < "$thefilename"
}
updateoverride () {
local thefilename="$1"
plutil -replace IODisplayEDID -data "$(echo -n "$theedid" | xxd -p -r | base64)" "${thefilename}"
plutil -replace DisplayProductID -integer $((0x${theedid:22:2}${theedid:20:2})) "${thefilename}"
plutil -replace DisplayVendorID -integer $((0x${theedid:16:4})) "${thefilename}"
}
makeoverride () {
local noedid=0
if [[ $1 == '-noedid' ]]; then
noedid=1
shift
fi
local thefilename="${theproductfile}"
if [[ $1 == '-m' ]]; then
thefilename="$themanufacturefile"
shift
fi
if [[ -z $1 ]]; then
[[ -d "${thevendordir}" ]] || mkdir "${thevendordir}"
else
thefilename="$1"
fi
[[ -f "${thefilename}" ]] && rm "${thefilename}"
/usr/libexec/PlistBuddy \
-c "Add :DisplayProductID integer ${theproductid}" \
-c "Add :DisplayVendorID integer ${thevendorid}" \
-c 'Add :IODisplayEDID data ""' \
-c 'Add :DisplayPixelDimensions data ""' \
"${thefilename}" > /dev/null
plutil -replace 'IODisplayEDID' -data "$(echo -n "$theedid" | xxd -p -r | base64)" "${thefilename}"
# the hex is big endian
plutil -replace 'DisplayPixelDimensions' -data "$(printf "%08x%08x" $maxresH $maxresV | xxd -p -r | base64)" "${thefilename}"
if (( noedid )); then
plutil -remove 'IODisplayEDID' "${thefilename}"
fi
# // IOGraphicsLibInternal.h flags for IOGFlags in override file
# enum {
# // disable any use of scaled modes,
# kOvrFlagDisableScaling = 0x00000001,
# // remove driver modes,
# kOvrFlagDisableNonScaled = 0x00000002,
# // disable scaled modes made up by the system (just use the override list)
# kOvrFlagDisableGenerated = 0x00000004
# };
}
installoverride () {
local thedir="/System"
local dstfile="$theproductfile"
local thefilename=""
while (( $# )); do
if [[ $1 == '-l' ]]; then
thedir=""
elif [[ $1 == '-m' ]]; then
dstfile="$themanufacturefile"
else
thefilename="$1"
fi
shift
done
[[ -z $thefilename ]] && thefilename="${dstfile}"
echo "# source file: ${thefilename}"
mount | grep ' on / ' | grep -q 'read-only' && sudo mount -uw /
local fulldir="$thedir/Library/Displays/Contents/Resources/Overrides"
[[ -d "${fulldir}/${thevendordir}" ]] || sudo mkdir -p "${fulldir}/${thevendordir}"
sudo cp "${thefilename}" "${fulldir}/${dstfile}"
echo "# Installed file: ${fulldir}/${dstfile}"
if [[ "$(basename "${dstfile}")" =~ DisplayProductID-.* ]]; then
[[ -f ${fulldir}/$themanufacturefile ]] && echo "# Warning: alternative override exists at ${fulldir}/$themanufacturefile"
else
[[ -f ${fulldir}/$theproductfile ]] && echo "# Warning: alternative override exists at ${fulldir}/$theproductfile"
fi
}
makemtdd () {
local donew=0
local thefilename=""
while (( $# )); do
case "$1" in
"-n") donew=1 ;;
*) thefilename="$1" ;;
esac
shift
done
if [[ -z ${thefilename} ]]; then
[[ -d "${thevendordir}" ]] || mkdir "${thevendordir}"
thefilename="${theproductfile}.mtdd"
fi
[[ -f "${thefilename}" ]] && rm "${thefilename}"
/usr/libexec/PlistBuddy \
-c 'Add display dict' \
-c 'Add :display:linkmode string multi-cable' \
-c 'Add :display:overlay data ""' \
-c "Add :display:streamcount integer $((tileCountH * tileCountV))" \
-c "Add :display:tileinfo string ($tileCountH,$tileCountV)" \
-c "Add :productid string $(printf "0x%04x" $theproductid)" \
-c "Add :serial integer 1" \
-c "Add :vendorid string $(printf "0x%04x" $thevendorid)" \
-c "Add :version string 1.3" \
"${thefilename}" > /dev/null
if (( donew )); then
plutil -insert 'display.backendtiming' -xml "<array>$(echo "$tileTimings" | perl -pe's/^[0-9]+ ([0-9]+)x([0-9]+)@([0-9.]+)Hz [0-9.]+kHz ([0-9]+)\.([0-9]+)MHz h\(([0-9]+) ([0-9]+) ([0-9]+) ([-+])\) v\(([0-9]+) ([0-9]+) ([0-9]+) ([-+])\).*/"<string>$1,$6,$7,".($1+$6+$7+$8)."x$2,$10,$11,".($2+$10+$11+$12)."\@$4${5}0000,$9$13<\/string>"/e')<string>*</string></array>" "${thefilename}"
plutil -insert 'display.frontendtiming' -xml "<array>$(echo "$tileTimings" | perl -pe's/^[0-9]+ ([0-9]+)x([0-9]+)@([0-9.]+)Hz [0-9.]+kHz ([0-9]+)\.([0-9]+)MHz h\(([0-9]+) ([0-9]+) ([0-9]+) ([-+])\) v\(([0-9]+) ([0-9]+) ([0-9]+) ([-+])\).*/"<string>".($1*2).",".($6*2).",".($7*2).",".($1+$6+$7+$8)."x$2,$10,$11,".($2+$10+$11+$12)."\@".("$4${5}0000" * 2).",$9$13<\/string>"/e')</array>" "${thefilename}"
else
plutil -insert 'display.backendtiming' -string "${tileSizeH}x${tileSizeV}@${tileRefresh}" "${thefilename}"
plutil -insert 'display.frontendtiming' -string "$((tileSizeH * 2))x${tileSizeV}@${tileRefresh}" "${thefilename}"
fi
plutil -replace 'display.overlay' -data "$(echo -n "$theedid" | xxd -p -r | base64)" "${thefilename}"
if (( HasAudio )); then
plutil -insert 'display.audio' -string '(1,1)' "${thefilename}"
fi
echo "# Created mtdd file: ${thefilename}"
}
makepatch () {
local thefilename="$1"
if [[ -z ${thefilename} ]]; then
[[ -d "${thevendordir}" ]] || mkdir "${thevendordir}"
thefilename="${theproductfile}"
fi
[[ -f "${thefilename}" ]] && rm "${thefilename}"
/usr/libexec/PlistBuddy \
-c "Add :DisplayProductID integer ${theproductid}" \
-c "Add :DisplayVendorID integer ${thevendorid}" \
-c 'Add edid-patches array' \
"${thefilename}" > /dev/null
local i=""
for ((i = 0 ; i < ${#patches[@]} ; i++)); do
local thepatch="${patches[i+arrstart]}"
local offset=$((${thepatch%:*}))
local data=${thepatch#*:}
plutil -insert "edid-patches.$i" -xml "<dict>
<key>offset</key>
<integer>$offset</integer>
<key>data</key>
<data>$(echo -n "$data" | xxd -p -r | base64)</data>
</dict>" "${thefilename}"
done
echo "# Created patch file: ${thefilename}"
}
makemtddall () {
local saveedid="$theedid"
local thefolderpath="$1"
local i=""
for ((i = 1 ; i <= ${#edids[@]} ; i++)); do
useedidnum "$i"
[[ -d "${thefolderpath:=.}/${thevendordir}" ]] || mkdir "${thefolderpath}/${thevendordir}"
makemtdd "${thefolderpath}/$theproductfile".mtdd
done
useedidstring "$saveedid"
}
translateoui () {
local oui=$1
if [[ $oui =~ ([0-9]+)-([0-9]+)-([0-9]+) ]]; then
oui="$(eval "$(echo -n "$oui" | sed -E '/([0-9]+)-([0-9]+)-([0-9]+)/s//printf "%02X%02X%02X" \1 \2 \3/')")"
else
oui=${oui//-/}
oui=${oui//0x/}
oui=$(printf "%06X" $((0x$oui)))
fi
local thetype=""
for thetype in oui cid; do
[[ -f ~/${thetype}.txt ]] || curl -s "http://standards-oui.ieee.org/${thetype}/${thetype}.txt" > ~/${thetype}.txt
local thetranslate=""
thetranslate="$(sed -nE '/^'"$oui"'[ ]+\(base 16\)*(.*)/s//\1/p' ~/${thetype}.txt | tr -d '\t\r')"
[[ -n $thetranslate ]] && echo "$thetype: 0x$oui = $thetranslate"
done
}
translatevendor () {
local thevendorid=$1
local vendorascii=""
local pnppattern="^[A-Za-z]{3}$"
if [[ $thevendorid =~ $pnppattern ]]; then
thevendorid=$(printf "%s" "$thevendorid" | xxd -p)
thevendorid=$(( (0x${thevendorid:0:2} & 31) << 10 + (0x${thevendorid:2:2} & 31) << 5 + (0x${thevendorid:4:2} & 31) ))
else
thevendorid=$((thevendorid))
fi
vendorascii=$(printf "%06x" $((((thevendorid&0x7c00)<<6)+((thevendorid&0x3e0)<<3)+(thevendorid&0x1f)+0x404040)) | xxd -p -r)
if [[ ! -f ~/pnp_id_list.txt ]]; then
curl -s "https://uefi.org/uefi-pnp-export" | \
tidy -wrap 0 -raw -utf8 -q | \
perl -0777 -nE '
s!(?:&nbsp;)*(</td>)!\1!g;
s!&amp;!&!g;
while (
m!
^<tr\ class=\"(?:odd|even)">\n
<td>(.*)</td>\n
<td>(...)</td>\n
<td>(../../....)</td>\n
</tr>
!xmg
) {
print $3 . " " . $2 . " " . $1 . "\n"
}
' | \
sort -f -k 3 -k 2 -k 1 > ~/pnp_id_list.txt
fi
printf "0x%04x = %s = %s\n" $thevendorid "$vendorascii" "$(sed -nE '/[0-9/]+ '"$vendorascii"' (.*)/s//\1/p' ~/pnp_id_list.txt)"
# $(sed -nE '/^'$oui'[ ]+\(base 16\)*(.*)/s//\1/p' ~/oui.txt | tr -d '\t\r')
}
#=========================================================================================
edidhelp () {
cat << edidhelp_done
Commands:
Get EDID
loadagdc [dstfilepath]
loadioreg
loadstring hexstring [sourcename]
loadcurrentedid [sourcename]
loadbinfile filepath...
loadhexfile filepath... # reverses xxd
loadagdcfile filepath...
loadioregfile filepath...
loadoverridefile filepath...
loadmtddfile filepath...
loadswitchresxfile filepath...
loadmamfile filepath... # Monitor Asset Manager.txt
loadmamhexfile filepath... # Monitor Asset Manager.hex
loadmaminffile filepath... # Monitor Asset Manager.inf
loadmamdatfile filepath... # Monitor Asset Manager.dat
listedids
clearedids
Use EDID
useedidnum numberfromlist
useedidstring lowercasehexstring
Modify EDID
repairchecksums
replacebytes bytepos lowercasehexstring [numbytestoreplace]
deleteextensionblock blocknumber
deleteextensionblocktype blocktype(decimal or 0xhex)
adddisplayidextensionblock version producttype
addctaextensionblock version [YCbCrSupportbyte offset]
addchromasubsampling
removechromasubsampling
set8bpcmax
cleardate
clearserialnumber
setpreferredisnative preferredvalue(0/1)
clearchromaticity
clearestablishedtimings
clearmanufacturerstimings
clearstandardtimings
deletectablock offset
deletectablocktype ctablocktype(1, 2, ..., 6, 700, 701, ..., 70f, 710, ..., hex for extended)
addctablock offset newctablock... # -1 = insert before first CTA block; 0 = insert after last CTA block
deletedescriptor offset
addctadescriptor offset newctadescriptor... # -1 = insert before first CTA block; 0 = insert after last CTA block
createdetailedtiming MHz hactive hfront hpulse hback vactive[i=interlaced] vfront vpulse vback hsync(+/-) vsync(+/-) [hmm] [vmm] [hborder] [vborder]
createdummydescriptor
createemptydescriptor
replacedescriptor offset replacementdescriptor
createtype1timingdescriptor MHz hactive hfront hpulse hback vactive[i=interlaced] vfront vpulse vback hsync(+/-) vsync(+/-) [preferred(1/0)]
createtype1timingblock descriptors...
dumptype1timingdescriptor 20_byte_descriptor
deletedisplayidblock offset
deletedisplayidblocktype displayidblocktype(decimal or 0xhex)
adddisplayidblock offset newdisplayidblock... # -1 = insert before first DisplayID block; 0 = insert after last DisplayID block
applypatches filepath [sourcename]
Files from EDID
makemtdd [-n] [filepath]
The edid needs to be manually edited.
clearserialnumber
cleardate
#clearchromaticity
#clearestablishedtimings
#clearstandardtimings
#clearmanufacturerstimings
#removechromasubsampling
deletedisplayidblocktype 3 # remove type 1 DisplayID timings
deletedisplayidblocktype 0x12 # remove tile topology
# Add the deleted type 1 DisplayID timings, except replace the tile timing (backend timing) with a full size timing (frontend timing).
# Frontend timing in this example doubles the MHz and horizontal numbers of the backend timing.
adddisplayidblock 0 \$(createtype1timingblock 9aa00104ff0ea0002f8021006f083e0003000500 \$(createtype1timingdescriptor 1264.02 3840 96 64 20 2160 2 4 20 + - 1 ))
makepatch [filepath]
Creates an override file with edid-patches array from shell array variable called patches. e.g. patches=("94:0818900a" "304:7f00080000000000000000")
makemtddall [folderpath]
makeoverride [-noedid] [-m | dstfilepath]
updateoverride filepath
installoverride [-l] [-m] [srcfilepath]
decode
decodeall [-s | folderpath]
edidbin
edidbinall [folderpath]
dumpedid
dumpedidall [-s | folderpath]
agdcdevicedump filepath
Miscellaneous functions
translateoui oui # AGDCDiagnose DisplayPort registers and EDIDs may have an oui.
translatevendor pnp # a 15 bit value or a 3 character ASCII code.
Variables
dodump # Set to 1 to dump the EDID while changes are made to the EDID.
debug # Set to 1 to output debugging info (uses stderr)
DisplayIDblocks # An array of DisplayID blocks that are used in the EDID. Save these using something like saveDisplayIDblocks=(\$DisplayIDblocks) before modifying the EDID.
ctablocks # An array of CTA data blocks that are used in the EDID. Save these using something like savectablocks=(\$ctablocks) before modifying the EDID.
ctadescriptors # An array of CTA descriptors that are used in the EDID. Save these using something like savectadescriptors=(\$ctadescriptors) before modifying the EDID.
thetimings # a list of detailed timings (printf "%s\\n" "\${thetimings[@]}")
theproductfile # the name of an override file in the form of DisplayVendorID-%x/DisplayProductID-%x
themanufacturefile # the name of an override file in the form of DisplayVendorID-%x/DisplayYearManufacture-%d-DisplayWeekManufacture-%d
...
Help
edidhelp
edidhelp_done
}
#edidhelp
#=========================================================================================
@joevt
Copy link
Author

joevt commented Aug 31, 2021

Audio doesn't use that much bandwidth.

Have you found any differences with any of the other three Thunderbolt ports?

Your last test shows that one of your ports can do four lanes of HBR2 so now we need to know of any of the four Thunderbolt ports can do four lanes of HBR3.

Maybe there's some equipment causing interference somewhere.

You need to try a different cable/adapter/monitor/thunderbolt dock or something. Take your MacBook Pro somewhere to get it checked.

@jaffacake
Copy link

I'll have a speak to some more people in the office & see if I can find a monitor, I went through about 15 different cables & adapters previously so I'm fairly confident it's not that.

I did come across this website: https://tonsky.me/blog/monitors-mac/ Which seems to show the Asus XG27UQ as hit & miss for others.

@jaffacake
Copy link

jaffacake commented Sep 13, 2021

Ok, very strangely I just turned on the laptop this morning & noticed my monitor looked darker than usual. Just popped open the display menu & saw HDR as enabled, just opened the resolutions & I can now see 4k @ 120hz!! I've no idea what changed, I've still got the same displayport cable & cable matters adapter. I've attached the diagnose results in case it can give any clues. I just hope it's consistent!

Diagnose results
AGDCDiagnose Version: 6.3.5 (AGDC node count: 6)
### Start: GPUWrangler #######################################################
Stats: GPUCAdded:1 GpuAdded:2 Eject:0/f0/fd0/c0 Remove:0/t0 Un:0

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

gpu 0x9f3b flags 0xbe000020 (DG,published,driversStarted,hasGPUC,quiet,pubSched,pubArmed) vid.did=1002.67ef b:d:f=1:0:0
gpu 0x9f3b        pci 0x100000290 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0
gpu 0x9f3b       agdc 0x100000723     /AtiDeviceControl
gpu 0x9f3b       gpuc 0x100000666     /AMD9500ControllerWrangler
gpu 0x9f3b agdpclient 0x100000725     /AtiDeviceControl/AppleGraphicsDevicePolicy/AGDPClientControl
gpu 0x9f3b      accel 0x1000006e4     /AMDRadeonX4000_AMDBaffinGraphicsAccelerator
gpu 0x9f3b      fb0:0 0x100000705     /ATY,Palena@0/AMDFramebufferVIB
gpu 0x9f3b      fb1:1 0x10000070b     /ATY,Palena@1/AMDFramebufferVIB
gpu 0x9f3b      fb2:2 0x100000711     /ATY,Palena@2/AMDFramebufferVIB
gpu 0x9f3b      fb3:3 0x100000717     /ATY,Palena@3/AMDFramebufferVIB
gpu 0x9f3b      fb4:4 0x10000071d     /ATY,Palena@4/AMDFramebufferVIB

### End: GPUWrangler (took 0.014 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/GFX0@0
GraphicsDisplaySetup:
Version 65536
ConnectorNumber 1
AvailableLanes 4
AvailableBitRate 3240
DisplayRestoredFromNVRAM 0
HibernateWake 0

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

Framebuffer Timing
TimingIndex: 0
Encoding: 1
BitDepth: 3
PixelClock: 328920000
HActive: 2880
VActive: 1800
HBlank: 80
HBorderLeft: 0
HBorderRight: 0
VBlank: 52
VBorderTop: 0
VBorderBottom: 0
HSyncStart: 8
HSyncWidth: 32
HSyncPositive: 1
VSyncStart: 38
VSyncWidth: 8
VSyncPositive: 0
Interlace: 0

Framebuffer resolution
Version: 65536
Width: 3360
Height: 2100
Stride: 0
Format: 1
Rotation: 0
Reverse: 0
### End: EFIDisplayInfo (took 0.012 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:on  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 2 Errors 0 CRC 00000000
  0000: 0000405 ms 	  0016: 0000000 ms
  0001: 0000954 ms*	  0017: 0000000 ms
  0002: 0000000 ms 	  0018: 0000000 ms
  0003: 0000000 ms 	  0019: 0000000 ms
  0004: 0000000 ms 	  0020: 0000000 ms
  0005: 0000000 ms 	  0021: 0000000 ms
  0006: 0000000 ms 	  0022: 0000000 ms
  0007: 0000000 ms 	  0023: 0000000 ms
  0008: 0000000 ms 	  0024: 0000000 ms
  0009: 0000000 ms 	  0025: 0000000 ms
  0010: 0000000 ms 	  0026: 0000000 ms
  0011: 0000000 ms 	  0027: 0000000 ms
  0012: 0000000 ms 	  0028: 0000000 ms
  0013: 0000000 ms 	  0029: 0000000 ms
  0014: 0000000 ms 	  0030: 0000000 ms
  0015: 0000000 ms 	  0031: 0000000 ms
Register Dump:
  00: 00 00 00 00 00 00 00 00
  08: 00 00 03 00 00 00 00 00
  10: 05 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 00 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.163 sec) ################################################

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

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

### Start: AGDC[3] 0x100000666 ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/AMD9500ControllerWrangler
Vendor: AMD [00001002]: GPURoot [7 30000] (0)
### End: AGDC[3] 0x100000666 (took 0.005 sec) ################################

### Start: AGDC[4] 0x1000006f2 ###############################################
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[4] 0x1000006f2 (took 0.130 sec) ################################

### Start: AGDC[5] 0x100000723 ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/AtiDeviceControl
See 0x100000725
### End: AGDC[5] 0x100000723 (took 0.006 sec) ################################

### Start: AGDC[6] 0x100000725 ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/AtiDeviceControl/AppleGraphicsDevicePolicy/AGDPClientControl
Vendor: AMD [00001002]: DiscreteGPU [2 30000] (0)
FBs: 5, Ports: 0x3e mst:0x3c ddc:0x3e aux:0x3e, Streams: dp:6 dvi:7 mst:6 max:6
Framebuffers:
* 0: Address:  1.0 Stream: Enabled  Group: -1  Online   Assoc'd  MayGroup Fixed
* 1: Address:  2.0 Stream: Enabled  Group: -1  Online   Assoc'd  MayGroup
  2: Address:  2.0 Stream: Enabled  Group: -1           Assoc'd  MayGroup
* 3: Address:  4.0 Stream: Enabled  Group: -1  Online   Assoc'd  MayGroup
  4: Address:  5.0 Stream: Enabled  Group: -1           Assoc'd  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.1 4 x HBR ] 	 Status: [4 x 3_24 7777] 	 caps [features 0x103001f, p_encoding 0xd] 	        Sink   OUI:000-016-250 eD?gba [101-068-021-103-098-097] HW Version: 1    FW Version: 8.4
* 2: [DP 1.2 4 x HBR2] 	 Status: [2 x HBR2 77 0] 	 caps [features 0x101001b, p_encoding 0xd] 	        Sink   OUI:000-224-076 Dp1.2? [068-112-049-046-050-000] HW Version: 0    FW Version: 0.0
  3:
* 4: [DP 1.2 2 x HBR2] 	 Status: [2 x HBR2 77 0] 	 caps [features 0x101001b, p_encoding 0xd] 	 DVI/HDMI Branch OUI:000-028-248 176GB0 [049-055-054-071-066-048] HW Version: 16   FW Version: 7.85
  5:
## Register Dump Port 1 - Start ##
000000: 0x11 0x0a 0x84 0x41 0x00 0x00 0x01 0x80 0x02 0x00 0x00 0x00 0x0f 0x0b 0x00 0x00
  Reg: 000000: 11 : DPCD_REV: 1.1
  Reg: 000001: 0a : MAX_LINK_RATE: HBR
  Reg: 000002: 84 : MAX_LANE_COUNT: 4, TPS3_SUPPORTED: 0, 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
000020: 0x00 0x00 0x00
  Reg: 000020: 00 : FAUX_CAP: FAUX_CAP: 0
  Reg: 000021: 00 : MSTM_CAP: MST_CAP: 0
  Reg: 000022: 00 : NUMBER_OF_AUDIO_ENDPOINTS: 0
000060: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  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
000090: 0x00
  Reg: 000090: 00 : FEC Capability: 0x0
000080: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  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
000100: 0x0c 0x84
  Reg: 000100: 0c : LINK_BW_SET: 3_24
  Reg: 000101: 84 : LANE_COUNT_SET: LANE_COUNT_SET 4, ENHANCED_FRAME_EN: 1
000107: 0x10
  Reg: 000107: 10 : DOWNSPREAD_CTRL: SPREAD_AMP: 1, MSA_TIMING_PAR_IGNORE_EN: 0
00010a: 0x01
  Reg: 00010a: 01 : eDP_CONFIGURATION_CAP_SET: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 1, FRAMING_CHANGE_CAPABLE: 0
000111: 0x00
  Reg: 000111: 00 : MSTM_CTRL: UPSTREAM_IS_SRC:0 UP_REQ_EN:0 MST_EN:0
000120: 0x00
  Reg: 000120: 00 : FEC Configuration: 0x0
000160: 0x00
  Reg: 000160: 00 : DSC Enable: 0x0
000200: 0x01 0x00 0x77 0x77 0x01 0x01 0x00 0x00
  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
00020f: 0x00
  Reg: 00020f: 00 : DSC Status: 0
000280: 0x00
  Reg: 000280: 00 : FEC Status: 0
00042f: 0x00
  Reg: 00042f: 00 : DISPLAY_ROTATION: 0x0
002200: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  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
068028: 0x00
  Reg: 068028: 00 : HDCP_CAPABLE: 0, REPEATER: 0
06921d: 0x00 0x00 0x00
  Reg: 06921d: 00 : VERSION: 0
  Reg: 06921f: 00 : HDCP_CAPABLE: 0, REPEATER: 0
069330: 0x00 0x00
  Reg: 069330: 00 : HDCP_Depth: 0
  Reg: 069331: 00 : HDCP_count: 0  HDCP2_0 Downstream: 0 HDCP1 Downstream: 0
069493: 0x00
  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_a040[] = {
  /* 000: */  0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
  /* 008: */  0x06, 0x10, 0x40, 0xa0, 0x00, 0x00, 0x00, 0x00,
  /* 010: */  0x10, 0x1b, 0x01, 0x04, 0xb5, 0x21, 0x15, 0x78,
  /* 018: */  0x02, 0x0f, 0x61, 0xae, 0x52, 0x43, 0xb0, 0x26,
  /* 020: */  0x0d, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
  /* 028: */  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
  /* 030: */  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x7c, 0x80,
  /* 038: */  0x40, 0x50, 0xb0, 0x08, 0x34, 0x70, 0x08, 0x20,
  /* 040: */  0x68, 0x08, 0x4b, 0xcf, 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, 0xf4,
  /* 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, 0x35, 0x34, 0x57, 0x54, 0x35,
  /* 0a8: */  0x2d, 0x53, 0x4a, 0x41, 0x31, 0x0a, 0x20, 0x00,
  /* 0b0: */  0x44, 0x43, 0x4e, 0x38, 0x31, 0x37, 0x32, 0x30,
  /* 0b8: */  0x32, 0x31, 0x53, 0x4a, 0x34, 0x36, 0x54, 0x33,
  /* 0c0: */  0x41, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7f,
  /* 0c8: */  0x81, 0x29, 0xfa, 0x10, 0x00, 0x02, 0x01, 0x00,
  /* 0d0: */  0x11, 0x00, 0x00, 0x02, 0x90, 0x03, 0x65, 0x04,
  /* 0d8: */  0x89, 0x06, 0x18, 0x08, 0x38, 0x0b, 0x20, 0x0f,
  /* 0e0: */  0x19, 0x14, 0x8a, 0x1c, 0x00, 0x26, 0x3d, 0x34,
  /* 0e8: */  0x51, 0x47, 0xae, 0x62, 0x5a, 0x87, 0x21, 0xb9,
  /* 0f0: */  0xe3, 0xfd, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0f8: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x90
};
## EDID Dump Port 1 - End ##
## Register Dump Port 2 - Start ##
000000: 0x12 0x14 0xc4 0x81 0x01 0x00 0x01 0xc0 0x02 0x00 0x06 0x00 0x00 0x00 0x84 0x00
  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: 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: 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
000020: 0x00 0x00 0x00
  Reg: 000020: 00 : FAUX_CAP: FAUX_CAP: 0
  Reg: 000021: 00 : MSTM_CAP: MST_CAP: 0
  Reg: 000022: 00 : NUMBER_OF_AUDIO_ENDPOINTS: 0
000060: 0x01 0x21 0x00 0x02 0x2b 0x04 0x01 0x00 0x00 0x1f 0x0e 0x11 0x08 0x00 0x00 0x00
  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
000090: 0xbf
  Reg: 000090: bf : FEC Capability: 0xbf
000080: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  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
000100: 0x14 0x82
  Reg: 000100: 14 : LINK_BW_SET: HBR2
  Reg: 000101: 82 : LANE_COUNT_SET: LANE_COUNT_SET 2, ENHANCED_FRAME_EN: 1
000107: 0x10
  Reg: 000107: 10 : DOWNSPREAD_CTRL: SPREAD_AMP: 1, MSA_TIMING_PAR_IGNORE_EN: 0
00010a: 0x00
  Reg: 00010a: 00 : eDP_CONFIGURATION_CAP_SET: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 0, FRAMING_CHANGE_CAPABLE: 0
000111: 0x00
  Reg: 000111: 00 : MSTM_CTRL: UPSTREAM_IS_SRC:0 UP_REQ_EN:0 MST_EN:0
000120: 0x00
  Reg: 000120: 00 : FEC Configuration: 0x0
000160: 0x00
  Reg: 000160: 00 : DSC Enable: 0x0
000200: 0x41 0x00 0x77 0x00 0x01 0x03 0x22 0x22
  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: 00 : LANE2: CR_DONE: 0, CHANNEL_EQ_DONE: 0, SYMBOL_LOCKED: 0
  Reg: 000203: 00 : LANE3: CR_DONE: 0, CHANNEL_EQ_DONE: 0, SYMBOL_LOCKED: 0
  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
00020f: 0x00
  Reg: 00020f: 00 : DSC Status: 0
000280: 0x00
  Reg: 000280: 00 : FEC Status: 0
00042f: 0x00
  Reg: 00042f: 00 : DISPLAY_ROTATION: 0x0
002200: 0x14 0x1e 0xc4 0x81 0x01 0x00 0x01 0xc0 0x02 0x00 0x06 0x00 0x00 0x00 0x84 0x00
  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: 00 : DOWNSTREAMPORT_PRESENT: DWN_STRM_PORT_PRESENT: 0, 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
068028: 0x01
  Reg: 068028: 01 : HDCP_CAPABLE: 1, REPEATER: 0
06921d: 0x02 0x00 0x02
  Reg: 06921d: 02 : VERSION: 2
  Reg: 06921f: 02 : HDCP_CAPABLE: 1, REPEATER: 0
069330: 0x00 0x00
  Reg: 069330: 00 : HDCP_Depth: 0
  Reg: 069331: 00 : HDCP_count: 0  HDCP2_0 Downstream: 0 HDCP1 Downstream: 0
069493: 0x00
  Reg: 069493: 00 : Ready: 0 , H' Available: 0, Pairing_available: 0 , Reauth_req: 0, Link Integrity: 0
## Register Dump Port 2 - End ##
## EDID Dump Port 2 - Start ##
// EDID Dump: device, 384 bytes, OK
uint8_t EDID_AUS_6b3_272a[] = {
  /* 000: */  0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
  /* 008: */  0x06, 0xb3, 0x2a, 0x27, 0x01, 0x01, 0x01, 0x01,
  /* 010: */  0x31, 0x1d, 0x01, 0x04, 0xb5, 0x3c, 0x22, 0x78,
  /* 018: */  0x3b, 0x0b, 0x10, 0xb0, 0x4c, 0x45, 0xa8, 0x26,
  /* 020: */  0x0a, 0x50, 0x54, 0xbf, 0xcf, 0x00, 0x71, 0x4f,
  /* 028: */  0x81, 0xc0, 0x81, 0x40, 0x81, 0x80, 0xd1, 0xc0,
  /* 030: */  0xd1, 0xfc, 0x95, 0x00, 0xb3, 0x00, 0x4d, 0xd0,
  /* 038: */  0x00, 0xa0, 0xf0, 0x70, 0x3e, 0x80, 0x30, 0x20,
  /* 040: */  0x35, 0x00, 0x54, 0x4f, 0x21, 0x00, 0x00, 0x1a,
  /* 048: */  0x00, 0x00, 0x00, 0xfd, 0x0c, 0x30, 0x90, 0x4a,
  /* 050: */  0x4a, 0x81, 0x01, 0x0a, 0x20, 0x20, 0x20, 0x20,
  /* 058: */  0x20, 0x20, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x52,
  /* 060: */  0x4f, 0x47, 0x20, 0x58, 0x47, 0x32, 0x37, 0x55,
  /* 068: */  0x51, 0x0a, 0x20, 0x20, 0x00, 0x00, 0x00, 0xff,
  /* 070: */  0x00, 0x4b, 0x43, 0x4c, 0x4d, 0x51, 0x53, 0x30,
  /* 078: */  0x30, 0x30, 0x38, 0x38, 0x37, 0x20, 0x02, 0x0a,
  /* 080: */  0x02, 0x03, 0x3f, 0xf2, 0x50, 0x60, 0x61, 0x01,
  /* 088: */  0x02, 0x03, 0x11, 0x12, 0x13, 0x04, 0x0e, 0x0f,
  /* 090: */  0x1d, 0x1e, 0x1f, 0x10, 0x3f, 0xe2, 0x00, 0xd5,
  /* 098: */  0x23, 0x09, 0x07, 0x07, 0x83, 0x01, 0x00, 0x00,
  /* 0a0: */  0x65, 0x03, 0x0c, 0x00, 0x10, 0x00, 0xe3, 0x05,
  /* 0a8: */  0xc0, 0x00, 0xe6, 0x06, 0x05, 0x01, 0x70, 0x70,
  /* 0b0: */  0x07, 0x6d, 0x1a, 0x00, 0x00, 0x02, 0x0b, 0x30,
  /* 0b8: */  0x90, 0x00, 0x07, 0x70, 0x35, 0x70, 0x35, 0x56,
  /* 0c0: */  0x5e, 0x00, 0xa0, 0xa0, 0xa0, 0x29, 0x50, 0x30,
  /* 0c8: */  0x20, 0x35, 0x00, 0x54, 0x4f, 0x21, 0x00, 0x00,
  /* 0d0: */  0x1a, 0x86, 0xbc, 0x00, 0x50, 0xa0, 0xa0, 0x55,
  /* 0d8: */  0x50, 0x08, 0x20, 0x78, 0x00, 0x54, 0x4f, 0x21,
  /* 0e0: */  0x00, 0x00, 0x1e, 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, 0x2b,
  /* 100: */  0x70, 0x12, 0x67, 0x00, 0x00, 0x03, 0x01, 0x64,
  /* 108: */  0x9b, 0x12, 0x01, 0x04, 0xff, 0x0e, 0x4f, 0x00,
  /* 110: */  0x07, 0x00, 0x1f, 0x00, 0x6f, 0x08, 0x52, 0x00,
  /* 118: */  0x44, 0x00, 0x07, 0x00, 0x15, 0x4c, 0x01, 0x04,
  /* 120: */  0xff, 0x0e, 0x3b, 0x00, 0x07, 0x80, 0x1f, 0x00,
  /* 128: */  0x6f, 0x08, 0x40, 0x00, 0x02, 0x00, 0x04, 0x00,
  /* 130: */  0x7b, 0x5a, 0x01, 0x04, 0xff, 0x0e, 0x4f, 0x00,
  /* 138: */  0x07, 0x00, 0x1f, 0x00, 0x6f, 0x08, 0x68, 0x00,
  /* 140: */  0x5a, 0x00, 0x07, 0x00, 0x3a, 0x9b, 0x01, 0x04,
  /* 148: */  0xff, 0x0e, 0x4f, 0x00, 0x07, 0x80, 0x1f, 0x00,
  /* 150: */  0x6f, 0x08, 0x4d, 0x00, 0x02, 0x00, 0x04, 0x00,
  /* 158: */  0x47, 0xf8, 0x01, 0x04, 0xff, 0x0e, 0x4f, 0x00,
  /* 160: */  0x07, 0x00, 0x1f, 0x00, 0x6f, 0x08, 0x7e, 0x00,
  /* 168: */  0x70, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00,
  /* 170: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 178: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90
};
## EDID Dump Port 2 - End ##
## Display Connection Stats Dump Port 2 - End ##
  Display mfgName: AUS, productID: 0x272a
  Time to EDID read: 3
  Time to link train: 471325
  Link training duration: 21039
  Link training status: 1
  Link training count: 9
  HDCP status: 0
  HDCP retry count: 1
  EFI w/a data: 0x0
## Display Connection Stats Dump Port 2 - End ##
## Register Dump Port 4 - Start ##
000000: 0x12 0x14 0xc2 0x01 0x01 0x15 0x01 0x81 0x00 0x01 0x04 0x01 0x0f 0x00 0x04 0x00
  Reg: 000000: 12 : DPCD_REV: 1.2
  Reg: 000001: 14 : MAX_LINK_RATE: HBR2
  Reg: 000002: c2 : MAX_LANE_COUNT: 2, TPS3_SUPPORTED: 1, ENHANCED_FRAME_CAP: 1
  Reg: 000003: 01 : MAX_DOWNSPREAD: 0.5% down, NO_AUX_HANDSHAKE_LINK_TRAINING: 0
  Reg: 000004: 01 : NORP: 1
  Reg: 000005: 15 : DOWNSTREAMPORT_PRESENT: DWN_STRM_PORT_PRESENT: 1, DWN_STRM_PORT_TYPE: [2] DVI/HDMI, FORMAT_CONVERSION: 0, DETAILED_CAP_INFO_AVAILABLE: 1
  Reg: 000006: 01 : MAIN_LINK_CHANNEL_CODING: ANSI 8B/10B
  Reg: 000007: 81 : DOWN_STREAM_PORT_COUNT: DWN_STRM_PORT_COUNT: 1, MSA_TIMING_PAR_IGNORED: 0, OUI: 1
  Reg: 000008: 00 : RECEIVE_PORT0_CAP_0: LOCAL_EDID_PRESENT: 0, ASSOCIATED_TO_PRECEDING_PORT: 0
  Reg: 000009: 01 : RECEIVE_PORT0_CAP_1: BUFFER_SIZE: 64
  Reg: 00000a: 04 : RECEIVE_PORT1_CAP_0:
  Reg: 00000b: 01 : RECEIVE_PORT1_CAP_1:
  Reg: 00000c: 0f : I2C Speed: 1Kbps 5Kbps 10Kbps 100Kbps
  Reg: 00000d: 00 : eDP_CONFIGURATION_CAP: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 0, FRAMING_CHANGE_CAPABLE: 0
  Reg: 00000e: 04 : TRAINING_AUX_RD_INTERVAL: 16 ms, EXTENDED_RECEIVER_CAPABILITY_FIELD_PRESENT: NO
  Reg: 00000f: 00 : ADAPTER_CAP: FORCE_LOAD_SENSE_CAP: 0, ALTERNATE_I2C_PATTERN_CAP: 0
000020: 0x00 0x00 0x01
  Reg: 000020: 00 : FAUX_CAP: FAUX_CAP: 0
  Reg: 000021: 00 : MSTM_CAP: MST_CAP: 0
  Reg: 000022: 01 : NUMBER_OF_AUDIO_ENDPOINTS: 1
000060: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  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
000090: 0x00
  Reg: 000090: 00 : FEC Capability: 0x0
000080: 0x0b 0x78 0x02 0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  Reg: 000080: 0b : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [3] HDMI, DWN_STRM_PORTX_HPD: 1, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0 Reserved
  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: 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: 00008c: 00 : DETAILED_CAP_INFO_AVAILABLE: DWN_STRM_PORTX_CAP: [0] DisplayPort, DWN_STRM_PORTX_HPD: 0, NON_EDID_DWN_STRM_PORTX_ATTRIBUTE: 0
000100: 0x14 0x82
  Reg: 000100: 14 : LINK_BW_SET: HBR2
  Reg: 000101: 82 : LANE_COUNT_SET: LANE_COUNT_SET 2, ENHANCED_FRAME_EN: 1
000107: 0x10
  Reg: 000107: 10 : DOWNSPREAD_CTRL: SPREAD_AMP: 1, MSA_TIMING_PAR_IGNORE_EN: 0
00010a: 0x00
  Reg: 00010a: 00 : eDP_CONFIGURATION_CAP_SET: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 0, FRAMING_CHANGE_CAPABLE: 0
000111: 0x00
  Reg: 000111: 00 : MSTM_CTRL: UPSTREAM_IS_SRC:0 UP_REQ_EN:0 MST_EN:0
000120: 0x00
  Reg: 000120: 00 : FEC Configuration: 0x0
000160: 0x00
  Reg: 000160: 00 : DSC Enable: 0x0
000200: 0x01 0x00 0x77 0x00 0x01 0x01 0x22 0x22
  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: 00 : LANE2: CR_DONE: 0, CHANNEL_EQ_DONE: 0, SYMBOL_LOCKED: 0
  Reg: 000203: 00 : LANE3: CR_DONE: 0, CHANNEL_EQ_DONE: 0, SYMBOL_LOCKED: 0
  Reg: 000205: 01 : SINK_STATUS: RECEIVE_PORT_0_STATUS: 1, RECEIVE_PORT_1_STATUS: 0
  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
00020f: 0x00
  Reg: 00020f: 00 : DSC Status: 0
000280: 0x00
  Reg: 000280: 00 : FEC Status: 0
00042f: 0x00
  Reg: 00042f: 00 : DISPLAY_ROTATION: 0x0
002200: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  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
068028: 0x03
  Reg: 068028: 03 : HDCP_CAPABLE: 1, REPEATER: 1
06921d: 0x02 0x00 0x03
  Reg: 06921d: 02 : VERSION: 2
  Reg: 06921f: 03 : HDCP_CAPABLE: 1, REPEATER: 1
069330: 0x02 0x11
  Reg: 069330: 02 : HDCP_Depth: 1
  Reg: 069331: 11 : HDCP_count: 1  HDCP2_0 Downstream: 0 HDCP1 Downstream: 1
069493: 0x00
  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, 256 bytes, OK
uint8_t EDID_HYO_232f_49b[] = {
  /* 000: */  0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
  /* 008: */  0x23, 0x2f, 0x9b, 0x04, 0x00, 0x00, 0x00, 0x00,
  /* 010: */  0x28, 0x15, 0x01, 0x03, 0xa5, 0x3c, 0x22, 0x78,
  /* 018: */  0x22, 0x6f, 0xb1, 0xa7, 0x55, 0x4c, 0x9e, 0x25,
  /* 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, 0x56, 0x5e,
  /* 038: */  0x00, 0xa0, 0xa0, 0xa0, 0x29, 0x50, 0x30, 0x20,
  /* 040: */  0x35, 0x00, 0x55, 0x50, 0x21, 0x00, 0x00, 0x1a,
  /* 048: */  0x00, 0x00, 0x00, 0xfc, 0x00, 0x44, 0x55, 0x41,
  /* 050: */  0x4c, 0x2d, 0x44, 0x56, 0x49, 0x0a, 0x20, 0x20,
  /* 058: */  0x20, 0x20, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x0a,
  /* 060: */  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
  /* 068: */  0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
  /* 070: */  0x00, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
  /* 078: */  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x01, 0x11,
  /* 080: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 088: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 090: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 098: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0a0: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0a8: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0b0: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0b8: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0c0: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0c8: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 0d0: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  /* 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, 0x00
};
## EDID Dump Port 4 - End ##
## Display Connection Stats Dump Port 4 - End ##
  Display mfgName: HYO, productID: 0x49b
  Time to EDID read: 1214176
  Time to link train: 2159859
  Link training duration: 54689
  Link training status: 1
  Link training count: 2
  HDCP status: 0
  HDCP retry count: 7
  EFI w/a data: 0x0
## Display Connection Stats Dump Port 4 - End ##
### End: AGDC[6] 0x100000725 (took 0.239 sec) ################################

### End: Ports (took 0.240 sec) ##############################################

### Start: Metrics ###########################################################
Display Metric Tool Version: 1.2
Display Metric Plugin Version: 1.2 AGDC Version: 6.3.5
Dumping Metric Logs: currentlog(7953) logsize(32768) numberlogs(819)
Total lines: 819
2021-09-13 08:26:49.715488+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 13:29:59.889711+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-10 13:30:00.981341+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 2 Status:0 (OK) Stored Km:0x1
2021-09-10 13:30:00.982305+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 2 2002h-2005h: 0x41 0x4 0x0 0x0	 200Ch-200Fh: 0x7 0x0 0x1 0x3
2021-09-10 13:30:00.982308+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 2 Latency(in microsecond) 539
2021-09-10 13:30:01.000202+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 2 Status:0 (OK)
2021-09-10 13:30:01.059001+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 13:30:01.059004+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 498
2021-09-10 13:30:01.059337+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-10 13:30:01.077260+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 13:30:01.086603+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 13:30:01.229522+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 13:30:01.229524+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 261
2021-09-10 13:30:01.312306+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 13:30:01.322214+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 13:30:01.529267+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:02:21.288809+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-10 16:02:21.288810+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 406
2021-09-10 16:02:22.295025+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-10 16:02:23.461931+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:02:23.461933+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 367
2021-09-10 16:02:23.462501+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-10 16:02:23.480287+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:02:23.489339+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:02:23.637523+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:02:23.637525+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 316
2021-09-10 16:02:23.713377+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:02:23.723367+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:02:23.928501+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:02:29.090983+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-10 16:02:29.090985+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 331
2021-09-10 16:02:30.096301+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-10 16:02:31.260657+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-10 16:02:31.261465+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:02:31.261466+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 175
2021-09-10 16:02:31.278523+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:02:31.287262+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:02:31.434644+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:02:31.434646+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 313
2021-09-10 16:02:31.512571+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:02:31.522576+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:02:31.724854+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:03:10.410330+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-10 16:03:10.410331+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 321
2021-09-10 16:03:11.415918+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-10 16:03:12.575452+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-10 16:03:12.575454+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 340
2021-09-10 16:03:12.575532+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-10 16:03:12.592407+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:03:12.601478+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:03:13.408957+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:03:13.408958+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 269
2021-09-10 16:03:13.421401+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:03:13.430700+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:03:13.636108+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:03:19.436199+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-10 16:03:19.436201+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 407
2021-09-10 16:03:20.442216+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-10 16:03:21.604805+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-10 16:03:21.606468+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:03:21.606469+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 212
2021-09-10 16:03:21.622647+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:03:21.631107+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:03:21.779650+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:03:21.779651+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 262
2021-09-10 16:03:21.854810+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:03:21.864718+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:03:22.066774+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:05:55.108226+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-10 16:05:55.108229+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 453
2021-09-10 16:05:56.113660+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-10 16:05:57.274934+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-10 16:05:57.275793+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:05:57.275795+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 209
2021-09-10 16:05:57.292624+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:05:57.301727+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:05:57.449236+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:05:57.449237+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 323
2021-09-10 16:05:57.526199+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:05:57.535840+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:05:57.740334+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:18:34.839228+0100:                    kAGDCPluginMetricsHPD(4102) GPU:0x9f3b Port: 4 Latency(in microsecond) 10126558898183
2021-09-10 16:18:34.912516+0100:                 kAGDCPluginMetricsUnPlug(4101) GPU:0x9f3b Port: 4
2021-09-10 16:18:36.238753+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:36.269866+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:36.401089+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 16:18:36.488755+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:36.519863+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:36.617937+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 16:18:36.805403+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:36.836514+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:39.103638+0100:                    kAGDCPluginMetricsHPD(4102) GPU:0x9f3b Port: 4 Latency(in microsecond) 4177368359
2021-09-10 16:18:39.178040+0100:                   kAGDCPluginMetricsPlug(4100) GPU:0x9f3b Port: 4
2021-09-10 16:18:39.264995+0100:            kAGDCPluginMetricsDisplayInfo(4108) GPU:0x9f3b Port: 4 dpcd_rev:0x12 max_link_rate:0x14 max_lane_count:0xc2 max_downspread:0x1 downstreamport_present:0x15 mstm_cap:0 number_of_audio_endpoints:0x1
2021-09-10 16:18:39.266018+0100:            kAGDCPluginMetricsMonitorInfo(4109) GPU:0x9f3b Port: 4 mfgName:HYO mfgID:0x232f productID:0x49b
2021-09-10 16:18:39.780494+0100:                 kAGDCPluginMetricsSyncLT(4104) GPU:0x9f3b Port: 4
2021-09-10 16:18:39.781033+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 4
2021-09-10 16:18:39.838336+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-10 16:18:39.863720+0100:              kAGDCPluginMetricsSyncLTEnd(4105) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x2 LT Status:0x1 (OK)
2021-09-10 16:18:40.238582+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:40.269754+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:40.354294+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 16:18:40.485718+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 4
2021-09-10 16:18:40.541591+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-10 16:18:40.554457+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-10 16:18:40.621868+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:40.653092+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:40.754620+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 16:18:40.838013+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-10 16:18:42.205275+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:42.236365+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 16:18:50.746990+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 2 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x2
2021-09-10 16:18:50.829688+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-10 16:18:51.922555+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 2 2002h-2005h: 0x41 0x4 0x0 0x0	 200Ch-200Fh: 0x7 0x0 0x1 0x3
2021-09-10 16:18:51.922557+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 2 Latency(in microsecond) 453
2021-09-10 16:18:51.922840+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 2 Status:0 (OK) Stored Km:0x1
2021-09-10 16:18:51.940622+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 2 Status:0 (OK)
2021-09-10 16:18:51.998795+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:18:51.998797+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 321
2021-09-10 16:18:51.998801+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-10 16:18:52.016672+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:18:52.025761+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:18:52.184499+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:18:52.184501+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 401
2021-09-10 16:18:52.249957+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:18:52.260738+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:18:52.462365+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:26:08.981081+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-10 16:26:08.981083+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 268
2021-09-10 16:26:09.986367+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-10 16:26:11.151206+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-10 16:26:11.152319+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:26:11.152321+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 256
2021-09-10 16:26:11.168950+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:26:11.177716+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 16:26:11.327658+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 16:26:11.327660+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 352
2021-09-10 16:26:11.402244+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:26:11.411993+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 16:26:11.613371+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 17:19:52.710876+0100:                    kAGDCPluginMetricsHPD(4102) GPU:0x9f3b Port: 4 Latency(in microsecond) 3673455466658
2021-09-10 17:19:52.786879+0100:                 kAGDCPluginMetricsUnPlug(4101) GPU:0x9f3b Port: 4
2021-09-10 17:19:54.099331+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:19:54.130527+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:19:54.246625+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 17:19:54.349275+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:19:54.380521+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:19:54.480143+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 17:19:54.649774+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:19:54.680513+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:19:57.416373+0100:                    kAGDCPluginMetricsHPD(4102) GPU:0x9f3b Port: 4 Latency(in microsecond) 4609463202
2021-09-10 17:19:57.492610+0100:                   kAGDCPluginMetricsPlug(4100) GPU:0x9f3b Port: 4
2021-09-10 17:19:57.581087+0100:            kAGDCPluginMetricsDisplayInfo(4108) GPU:0x9f3b Port: 4 dpcd_rev:0x12 max_link_rate:0x14 max_lane_count:0xc2 max_downspread:0x1 downstreamport_present:0x15 mstm_cap:0 number_of_audio_endpoints:0x1
2021-09-10 17:19:57.581856+0100:            kAGDCPluginMetricsMonitorInfo(4109) GPU:0x9f3b Port: 4 mfgName:HYO mfgID:0x232f productID:0x49b
2021-09-10 17:19:57.996520+0100:                 kAGDCPluginMetricsSyncLT(4104) GPU:0x9f3b Port: 4
2021-09-10 17:19:57.997563+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 4
2021-09-10 17:19:58.053657+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-10 17:19:58.076393+0100:              kAGDCPluginMetricsSyncLTEnd(4105) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x2 LT Status:0x1 (OK)
2021-09-10 17:19:58.416356+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:19:58.447091+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:19:58.533434+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 17:19:58.664717+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 4
2021-09-10 17:19:58.720545+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-10 17:19:58.733594+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-10 17:19:58.816656+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:19:58.847061+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:19:58.933751+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 17:19:59.017156+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-10 17:20:00.365894+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:20:00.397015+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:20:08.925605+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 2 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x2
2021-09-10 17:20:09.009008+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-10 17:20:10.099600+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 2 Status:0 (OK) Stored Km:0x1
2021-09-10 17:20:10.100231+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 2 2002h-2005h: 0x41 0x4 0x0 0x0	 200Ch-200Fh: 0x7 0x0 0x1 0x3
2021-09-10 17:20:10.100233+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 2 Latency(in microsecond) 216
2021-09-10 17:20:10.118420+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 2 Status:0 (OK)
2021-09-10 17:20:10.177492+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 17:20:10.177493+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 270
2021-09-10 17:20:10.177594+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-10 17:20:10.195590+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 17:20:10.204166+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 17:20:10.363235+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 17:20:10.363237+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 377
2021-09-10 17:20:10.428422+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 17:20:10.438535+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 17:20:10.641319+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 17:27:16.693903+0100:                    kAGDCPluginMetricsHPD(4102) GPU:0x9f3b Port: 4 Latency(in microsecond) 439122890077
2021-09-10 17:27:16.770120+0100:                 kAGDCPluginMetricsUnPlug(4101) GPU:0x9f3b Port: 4
2021-09-10 17:27:17.353353+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:17.384580+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:17.505799+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 17:27:17.586632+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:17.617906+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:17.705962+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 17:27:17.870064+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:17.901230+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:27.698506+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 2 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x2
2021-09-10 17:27:28.878253+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 2 Status:0 (OK) Stored Km:0x1
2021-09-10 17:27:28.879953+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 2 2002h-2005h: 0x41 0x4 0x0 0x0	 200Ch-200Fh: 0x7 0x0 0x1 0x3
2021-09-10 17:27:28.879956+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 2 Latency(in microsecond) 576
2021-09-10 17:27:28.898051+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 2 Status:0 (OK)
2021-09-10 17:27:31.591705+0100:                    kAGDCPluginMetricsHPD(4102) GPU:0x9f3b Port: 4 Latency(in microsecond) 14804689790
2021-09-10 17:27:31.665960+0100:                   kAGDCPluginMetricsPlug(4100) GPU:0x9f3b Port: 4
2021-09-10 17:27:31.756201+0100:            kAGDCPluginMetricsDisplayInfo(4108) GPU:0x9f3b Port: 4 dpcd_rev:0x12 max_link_rate:0x14 max_lane_count:0xc2 max_downspread:0x1 downstreamport_present:0x15 mstm_cap:0 number_of_audio_endpoints:0x1
2021-09-10 17:27:31.756979+0100:            kAGDCPluginMetricsMonitorInfo(4109) GPU:0x9f3b Port: 4 mfgName:HYO mfgID:0x232f productID:0x49b
2021-09-10 17:27:32.198272+0100:                 kAGDCPluginMetricsSyncLT(4104) GPU:0x9f3b Port: 4
2021-09-10 17:27:32.198968+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 4
2021-09-10 17:27:32.255145+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-10 17:27:32.280925+0100:              kAGDCPluginMetricsSyncLTEnd(4105) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x2 LT Status:0x1 (OK)
2021-09-10 17:27:32.436532+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:32.467511+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:32.634727+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 17:27:32.749389+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 4
2021-09-10 17:27:32.805664+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-10 17:27:32.818213+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-10 17:27:32.886364+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:32.917477+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:33.001694+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-10 17:27:33.085092+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-10 17:27:34.652803+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:34.684088+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-10 17:27:42.993223+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 2 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x2
2021-09-10 17:27:43.076006+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-10 17:27:44.171532+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 2 Status:0 (OK) Stored Km:0x1
2021-09-10 17:27:44.172670+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 2 2002h-2005h: 0x41 0x4 0x0 0x0	 200Ch-200Fh: 0x7 0x0 0x1 0x3
2021-09-10 17:27:44.172672+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 2 Latency(in microsecond) 308
2021-09-10 17:27:44.190269+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 2 Status:0 (OK)
2021-09-10 17:27:44.238542+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-10 17:27:44.239191+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 17:27:44.239194+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 510
2021-09-10 17:27:44.255283+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 17:27:44.263734+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-10 17:27:44.424598+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-10 17:27:44.424599+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 319
2021-09-10 17:27:44.488150+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 17:27:44.498396+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 17:27:44.703175+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-10 18:01:04.718434+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Will
2021-09-10 18:01:23.801644+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-10 18:01:23.921231+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-10 18:01:23.942152+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-10 18:01:23.942482+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-10 18:01:23.959816+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-10 18:01:28.637795+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-10 18:01:28.960759+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-10 18:01:29.017980+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-10 18:01:29.032979+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-10 18:01:29.092254+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-10 18:01:29.833167+0100:                 kAGDCPluginMetricsUnPlug(4101) GPU:0x9f3b Port: 4
2021-09-10 18:02:16.244292+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-10 18:02:16.244478+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-10 18:02:16.244588+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-10 18:02:16.244722+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-10 18:02:16.260449+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-10 20:02:17.817471+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-10 20:02:18.130507+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-10 20:02:18.191854+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-10 20:02:18.207527+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-10 20:02:18.264020+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-10 20:03:05.471116+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-10 20:03:05.820858+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-10 20:03:05.821671+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-10 20:03:05.822238+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-10 20:03:05.840976+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-10 22:03:07.863659+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-10 22:03:08.175908+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-10 22:03:08.235702+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-10 22:03:08.250544+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-10 22:03:08.308504+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-10 22:03:55.917924+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-10 22:03:55.918850+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-10 22:03:55.919694+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-10 22:03:55.920210+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-10 22:03:55.939522+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 00:03:57.838985+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 00:03:58.149816+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 00:03:58.207946+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 00:03:58.223118+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 00:03:58.282880+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 00:04:45.538232+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 00:04:45.885105+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 00:04:45.885673+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 00:04:45.886161+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 00:04:45.903899+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 02:04:47.847977+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 02:04:48.161797+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 02:04:48.203568+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 02:04:48.217029+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 02:04:48.278434+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 02:05:35.859793+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 02:05:35.860338+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 02:05:35.860633+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 02:05:35.861002+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 02:05:35.877359+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 04:05:37.450543+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 04:05:37.766827+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 04:05:37.823783+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 04:05:37.838010+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 04:05:37.896639+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 04:06:25.203469+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 04:06:25.549943+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 04:06:25.550607+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 04:06:25.551107+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 04:06:25.568641+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 06:06:26.848126+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 06:06:27.162377+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 06:06:27.221358+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 06:06:27.236130+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 06:06:27.293523+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 06:07:14.956704+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 06:07:14.957348+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 06:07:14.957912+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 06:07:14.958394+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 06:07:14.975751+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 08:07:16.879760+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 08:07:17.193231+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 08:07:17.253050+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 08:07:17.268871+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 08:07:17.325256+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 08:08:04.905277+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 08:08:04.906408+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 08:08:04.906810+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 08:08:04.907145+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 08:08:04.926068+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 10:08:06.870665+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 10:08:07.181986+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 10:08:07.241994+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 10:08:07.257349+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 10:08:07.314082+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 10:08:54.586047+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 10:08:54.934700+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 10:08:54.935444+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 10:08:54.936121+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 10:08:54.955283+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 12:08:56.842199+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 12:08:57.158618+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 12:08:57.216743+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 12:08:57.231054+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 12:08:57.293082+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 12:09:44.927275+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 12:09:44.927912+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 12:09:44.928313+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 12:09:44.928762+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 12:09:44.948271+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 14:09:46.858239+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 14:09:47.168162+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 14:09:47.224974+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 14:09:47.238926+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 14:09:47.297564+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 14:10:34.919485+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 14:10:34.920139+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 14:10:34.920528+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 14:10:34.921019+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 14:10:34.938437+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 16:10:36.860977+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 16:10:37.172812+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 16:10:37.230338+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 16:10:37.244680+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 16:10:37.303597+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 16:11:24.868776+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 16:11:24.869320+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 16:11:24.869718+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 16:11:24.870192+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 16:11:24.889331+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 17:28:38.851041+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 17:28:39.176818+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 17:28:39.235640+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 17:28:39.250144+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 17:28:39.310184+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 17:29:26.475313+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 17:29:26.477074+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 17:29:26.825272+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 17:29:26.826142+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 17:29:26.843720+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 19:29:28.839534+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 19:29:29.147749+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 19:29:29.191039+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 19:29:29.207943+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 19:29:29.263344+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 19:30:16.470157+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 19:30:16.816328+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 19:30:16.816823+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 19:30:16.817479+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 19:30:16.837385+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 21:30:18.858578+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 21:30:19.170850+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 21:30:19.230021+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 21:30:19.245170+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 21:30:19.302966+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 21:31:06.470881+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 21:31:06.824005+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 21:31:06.824601+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 21:31:06.825094+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 21:31:06.844333+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-11 23:31:08.874911+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-11 23:31:09.190368+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-11 23:31:09.248418+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-11 23:31:09.261473+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-11 23:31:09.320536+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-11 23:31:56.510048+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-11 23:31:56.512460+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-11 23:31:56.865342+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-11 23:31:56.866200+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-11 23:31:56.885006+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 01:31:58.838669+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 01:31:59.153805+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 01:31:59.211579+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 01:31:59.225801+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 01:31:59.284710+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 01:32:46.942208+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 01:32:46.942923+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 01:32:46.943324+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 01:32:46.943763+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 01:32:46.961769+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 03:32:48.470804+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 03:32:48.785958+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 03:32:48.844083+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 03:32:48.858106+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 03:32:48.920054+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 03:33:36.211882+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 03:33:36.558833+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 03:33:36.559814+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 03:33:36.560433+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 03:33:36.579864+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 05:33:38.849157+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 05:33:39.161209+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 05:33:39.219748+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 05:33:39.234500+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 05:33:39.294235+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 05:34:26.881825+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 05:34:26.882473+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 05:34:26.882881+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 05:34:26.883338+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 05:34:26.901666+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 07:34:28.838805+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 07:34:29.147294+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 07:34:29.207708+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 07:34:29.222243+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 07:34:29.279913+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 07:35:16.869325+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 07:35:16.869905+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 07:35:16.870257+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 07:35:16.870713+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 07:35:16.889409+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 09:35:18.855540+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 09:35:19.170927+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 09:35:19.230835+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 09:35:19.246329+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 09:35:19.302075+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 09:36:06.959850+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 09:36:06.960419+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 09:36:06.961030+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 09:36:06.961732+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 09:36:06.981046+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 11:36:08.850506+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 11:36:09.162912+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 11:36:09.220858+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 11:36:09.236466+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 11:36:09.293309+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 11:36:56.514317+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 11:36:56.865064+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 11:36:56.865743+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 11:36:56.866234+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 11:36:56.884187+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 13:36:58.860316+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 13:36:59.174153+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 13:36:59.232239+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 13:36:59.246185+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 13:36:59.305727+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 13:37:46.585405+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 13:37:46.935270+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 13:37:46.936672+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 13:37:46.937303+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 13:37:46.956763+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 15:37:48.865070+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 15:37:49.177552+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 15:37:49.240033+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 15:37:49.255567+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 15:37:49.312158+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 15:38:36.889946+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 15:38:36.890515+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 15:38:36.890806+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 15:38:36.891107+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 15:38:36.909022+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 17:29:38.849388+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 17:29:39.165537+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 17:29:39.223461+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 17:29:39.237666+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 17:29:39.297132+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 17:30:26.574922+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 17:30:26.922768+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 17:30:26.923675+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 17:30:26.924200+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 17:30:26.943578+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 19:30:28.844793+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 19:30:29.160951+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 19:30:29.219804+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 19:30:29.233967+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 19:30:29.291253+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 19:31:16.866154+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 19:31:16.866823+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 19:31:16.867216+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 19:31:16.867659+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 19:31:16.886210+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 20:24:12.036576+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 20:24:12.358094+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 20:24:12.418759+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 20:24:12.431806+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 20:24:12.490130+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 20:25:00.123078+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 20:25:00.123654+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 20:25:00.124006+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 20:25:00.124485+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 20:25:00.142248+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-12 22:25:00.154434+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-12 22:25:00.475013+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-12 22:25:00.533219+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-12 22:25:00.547023+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-12 22:25:00.605089+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-12 22:25:48.208673+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-12 22:25:48.209220+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-12 22:25:48.209728+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-12 22:25:48.210243+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-12 22:25:48.228721+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-13 00:25:48.456070+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-13 00:25:48.787193+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-13 00:25:48.853448+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-13 00:25:48.868140+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-13 00:25:48.932852+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-13 00:26:36.257597+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-13 00:26:36.606000+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-13 00:26:36.606682+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-13 00:26:36.607431+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-13 00:26:36.626625+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-13 02:15:32.162873+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-13 02:15:32.488490+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-13 02:15:32.546678+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-13 02:15:32.561050+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-13 02:15:32.620695+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-13 02:16:20.267218+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-13 02:16:20.268188+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-13 02:16:20.268750+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-13 02:16:20.269512+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-13 02:16:20.286419+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-13 03:27:21.160872+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-13 03:27:21.477208+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-13 03:27:21.534631+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-13 03:27:21.549526+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-13 03:27:21.608021+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-13 03:28:09.289619+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-13 03:28:09.290247+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-13 03:28:09.290610+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-13 03:28:09.290977+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-13 03:28:09.309189+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-13 05:28:09.164713+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-13 05:28:09.481262+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-13 05:28:09.540268+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-13 05:28:09.554503+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-13 05:28:09.613878+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-13 05:28:57.168914+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:0
2021-09-13 05:28:57.170008+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:1
2021-09-13 05:28:57.170416+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:2
2021-09-13 05:28:57.171237+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:3
2021-09-13 05:28:57.190303+0100:               kAGDCPluginMetricsPowerOff(411e) GPU:0x9f3b Port: 0 Did	 FB:4
2021-09-13 07:10:01.762779+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:0
2021-09-13 07:10:02.270434+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 1
2021-09-13 07:10:02.275721+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 1 link_rate:0xc lane_count:0x84 LT Status:0x1 (OK)
2021-09-13 07:10:02.296816+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:02.371412+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:02.391958+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:1
2021-09-13 07:10:02.482921+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:02.504665+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:02.519719+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:02.540935+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:02.557494+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:02.578257+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:02.595375+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:02.616393+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:02.656207+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:2
2021-09-13 07:10:02.669750+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:3
2021-09-13 07:10:03.188870+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Will	 FB:4
2021-09-13 07:10:03.225438+0100:                kAGDCPluginMetricsPowerOn(411f) GPU:0x9f3b Port: 0 Did
2021-09-13 07:10:03.329812+0100:                   kAGDCPluginMetricsPlug(4100) GPU:0x9f3b Port: 1
2021-09-13 07:10:03.453608+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:03.474613+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:03.491185+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:03.512329+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:03.525785+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:03.546781+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:03.561400+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:03.582285+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:04.005876+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:04.038057+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:04.119481+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:04.140567+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:04.157628+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:04.179089+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:04.197324+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:04.219698+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:04.232445+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:04.254521+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:05.141769+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:05.164338+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:05.179390+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:05.201595+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:05.217408+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:05.239762+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:05.252660+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:05.274870+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0 (FAIL)
2021-09-13 07:10:05.487526+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 4
2021-09-13 07:10:05.542279+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-13 07:10:05.557311+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:06.364054+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 1
2021-09-13 07:10:06.368522+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 1 link_rate:0xc lane_count:0x84 LT Status:0x1 (OK)
2021-09-13 07:10:06.388731+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:06.474233+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:07.059637+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:07.090894+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:07.125075+0100:                    kAGDCPluginMetricsHPD(4102) GPU:0x9f3b Port: 1 Latency(in microsecond) 3672018716062
2021-09-13 07:10:07.127553+0100:                 kAGDCPluginMetricsUnPlug(4101) GPU:0x9f3b Port: 2
2021-09-13 07:10:07.129688+0100:                   kAGDCPluginMetricsPlug(4100) GPU:0x9f3b Port: 4
2021-09-13 07:10:07.674524+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:07.711561+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x81 LT Status:0x1 (OK)
2021-09-13 07:10:07.725759+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:07.757176+0100:                    kAGDCPluginMetricsHPD(4102) GPU:0x9f3b Port: 4 Latency(in microsecond) 548330691
2021-09-13 07:10:07.835197+0100:                   kAGDCPluginMetricsPlug(4100) GPU:0x9f3b Port: 2
2021-09-13 07:10:07.919724+0100:            kAGDCPluginMetricsDisplayInfo(4108) GPU:0x9f3b Port: 2 dpcd_rev:0x14 max_link_rate:0x1e max_lane_count:0xc4 max_downspread:0x81 downstreamport_present:0 mstm_cap:0 number_of_audio_endpoints:0
2021-09-13 07:10:07.920516+0100:            kAGDCPluginMetricsMonitorInfo(4109) GPU:0x9f3b Port: 2 mfgName:AUS mfgID:0x6b3 productID:0x272a
2021-09-13 07:10:07.949405+0100:                    kAGDCPluginMetricsHPD(4102) GPU:0x9f3b Port: 2 Latency(in microsecond) 40242377
2021-09-13 07:10:08.209701+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:08.240865+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:08.343063+0100:            kAGDCPluginMetricsDisplayInfo(4108) GPU:0x9f3b Port: 4 dpcd_rev:0x12 max_link_rate:0x14 max_lane_count:0xc2 max_downspread:0x1 downstreamport_present:0x15 mstm_cap:0 number_of_audio_endpoints:0x1
2021-09-13 07:10:08.343864+0100:            kAGDCPluginMetricsMonitorInfo(4109) GPU:0x9f3b Port: 4 mfgName:HYO mfgID:0x232f productID:0x49b
2021-09-13 07:10:08.582806+0100:                 kAGDCPluginMetricsSyncLT(4104) GPU:0x9f3b Port: 4
2021-09-13 07:10:08.583333+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 4
2021-09-13 07:10:08.638022+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-13 07:10:08.660438+0100:              kAGDCPluginMetricsSyncLTEnd(4105) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x2 LT Status:0x1 (OK)
2021-09-13 07:10:09.012979+0100:                 kAGDCPluginMetricsSyncLT(4104) GPU:0x9f3b Port: 2
2021-09-13 07:10:09.016565+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:09.070591+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x84 LT Status:0x1 (OK)
2021-09-13 07:10:09.096280+0100:              kAGDCPluginMetricsSyncLTEnd(4105) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x4 LT Status:0x1 (OK)
2021-09-13 07:10:09.126398+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:09.157516+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:09.289547+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 4
2021-09-13 07:10:09.346692+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 4 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-13 07:10:09.357579+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:09.426355+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:09.457510+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:09.541067+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:11.008942+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:12.093040+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:12.124132+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:12.291094+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:12.345410+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x84 LT Status:0x1 (OK)
2021-09-13 07:10:12.360050+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:12.443455+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:12.526248+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:12.557458+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:13.669131+0100:            kAGDCPluginMetricsDisplayInfo(4108) GPU:0x9f3b Port: 4 dpcd_rev:0x12 max_link_rate:0x14 max_lane_count:0xc2 max_downspread:0x1 downstreamport_present:0x15 mstm_cap:0 number_of_audio_endpoints:0x1
2021-09-13 07:10:13.669949+0100:            kAGDCPluginMetricsMonitorInfo(4109) GPU:0x9f3b Port: 4 mfgName:HYO mfgID:0x232f productID:0x49b
2021-09-13 07:10:13.711157+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:14.393969+0100:            kAGDCPluginMetricsDisplayInfo(4108) GPU:0x9f3b Port: 2 dpcd_rev:0 max_link_rate:0 max_lane_count:0 max_downspread:0 downstreamport_present:0 mstm_cap:0 number_of_audio_endpoints:0
2021-09-13 07:10:14.393972+0100:            kAGDCPluginMetricsMonitorInfo(4109) GPU:0x9f3b Port: 2 mfgName:AUS mfgID:0x6b3 productID:0x272a
2021-09-13 07:10:14.676405+0100:                    kAGDCPluginMetricsHPD(4102) GPU:0x9f3b Port: 2 Latency(in microsecond) 6576663451
2021-09-13 07:10:14.865295+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:14.886334+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x84 LT Status:0 (FAIL)
2021-09-13 07:10:14.900363+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:14.921346+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x84 LT Status:0 (FAIL)
2021-09-13 07:10:14.935817+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:14.974657+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x1e lane_count:0x84 LT Status:0x1 (OK)
2021-09-13 07:10:14.978860+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:16.026198+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:16.057391+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:16.163174+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:17.176088+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:17.207372+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:17.297434+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:17.376103+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:17.407366+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:17.497597+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:17.659563+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:17.690701+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:18.076230+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:18.107354+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:18.262634+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:18.336581+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-13 07:10:18.348298+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:18.431700+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:18.492852+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:18.524017+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:18.648538+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:18.731938+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:19.403599+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:19.478587+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x14 lane_count:0x84 LT Status:0x1 (OK)
2021-09-13 07:10:19.482546+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:21.876088+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:21.907286+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:22.520980+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:22.594405+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-13 07:10:22.601777+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:23.292783+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:23.323918+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:23.419115+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:23.492801+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:23.523914+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:23.619282+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:23.742732+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:23.773922+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:24.176035+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:24.207242+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:24.368571+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:24.443327+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-13 07:10:24.453301+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:24.536699+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:24.609518+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:24.640565+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:24.753545+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:24.836944+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 4
2021-09-13 07:10:25.509556+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:25.585349+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x14 lane_count:0x84 LT Status:0x1 (OK)
2021-09-13 07:10:25.587528+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:26.725929+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:26.757190+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 1
2021-09-13 07:10:27.360317+0100:                kAGDCPluginMetricsLTBegin(4106) GPU:0x9f3b Port: 2
2021-09-13 07:10:27.435058+0100:                  kAGDCPluginMetricsLTEnd(4107) GPU:0x9f3b Port: 2 link_rate:0x14 lane_count:0x82 LT Status:0x1 (OK)
2021-09-13 07:10:27.439077+0100:              kAGDCPluginMetricsLightUpDp(410a) GPU:0x9f3b Port: 2
2021-09-13 07:10:34.828798+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-13 07:10:35.996349+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-13 07:10:35.997457+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 07:10:35.997459+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 406
2021-09-13 07:10:36.014109+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 07:10:36.056548+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 07:10:36.170549+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 07:10:36.170551+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 543
2021-09-13 07:10:36.281025+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 07:10:36.291225+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 07:10:36.496672+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 07:10:37.439043+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 2 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x2
2021-09-13 07:10:38.614387+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 2 Status:0 (OK) Stored Km:0x1
2021-09-13 07:10:38.615081+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 2 Error: NoPortData
2021-09-13 07:10:38.615082+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 2 Latency(in microsecond) 150
2021-09-13 07:10:38.632209+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 2 Status:0 (OK)
2021-09-13 07:13:54.468307+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-13 07:13:54.468309+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 456
2021-09-13 07:13:55.474316+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-13 07:13:56.635407+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-13 07:13:56.636125+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 07:13:56.636126+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 275
2021-09-13 07:13:56.652186+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 07:13:56.660554+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 07:13:56.809249+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 07:13:56.809250+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 358
2021-09-13 07:13:56.883955+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 07:13:56.893282+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 07:13:57.098292+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:11:36.313865+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-13 08:11:36.313867+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 256
2021-09-13 08:11:37.319183+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-13 08:11:38.489385+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 08:11:38.489387+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 324
2021-09-13 08:11:38.489750+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-13 08:11:38.507569+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 08:11:38.516641+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 08:11:38.665446+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 08:11:38.665449+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 614
2021-09-13 08:11:38.742225+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:11:38.752665+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:11:38.958167+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:11:41.236035+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-13 08:11:41.236038+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 497
2021-09-13 08:11:42.242159+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-13 08:11:43.412898+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-13 08:11:43.413927+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 08:11:43.413929+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 286
2021-09-13 08:11:43.430851+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 08:11:43.440168+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 08:11:43.584964+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 08:11:43.584967+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 596
2021-09-13 08:11:43.666316+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:11:43.676961+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:11:43.882864+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:11:48.734690+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-13 08:11:48.734691+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 389
2021-09-13 08:11:49.740605+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-13 08:11:50.904987+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-13 08:11:50.904989+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 275
2021-09-13 08:11:50.905059+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-13 08:11:50.921854+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 08:11:50.930258+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 08:11:51.423403+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 08:11:51.423405+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 375
2021-09-13 08:11:51.435811+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:11:51.445964+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:11:51.650337+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:11:57.703362+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-13 08:11:57.703365+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 803
2021-09-13 08:11:58.709369+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-13 08:11:59.877471+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-13 08:11:59.878888+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 08:11:59.878890+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 472
2021-09-13 08:11:59.896147+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 08:11:59.905024+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 08:12:00.052060+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 08:12:00.052062+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 438
2021-09-13 08:12:00.130541+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:12:00.141398+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:12:00.346390+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
2021-09-13 08:26:47.072819+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x0
2021-09-13 08:26:47.072820+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 390
2021-09-13 08:26:48.079187+0100:              kAGDCPluginMetricsHDCPStart(410b) GPU:0x9f3b Port: 4 HDCP version:0x2.0x2 Authenticated Version:0x2 Bcaps:0x3
2021-09-13 08:26:49.248052+0100:     kAGDCPluginMetricsFirstPhaseComplete(410c) GPU:0x9f3b Port: 4 Status:0 (OK) Stored Km:0x1
2021-09-13 08:26:49.248152+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 08:26:49.248155+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 389
2021-09-13 08:26:49.264942+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 08:26:49.274097+0100:          kAGDCPluginMetricsLocalityCheck(410d) GPU:0x9f3b Port: 4 Status:0 (OK)
2021-09-13 08:26:49.421414+0100:                kAGDCPluginMetricsSPIData(4120) GPU:0x9f3b Port: 4 200h-205h: 0x1 0x4 0x77 0x0 0x1 0x1
2021-09-13 08:26:49.421416+0100:                    kAGDCPluginMetricsSPI(4103) GPU:0x9f3b Port: 4 Latency(in microsecond) 356
2021-09-13 08:26:49.499592+0100: kAGDCPluginMetricsRepeaterAuthentication(410e) GPU:0x9f3b Port: 4 Status:0 (OK) Depth 2 Device count 11
### End: Metrics (took 0.008 sec) ############################################

### Start: displaypolicyd ####################################################
running 607112 sec (started Mon Sep  6 07:54:01 2021, now Mon Sep 13 08:32:33 2021)
boardID: Mac-937A206F2EE63C01
featureMask: 0x2000
platformFlags: 0
extraSupportFlags: 0
wranglerFlags: 0x44
launcher[0]: name '1:0:0', state 1, managerState 1, vendor class/id/version 0x5 0x106b 0x10000
gpu[0]: index=0 state=0x5 (Published) events=() dispPolicyState=0x6 (WaitingForAGDP) dispPolicyLaunchIndex=-1
gpu 0x56ce flags 0xb2000010 (IG,published,quiet,pubSched,pubArmed)
gpu 0x56ce        pci 0x100000377 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2
gpu 0x56ce       agdc 0x1000006f2     /AppleIntelFramebufferController/IntelFBClientControl
gpu 0x56ce       gpuc 0x000000000
gpu 0x56ce agdpclient 0x000000000
gpu 0x56ce      accel 0x1000006cf     /IntelAccelerator
gpu 0x56ce      fb0:0 0x1000006df     /AppleIntelFramebuffer@0
gpu[1]: index=1 state=0x5 (Published) events=() dispPolicyState=0x1 (Managed) dispPolicyLaunchIndex=0
gpu 0x9f3b flags 0xbe000020 (DG,published,driversStarted,hasGPUC,quiet,pubSched,pubArmed)
gpu 0x9f3b        pci 0x100000290 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0
gpu 0x9f3b       agdc 0x100000723     /AtiDeviceControl
gpu 0x9f3b       gpuc 0x100000666     /AMD9500ControllerWrangler
gpu 0x9f3b agdpclient 0x100000725     /AtiDeviceControl/AppleGraphicsDevicePolicy/AGDPClientControl
gpu 0x9f3b      accel 0x1000006e4     /AMDRadeonX4000_AMDBaffinGraphicsAccelerator
gpu 0x9f3b      fb0:0 0x100000705     /ATY,Palena@0/AMDFramebufferVIB
gpu 0x9f3b      fb1:1 0x10000070b     /ATY,Palena@1/AMDFramebufferVIB
gpu 0x9f3b      fb2:2 0x100000711     /ATY,Palena@2/AMDFramebufferVIB
gpu 0x9f3b      fb3:3 0x100000717     /ATY,Palena@3/AMDFramebufferVIB
gpu 0x9f3b      fb4:4 0x10000071d     /ATY,Palena@4/AMDFramebufferVIB
Version: 6.3.5, Max: 512, counter: 8842, calendar sync: 0x5cbdb77eec2bc/0x8d5b212bbd
Wraparound detected; older entries expired [8842/512]
GTRACEDATASTREAM traceData = {
    { 0x67547261, 0x63654461, 0x74614475, 0x6d700000, 0x102, 512, 8842, 6, 3, 5, 0, 56, 1631518353965756, 607119289277 },
    {
        { 152301538087911, 0x100000725, 504, 40, 60, 49, 0x5, 0x0, 0x0 },
        { 152301538088350, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 152301651125465, 0x0, 662, 84, 84, 0, 0x1, 0x1, 0x0 },
        { 154312369864914, 0x0, 685, 88, 56, 53, 0x1, 0x1, 0xe0000210 },
        { 154312370975194, 0x0, 662, 84, 84, 0, 0x0, 0x0, 0x0 },
        { 154312385550054, 0x0, 646, 75, 62, 0, 0xe0000280, 0x0, 0x0 },
        { 154312727769544, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 154312727781122, 0x100000725, 155, 42, 53, 0, 0x0, 0x5, 0x0 },
        { 154312727781553, 0x100000725, 190, 41, 61, 61, 0x0, 0x1, 0x0 },
        { 154312727781661, 0x100000725, 1653, 25, 58, 0, 0x1, 0x0, 0x0 },
        { 154333111285509, 0x0, 685, 88, 56, 53, 0x1, 0x0, 0xe0000210 },
        { 155965698415478, 0x0, 646, 75, 62, 0, 0xe0000320, 0x0, 0x0 },
        { 155965706351041, 0x0, 685, 88, 56, 53, 0x0, 0x4, 0xe0000230 },
        { 155965723268939, 0x0, 662, 84, 84, 0, 0x1, 0x1, 0x0 },
        { 155966551878197, 0x0, 662, 84, 84, 0, 0x11, 0x1, 0x0 },
        { 155967866203500, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155967866214827, 0x100000725, 155, 42, 53, 0, 0x1, 0x1, 0x0 },
        { 155967897261565, 0x100000725, 155, 42, 53, 0, 0x0, 0x5, 0x0 },
        { 155967897261852, 0x100000725, 190, 41, 61, 61, 0x0, 0x0, 0x1 },
        { 155967897261967, 0x100000725, 1653, 25, 58, 0, 0x0, 0x1, 0x0 },
        { 155967897348735, 0x0, 228, 1, 43, 0, 0x2, 0xa, 0x0 },
        { 155967907749543, 0x0, 46, 39, 0, 0, 0x1, 0x0, 0x0 },
        { 155967907750293, 0x100000725, 155, 42, 53, 0, 0x0, 0x6, 0x0 },
        { 155969554675259, 0x0, 228, 1, 43, 0, 0x1, 0xfa, 0x0 },
        { 155969564211419, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155969564226742, 0x100000725, 155, 42, 53, 0, 0x1, 0x1, 0x0 },
        { 155969564295727, 0x100000725, 155, 42, 53, 0, 0x0, 0x1, 0x0 },
        { 155969564402742, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155969564424654, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155969566374982, 0x0, 646, 75, 62, 0, 0xe0000300, 0x0, 0x0 },
        { 155969586899330, 0x100000725, 5241, 76, 46, 0, 0x1000000, 0x400000000, 0x0 },
        { 155969586899684, 0x100000725, 5485, 7, 46, 0, 0x1, 0x400000000, 0x0 },
        { 155969626485019, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155969634885328, 0x100000725, 3993, 81, 83, 0, 0x0, 0x3, 0x0 },
        { 155969637733529, 0x100000725, 3651, 82, 83, 0, 0x0, 0x3, 0x0 },
        { 155969637785538, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155969637788625, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x20102000000011e },
        { 155969637796176, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155969637796949, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x1000000000214 },
        { 155969637797507, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155969637800596, 0x100000725, 401, 9, 47, 64, 0xb, 0x14, 0x0 },
        { 155969637801415, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155969637809288, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155969637812949, 0x100000725, 410, 10, 0, 0, 0x103000200000001, 0x0, 0x0 },
        { 155969638521390, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155969638536938, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155969638545000, 0x100000725, 410, 10, 0, 0, 0x307000300000001, 0x0, 0x0 },
        { 155969638553524, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155969638571640, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155969638581458, 0x100000725, 613, 36, 59, 70, 0x4, 0x0, 0x0 },
        { 155969934194389, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155969934195770, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155970184667062, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155970184668173, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155970436618321, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155970436619124, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155970505649124, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155970505794106, 0x100000725, 155, 42, 53, 0, 0x0, 0x2, 0x0 },
        { 155970513734938, 0x0, 228, 1, 43, 0, 0x1, 0xfa, 0x0 },
        { 155970513736695, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155970513738984, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x20102000000011e },
        { 155970513742474, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155970513743164, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x0 },
        { 155970513743768, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155970513744364, 0x100000725, 401, 9, 47, 64, 0x3, 0x1c, 0x0 },
        { 155970513744956, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155970513749380, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155970513752640, 0x100000725, 410, 10, 0, 0, 0x103000200000001, 0x0, 0x0 },
        { 155970513766284, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155970513769504, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155970513770942, 0x100000725, 410, 10, 0, 0, 0x300000200000000, 0x0, 0x0 },
        { 155970513771927, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155970513885060, 0x100000725, 5241, 76, 46, 0, 0x1000001, 0x200000000, 0x0 },
        { 155970513885289, 0x100000725, 500, 40, 60, 49, 0x2, 0x1, 0x100000001 },
        { 155970513963362, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155970524963249, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155970541046091, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155970763710790, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155970763711469, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155971145787282, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155971156663448, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155971166946363, 0x100000725, 1986, 35, 50, 69, 0x2, 0x100000001, 0x1 },
        { 155971166950713, 0x100000725, 500, 40, 60, 49, 0x2, 0x1, 0x100000001 },
        { 155971554129345, 0x0, 662, 84, 84, 0, 0x1, 0x1, 0x0 },
        { 155971648022056, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155971648130230, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155971648141347, 0x100000725, 155, 42, 53, 0, 0x0, 0x1, 0x0 },
        { 155971659164580, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155971849958278, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155971860097990, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155972550784409, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x0 },
        { 155972550788962, 0x100000725, 1986, 35, 50, 69, 0x2, 0x200000002, 0x1 },
        { 155972551663249, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x0 },
        { 155972551665876, 0x100000725, 1986, 35, 50, 69, 0x2, 0x200000002, 0x1 },
        { 155972552489791, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x600000000, 0x0 },
        { 155972553286149, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x10000000e, 0x0 },
        { 155972553960105, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x400000020, 0x0 },
        { 155972554830572, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x1000000060, 0x0 },
        { 155972555493326, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000090, 0x0 },
        { 155972556749850, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x1000002200, 0x0 },
        { 155972557507364, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0xc00000400, 0x0 },
        { 155972561257277, 0x100000725, 5399, 5, 46, 0, 0x1, 0x200000000, 0x0 },
        { 155972562084104, 0x100000725, 613, 36, 59, 70, 0x2, 0x0, 0x1 },
        { 155972563058001, 0x100000725, 5241, 76, 46, 0, 0x1000000, 0x300000000, 0x0 },
        { 155972563058215, 0x100000725, 613, 36, 59, 70, 0x3, 0x0, 0x0 },
        { 155972563289036, 0x100000725, 5241, 76, 46, 0, 0x1000001, 0x400000000, 0x0 },
        { 155972563289177, 0x100000725, 500, 40, 60, 49, 0x4, 0x1, 0x100000000 },
        { 155972564059941, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x100000000, 0x0 },
        { 155972564062961, 0x100000725, 1986, 35, 50, 69, 0x4, 0x200000002, 0x1 },
        { 155972974820863, 0x100000725, 500, 40, 60, 49, 0x4, 0x1, 0x100000000 },
        { 155972975644772, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x100000000, 0x0 },
        { 155972975667203, 0x100000725, 1986, 35, 50, 69, 0x4, 0x200000002, 0x1 },
        { 155972976477919, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x100000000, 0x0 },
        { 155972976480827, 0x100000725, 1986, 35, 50, 69, 0x4, 0x200000002, 0x1 },
        { 155972977321239, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x600000000, 0x0 },
        { 155972978082399, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x10000000e, 0x0 },
        { 155972978786778, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x400000020, 0x0 },
        { 155972979572608, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x1000000060, 0x0 },
        { 155972980257056, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x100000090, 0x0 },
        { 155972981107956, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x1000002200, 0x0 },
        { 155972981879967, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0xc00000500, 0x0 },
        { 155972984618947, 0x100000725, 5478, 6, 46, 0, 0x1, 0x400000000, 0x0 },
        { 155972984619320, 0x100000725, 613, 36, 59, 70, 0x4, 0x0, 0x1 },
        { 155972984620103, 0x0, 228, 1, 43, 0, 0x1, 0xfa, 0x0 },
        { 155972985512765, 0x100000725, 5241, 76, 46, 0, 0x1000000, 0x500000000, 0x0 },
        { 155972985513136, 0x100000725, 613, 36, 59, 70, 0x5, 0x0, 0x0 },
        { 155972986418284, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155972986419376, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155972986460512, 0x100000725, 3993, 81, 83, 0, 0x0, 0x1, 0x0 },
        { 155972987635755, 0x100000725, 3651, 82, 83, 0, 0x0, 0x1, 0x0 },
        { 155972987672547, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155972987674027, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x20102000000011e },
        { 155972987676187, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155972987676627, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x200020000000000 },
        { 155972987678208, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155972987678657, 0x100000725, 401, 9, 47, 64, 0x3, 0x1c, 0x0 },
        { 155972987679150, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155972987682515, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155972987684814, 0x100000725, 410, 10, 0, 0, 0x107000300000001, 0x0, 0x0 },
        { 155972987703295, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155972987706043, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155972987707433, 0x100000725, 410, 10, 0, 0, 0x300000200000000, 0x0, 0x0 },
        { 155972987708369, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155972987723829, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155972987760558, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155972987761793, 0x100000725, 500, 40, 60, 49, 0x4, 0x1, 0x100000000 },
        { 155973210949235, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x100000600, 0x0 },
        { 155973211382437, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0xc000e0000, 0x0 },
        { 155973279048542, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x100000102, 0x0 },
        { 155973280563063, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x1000e000c, 0x0 },
        { 155973301853716, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155973301859579, 0x100000725, 155, 42, 53, 0, 0x2, 0x1, 0x0 },
        { 155973301899378, 0x100000725, 155, 42, 53, 0, 0x1, 0x1, 0x0 },
        { 155973301914641, 0x100000725, 155, 42, 53, 0, 0x0, 0x1, 0x0 },
        { 155973301936561, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155973301945609, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155973451733743, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155973451741368, 0x100000725, 155, 42, 53, 0, 0x0, 0x2, 0x0 },
        { 155973453305708, 0x0, 228, 1, 43, 0, 0x1, 0xfa, 0x0 },
        { 155973453306778, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155973453310187, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155973453310724, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x200020000000000 },
        { 155973453312763, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155973453313166, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155973453314720, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155973453315023, 0x100000725, 401, 9, 47, 64, 0x1, 0x1e, 0x0 },
        { 155973453315377, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155973453318456, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155973453320521, 0x100000725, 410, 10, 0, 0, 0x100000200000000, 0x0, 0x0 },
        { 155973453321330, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155973453321922, 0x100000725, 410, 10, 0, 0, 0x300000200000000, 0x0, 0x0 },
        { 155973453322483, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155973455203862, 0x100000725, 3627, 81, 83, 0, 0x1, 0x3, 0x0 },
        { 155973455247904, 0x100000725, 3651, 82, 83, 0, 0x0, 0x3, 0x0 },
        { 155973455277274, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155973455277729, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x200020000000000 },
        { 155973455279540, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155973455279830, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155973455281255, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155973455281517, 0x100000725, 401, 9, 47, 64, 0x1, 0x1e, 0x0 },
        { 155973455281850, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155973455284090, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155973455286144, 0x100000725, 410, 10, 0, 0, 0x100000200000000, 0x0, 0x0 },
        { 155973455286797, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155973455287320, 0x100000725, 410, 10, 0, 0, 0x303000100000001, 0x0, 0x0 },
        { 155973455289193, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155973455290910, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155973455293314, 0x100000725, 500, 40, 60, 49, 0x2, 0x1, 0x100000000 },
        { 155973458933713, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000600, 0x0 },
        { 155973459824548, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0xc000e0000, 0x0 },
        { 155973703182832, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155973703183873, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155973711757154, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000102, 0x0 },
        { 155973715203993, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x1000e000c, 0x0 },
        { 155973740939996, 0x100000725, 3627, 81, 83, 0, 0x1, 0x1, 0x0 },
        { 155973741023656, 0x100000725, 3651, 82, 83, 0, 0x0, 0x1, 0x0 },
        { 155973741066454, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155973741067155, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x20102000000041e },
        { 155973741069272, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155973741069713, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155973741071298, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155973741071744, 0x100000725, 401, 9, 47, 64, 0x1, 0x1e, 0x0 },
        { 155973741072203, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155973741075186, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155973741077424, 0x100000725, 410, 10, 0, 0, 0x103000100000001, 0x0, 0x0 },
        { 155973741086560, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155973741088997, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155973741090309, 0x100000725, 410, 10, 0, 0, 0x303000100000001, 0x0, 0x0 },
        { 155973741093169, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155973741095727, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155973991788858, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155973991789566, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155973991796173, 0x100000725, 155, 42, 53, 0, 0x0, 0x8, 0x0 },
        { 155974026669275, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155974026677025, 0x100000725, 155, 42, 53, 0, 0x0, 0x2, 0x0 },
        { 155974027106606, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155974027107519, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x20102000000041e },
        { 155974027109668, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155974027110107, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155974027111677, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155974027112081, 0x100000725, 401, 9, 47, 64, 0x9, 0x16, 0x0 },
        { 155974027112554, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155974027115656, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155974027118006, 0x100000725, 410, 10, 0, 0, 0x103000100000001, 0x0, 0x0 },
        { 155974027125789, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155974027127703, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155974027128501, 0x100000725, 410, 10, 0, 0, 0x303000200000001, 0x0, 0x0 },
        { 155974027130272, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155974027131939, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155977032233159, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155977032264533, 0x100000725, 155, 42, 53, 0, 0x0, 0x2, 0x0 },
        { 155977032394561, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155977032395537, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x20102000000041e },
        { 155977032398573, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155977032399185, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155977032501530, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155977032502296, 0x100000725, 401, 9, 47, 64, 0xb, 0x14, 0x0 },
        { 155977032502867, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155977032507006, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155977032510977, 0x100000725, 410, 10, 0, 0, 0x103000200000001, 0x0, 0x0 },
        { 155977032524526, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155977032527270, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155977032528560, 0x100000725, 410, 10, 0, 0, 0x303000200000001, 0x0, 0x0 },
        { 155977032531154, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155977032533547, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155977032556431, 0x100000725, 3993, 81, 83, 0, 0x0, 0x1, 0x0 },
        { 155977032911412, 0x100000725, 3651, 82, 83, 0, 0x0, 0x1, 0x0 },
        { 155977032941561, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155977032943670, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x20102000000041e },
        { 155977032946615, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155977032947123, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155977032949573, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155977032950096, 0x100000725, 401, 9, 47, 64, 0xb, 0x14, 0x0 },
        { 155977032950576, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155977032953627, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155977032956680, 0x100000725, 410, 10, 0, 0, 0x107000300000001, 0x0, 0x0 },
        { 155977032968606, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155977032971180, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155977032972397, 0x100000725, 410, 10, 0, 0, 0x303000200000001, 0x0, 0x0 },
        { 155977032975041, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155977032977276, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155977032979125, 0x0, 228, 1, 43, 0, 0x1, 0xfa, 0x0 },
        { 155977032984681, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155977033035473, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155977033781354, 0x100000725, 5241, 76, 46, 0, 0x1000001, 0x400000000, 0x0 },
        { 155977033781669, 0x100000725, 500, 40, 60, 49, 0x4, 0x1, 0x100000001 },
        { 155977034594978, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x100000000, 0x0 },
        { 155977034597854, 0x100000725, 1986, 35, 50, 69, 0x4, 0x200000002, 0x1 },
        { 155977034940966, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x200000100, 0x0 },
        { 155977036282555, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x200000202, 0x0 },
        { 155977036286054, 0x100000725, 2256, 12, 46, 56, 0x0, 0x400000000, 0x14000200007700 },
        { 155977282398356, 0x100000725, 500, 40, 60, 49, 0x4, 0x1, 0x100000001 },
        { 155977283422642, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155977283423304, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155978302141355, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155978302897064, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x100000000, 0x0 },
        { 155978302899867, 0x100000725, 1986, 35, 50, 69, 0x4, 0x200000002, 0x1 },
        { 155978302927927, 0x100000725, 155, 42, 53, 0, 0x0, 0x1, 0x0 },
        { 155978303735670, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x100000000, 0x0 },
        { 155978303737514, 0x100000725, 1986, 35, 50, 69, 0x4, 0x200000002, 0x1 },
        { 155978304578476, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x600000000, 0x0 },
        { 155978305364879, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x10000000e, 0x0 },
        { 155978306106187, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x400000020, 0x0 },
        { 155978306967205, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x1000000060, 0x0 },
        { 155978307692525, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x100000090, 0x0 },
        { 155978308531592, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0x1000002200, 0x0 },
        { 155978309353406, 0x100000725, 2026, 2, 44, 62, 0x400000000, 0xc00000500, 0x0 },
        { 155978310696510, 0x100000725, 5399, 5, 46, 0, 0x1, 0x400000000, 0x0 },
        { 155978310835320, 0x100000725, 613, 36, 59, 70, 0x4, 0x0, 0x0 },
        { 155978310904391, 0x100000725, 500, 40, 60, 49, 0x2, 0x1, 0x100000001 },
        { 155978310974807, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155978383116348, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155978394541944, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155978405292841, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155978417288943, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155978428243079, 0x100000725, 1986, 35, 50, 69, 0x2, 0x100000001, 0x1 },
        { 155978428323909, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155978439678040, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155978451125333, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155978464332503, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155978475286491, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000000, 0x100000000 },
        { 155978486412539, 0x100000725, 1986, 35, 50, 69, 0x2, 0x100000001, 0x1 },
        { 155979034722296, 0x100000725, 613, 36, 59, 70, 0x2, 0x0, 0x1 },
        { 155979034723012, 0x0, 228, 1, 43, 0, 0x1, 0xfa, 0x0 },
        { 155979034761649, 0x100000725, 500, 40, 60, 49, 0x2, 0x1, 0x100000001 },
        { 155979171687829, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155979171698613, 0x100000725, 155, 42, 53, 0, 0x0, 0x1, 0x0 },
        { 155979423605198, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155979423606212, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155979673706643, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155979673707282, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155979924046237, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155979924047270, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155980178032821, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155980178033559, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155980428671188, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155980428671857, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155980428678860, 0x100000725, 155, 42, 53, 0, 0x0, 0x8, 0x0 },
        { 155981775030736, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155981775037542, 0x100000725, 155, 42, 53, 0, 0x0, 0x2, 0x0 },
        { 155981776319697, 0x0, 228, 1, 43, 0, 0x1, 0xfa, 0x0 },
        { 155981776325168, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155981776326634, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x100010000000000 },
        { 155981776327002, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155981776327375, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155981776329616, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155981776330074, 0x100000725, 401, 9, 47, 64, 0x9, 0x16, 0x0 },
        { 155981776331401, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155981776334785, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155981776337074, 0x100000725, 410, 10, 0, 0, 0x100000200000000, 0x0, 0x0 },
        { 155981776337930, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155981776338503, 0x100000725, 410, 10, 0, 0, 0x303000200000001, 0x0, 0x0 },
        { 155981776340685, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155981776342472, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155981777876810, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000600, 0x0 },
        { 155981782866629, 0x100000725, 3627, 81, 83, 0, 0x1, 0x1, 0x0 },
        { 155981782975784, 0x100000725, 3651, 82, 83, 0, 0x0, 0x1, 0x0 },
        { 155981783042875, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155981783043805, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x100010000000000 },
        { 155981783044150, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155981783044487, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155981783046586, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155981783047117, 0x100000725, 401, 9, 47, 64, 0x9, 0x16, 0x0 },
        { 155981783047574, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155981783050539, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155981783065796, 0x100000725, 410, 10, 0, 0, 0x103000100000001, 0x0, 0x0 },
        { 155981783071245, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x0 },
        { 155981783081024, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155981783082251, 0x100000725, 410, 10, 0, 0, 0x303000200000001, 0x0, 0x0 },
        { 155981783085035, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155981783087506, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155981783104670, 0x100000725, 504, 40, 60, 49, 0x1, 0x0, 0x10000 },
        { 155981783104800, 0x100000725, 504, 40, 60, 49, 0x2, 0x0, 0x10000 },
        { 155981783104880, 0x100000725, 504, 40, 60, 49, 0x3, 0x0, 0x0 },
        { 155981783104978, 0x100000725, 504, 40, 60, 49, 0x4, 0x0, 0x10001 },
        { 155981783105043, 0x100000725, 504, 40, 60, 49, 0x5, 0x0, 0x0 },
        { 155981783127892, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155981783128511, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155982035986465, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155982035997607, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155982286207765, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155982286208461, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155982538490458, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155982538491229, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155982789739232, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155982789739884, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155983019126311, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155983019137550, 0x100000725, 155, 42, 53, 0, 0x0, 0x2, 0x0 },
        { 155983019226867, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155983019227628, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x100010000000000 },
        { 155983019228041, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155983019228405, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155983019230569, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155983019231040, 0x100000725, 401, 9, 47, 64, 0xb, 0x14, 0x0 },
        { 155983019231443, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155983019234790, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155983019236979, 0x100000725, 410, 10, 0, 0, 0x103000200000001, 0x0, 0x0 },
        { 155983019241982, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x0 },
        { 155983019243853, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155983019244746, 0x100000725, 410, 10, 0, 0, 0x303000200000001, 0x0, 0x0 },
        { 155983019246845, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155983019248563, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155983019264755, 0x100000725, 3993, 81, 83, 0, 0x0, 0x1, 0x0 },
        { 155983019488860, 0x100000725, 3651, 82, 83, 0, 0x0, 0x1, 0x0 },
        { 155983019523099, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155983019523802, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x100010000000000 },
        { 155983019524128, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155983019524432, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155983019526549, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155983019526896, 0x100000725, 401, 9, 47, 64, 0xb, 0x14, 0x0 },
        { 155983019527289, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155983019529564, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155983019531799, 0x100000725, 410, 10, 0, 0, 0x107000300000001, 0x0, 0x0 },
        { 155983019540036, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x0 },
        { 155983019541857, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155983019542686, 0x100000725, 410, 10, 0, 0, 0x303000200000001, 0x0, 0x0 },
        { 155983019544719, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155983019546445, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155983019547805, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155983019580283, 0x0, 247, 4, 45, 0, 0x1, 0x1, 0x0 },
        { 155983019587282, 0x100000725, 504, 40, 60, 49, 0x1, 0x0, 0x10000 },
        { 155983019587402, 0x100000725, 504, 40, 60, 49, 0x2, 0x0, 0x10000 },
        { 155983019587456, 0x100000725, 504, 40, 60, 49, 0x3, 0x0, 0x0 },
        { 155983019587553, 0x100000725, 504, 40, 60, 49, 0x4, 0x0, 0x10001 },
        { 155983019587603, 0x100000725, 504, 40, 60, 49, 0x5, 0x0, 0x0 },
        { 155983019588987, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155983271598376, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155983271599036, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155983271610400, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155983523987983, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155983523988742, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155983523995927, 0x100000725, 155, 42, 53, 0, 0x0, 0x8, 0x0 },
        { 155983524030577, 0x100000725, 504, 40, 60, 49, 0x1, 0x0, 0x10000 },
        { 155983524030716, 0x100000725, 504, 40, 60, 49, 0x2, 0x0, 0x10000 },
        { 155983524030836, 0x100000725, 504, 40, 60, 49, 0x3, 0x0, 0x0 },
        { 155983524030987, 0x100000725, 504, 40, 60, 49, 0x4, 0x0, 0x10001 },
        { 155983524031103, 0x100000725, 504, 40, 60, 49, 0x5, 0x0, 0x0 },
        { 155983524031442, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155987897316783, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155987897324435, 0x100000725, 155, 42, 53, 0, 0x0, 0x2, 0x0 },
        { 155987904388419, 0x0, 228, 1, 43, 0, 0x1, 0xfa, 0x0 },
        { 155987904410282, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155987904414944, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155987904415571, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x100010000000000 },
        { 155987904415976, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155987904416371, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155987904447907, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155987904449212, 0x100000725, 401, 9, 47, 64, 0x9, 0x16, 0x0 },
        { 155987904449661, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155987904453630, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155987904455997, 0x100000725, 410, 10, 0, 0, 0x100000200000000, 0x0, 0x0 },
        { 155987904456987, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155987904457676, 0x100000725, 410, 10, 0, 0, 0x303000200000001, 0x0, 0x0 },
        { 155987904460271, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155987904462241, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155987904471918, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155988155054702, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155988155055385, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155988155065981, 0x100000725, 500, 40, 60, 49, 0x2, 0x1, 0x100000000 },
        { 155988203455313, 0x100000725, 2026, 2, 44, 62, 0x200000000, 0x100000600, 0x0 },
        { 155988204805092, 0x100000725, 3627, 81, 83, 0, 0x1, 0x1, 0x0 },
        { 155988204857837, 0x100000725, 3651, 82, 83, 0, 0x0, 0x1, 0x0 },
        { 155988204897179, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155988204897944, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x100010000000000 },
        { 155988204898321, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155988204898703, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155988204901101, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155988204901610, 0x100000725, 401, 9, 47, 64, 0x9, 0x16, 0x0 },
        { 155988204902091, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155988204905025, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155988204907459, 0x100000725, 410, 10, 0, 0, 0x103000100000001, 0x0, 0x0 },
        { 155988204912287, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155988204914365, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155988204915251, 0x100000725, 410, 10, 0, 0, 0x303000200000001, 0x0, 0x0 },
        { 155988204917604, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155988204919499, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155988204921858, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155988405232464, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155988405233208, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155988405244827, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155988655526138, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155988655526819, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155988655539000, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155988905906199, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155988905906872, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155988905918315, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155989126472683, 0x100000725, 1621, 14, 53, 0, 0x0, 0x2, 0x0 },
        { 155989126484031, 0x100000725, 155, 42, 53, 0, 0x0, 0x2, 0x0 },
        { 155989126601784, 0x100000725, 429, 11, 48, 65, 0x0, 0x100000001, 0x100010000000000 },
        { 155989126602996, 0x100000725, 429, 11, 48, 65, 0x1, 0x200000001, 0x100010000000000 },
        { 155989126603574, 0x100000725, 429, 11, 48, 65, 0x2, 0x300000000, 0x0 },
        { 155989126604137, 0x100000725, 429, 11, 48, 65, 0x3, 0x400000001, 0x201020000000214 },
        { 155989126607739, 0x100000725, 429, 11, 48, 65, 0x4, 0x500000000, 0x0 },
        { 155989126608406, 0x100000725, 401, 9, 47, 64, 0xb, 0x14, 0x0 },
        { 155989126609056, 0x100000725, 410, 10, 0, 0, 0x1000200000001, 0x0, 0x0 },
        { 155989126613928, 0x100000725, 307, 8, 46, 63, 0x0, 0x100000000, 0x0 },
        { 155989126617847, 0x100000725, 410, 10, 0, 0, 0x103000200000001, 0x0, 0x0 },
        { 155989126625649, 0x100000725, 307, 8, 46, 63, 0x0, 0x200000000, 0x100000000000001 },
        { 155989126628983, 0x100000725, 410, 10, 0, 0, 0x200000000000000, 0x0, 0x0 },
        { 155989126630447, 0x100000725, 410, 10, 0, 0, 0x303000200000001, 0x0, 0x0 },
        { 155989126633793, 0x100000725, 307, 8, 46, 63, 0x0, 0x400000000, 0x0 },
        { 155989126636611, 0x100000725, 410, 10, 0, 0, 0x400000000000000, 0x0, 0x0 },
        { 155989126652433, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155989156721595, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155989156722610, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155989156737678, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155989407040321, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155989407041040, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155989407055017, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 155989657241857, 0x0, 46, 39, 0, 0, 0x0, 0x0, 0x0 },
        { 155989657242668, 0x100000725, 155, 42, 53, 0, 0x0, 0x7, 0x0 },
        { 155989657249868, 0x100000725, 155, 42, 53, 0, 0x0, 0x8, 0x0 },
        { 155989657265088, 0x100000725, 504, 40, 60, 49, 0x1, 0x0, 0x10000 },
        { 155989657265237, 0x100000725, 504, 40, 60, 49, 0x2, 0x0, 0x10000 },
        { 155989657265349, 0x100000725, 504, 40, 60, 49, 0x3, 0x0, 0x0 },
        { 155989657265514, 0x100000725, 504, 40, 60, 49, 0x4, 0x0, 0x10001 },
        { 155989657265636, 0x100000725, 504, 40, 60, 49, 0x5, 0x0, 0x0 },
        { 155989657266026, 0x100000725, 336, 15, 54, 0, 0x0, 0x0, 0x0 },
        { 156863900749562, 0x0, 662, 84, 84, 0, 0x0, 0x0, 0x0 },
        { 157217904943061, 0x0, 662, 84, 84, 0, 0x20, 0x20, 0x0 },
        { 157228186709691, 0x0, 662, 84, 84, 0, 0x0, 0x0, 0x0 },
        { 158076110022735, 0x0, 662, 84, 84, 0, 0x20, 0x20, 0x0 },
        { 158086393543298, 0x0, 662, 84, 84, 0, 0x0, 0x0, 0x0 },
        { 158911385581033, 0x0, 662, 84, 84, 0, 0x20, 0x20, 0x0 },
        { 158921670861759, 0x0, 662, 84, 84, 0, 0x0, 0x0, 0x0 },
        { 159045135273614, 0x0, 662, 84, 84, 0, 0x20, 0x20, 0x0 },
        { 159055417760767, 0x0, 662, 84, 84, 0, 0x0, 0x0, 0x0 },
        { 159632304965772, 0x0, 662, 84, 84, 0, 0x20, 0x20, 0x0 },
        { 159642587653909, 0x0, 662, 84, 84, 0, 0x0, 0x0, 0x0 },
        { 159651660611573, 0x0, 662, 84, 84, 0, 0x1, 0x1, 0x0 },
        { 160879384541386, 0x0, 662, 84, 84, 0, 0x11, 0x1, 0x0 },
        { 160884388587478, 0x0, 662, 84, 84, 0, 0x1, 0x1, 0x0 },
    }
};
### End: displaypolicyd (took 0.009 sec) #####################################

### Start: Devices ###########################################################
### Start: AGDC[1] 0x10000067a ###############################################
IOService:/IOResources/AppleGPUWrangler
Vendor: Apple [0000106b]: AppleGPUWrangler [8 10000] (0)
### End: AGDC[1] 0x10000067a (took 0.002 sec) ################################

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

### Start: AGDC[3] 0x100000666 ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/AMD9500ControllerWrangler
Vendor: AMD [00001002]: GPURoot [7 30000] (0)
### End: AGDC[3] 0x100000666 (took 0.006 sec) ################################

### Start: AGDC[4] 0x1000006f2 ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl
Vendor: AppleIntelFramebufferController [0000106b]: IntegratedGPU [1 10000] (0)
### End: AGDC[4] 0x1000006f2 (took 0.005 sec) ################################

### Start: AGDC[5] 0x100000723 ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/AtiDeviceControl
See 0x100000725
### End: AGDC[5] 0x100000723 (took 0.006 sec) ################################

### Start: AGDC[6] 0x100000725 ###############################################
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPP/GFX0@0/AtiDeviceControl/AppleGraphicsDevicePolicy/AGDPClientControl
Vendor: AMD [00001002]: DiscreteGPU [2 30000] (0)
--BEGIN Device Dump--
Name	AMD9500Controller
Initialized	Yes
Enabled	Yes
Aperature Mode	1
WSRV: Support	Supported
IOP: Support	Supported
IOP: Activity	Active
AGDC: Support	Supported
AGDC: Registered	Registered
Primary Display	0
Connection Seed	1
Memory (Video)	4294967296 Bytes ( 4096 MB )
Memory (Aperture)	268435456 Bytes ( 256 MB )
Memory (Reserved)	3145728 Bytes ( 3 MB )
Memory (Reg Aperture)	262144 Bytes ( 256 KB )
Device Info	device: 67ef, A11
Current V.Clk 0	540000 kHz
Current V.Clk 1	323999 kHz
Current Memory Clock	1468 MHz
Current Engine Clock	319 MHz
MASK: Supported Connect Flags	0x100
MASK: Disabled Connectors	0
MASK: Disabled Connections	0
MASK: Connectors Changed	0
MASK: Drivers Pending Changes	0
MASK: DriversPendingASetMode	0
MASK: ActiveInternalConnector	0x1
Temperature	63 C
Num Framebuffers	5
Mirrored	No
Registered Displays	3
Registered Displays (DP)	3
Registered Displays (DIG)	3 - Map: 0x7
Registered VRAM	71761920 Bytes ( 68 MB )
Power Play Ceiling	0
Power Play Floor	0
Power Play Forced	0
Power Play Supported	Yes
Power Play Thermal	No
Chip Device Id	0x67ef
Chip ATI Rev	0x1
Boot S.Clk	2139 MHz
Boot M.Clk	3000 MHz
Min D.Clk 0	0 MHz
Min D.Clk 1	0 MHz
Spread Spectrum	sclk:0 (per cent)
Cursor Bytes	0xc0000
Apple RGB MUX	No
Apple MUX State	0 (0:CRTC, 1:TV)
Project Name	Palena
Power Play	DICT	8
Power Levels	min:0, max:16, count:16
Current Power Level	hw:0, sw:0
TDP Table	min:0, max:40, count:16
TDP HW Limit	40
Initialized	YES
Is Asleep	NO
ForceMaxClocks	NO
AllDisplaysInSync	NO
ASIC Info	DICT	11
Famild ID	130
Device ID	0x67ef
ATI Revision Number	1
Emulated Revision Number	90
PCI Revision ID	227
PCI Address	1:0:0
FB Base	0
FB Top	0xffffffff
MEM SIZE: Local Framebuffer	4096 MB
MEM SIZE: Aperture	256 MB
MEM SIZE: Register Aperture	256 KB
Shared Surface Info	DICT	5
Shared Surface @ 0	DICT	8
Mode	0
Master Index	0
Controller Map	0
Controller Num	0
Rotation Flags	0
Number of Tiles	0 x 0
Tile2Crtc Map	0:0, 1:0, 2:0, 3:0, 4:0, 5:0.
Crtc2Tile Map	0:0, 1:0, 2:0, 3:0, 4:0, 5:0.
Shared Surface @ 1	DICT	8
Mode	0
Master Index	0
Controller Map	0
Controller Num	0
Rotation Flags	0
Number of Tiles	0 x 0
Tile2Crtc Map	0:0, 1:0, 2:0, 3:0, 4:0, 5:0.
Crtc2Tile Map	0:0, 1:0, 2:0, 3:0, 4:0, 5:0.
Shared Surface @ 2	DICT	8
Mode	0
Master Index	0
Controller Map	0
Controller Num	0
Rotation Flags	0
Number of Tiles	0 x 0
Tile2Crtc Map	0:0, 1:0, 2:0, 3:0, 4:0, 5:0.
Crtc2Tile Map	0:0, 1:0, 2:0, 3:0, 4:0, 5:0.
Shared Surface @ 3	DICT	8
Mode	0
Master Index	0
Controller Map	0
Controller Num	0
Rotation Flags	0
Number of Tiles	0 x 0
Tile2Crtc Map	0:0, 1:0, 2:0, 3:0, 4:0, 5:0.
Crtc2Tile Map	0:0, 1:0, 2:0, 3:0, 4:0, 5:0.
Shared Surface @ 4	DICT	8
Mode	0
Master Index	0
Controller Map	0
Controller Num	0
Rotation Flags	0
Number of Tiles	0 x 0
Tile2Crtc Map	0:0, 1:0, 2:0, 3:0, 4:0, 5:0.
Crtc2Tile Map	0:0, 1:0, 2:0, 3:0, 4:0, 5:0.
Interrupts	DICT	18
Interrupt Port0	DICT	 30
Interrupt Name	V.Blank
Index	0
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vblx" --> 0x76626c78
Interrupt Name	V.Sync
Index	0
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	No
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vsnc" --> 0x76736e63
Interrupt Name	V.Update
Index	0
Ignore?	No
On By Default?	Yes
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	Yes
Enable Reg Readback	No
Interrupt Type	"vbl " --> 0x76626c20
Interrupt Port1	DICT	 30
Interrupt Name	V.Blank
Index	1
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vblx" --> 0x76626c78
Interrupt Name	V.Sync
Index	1
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	No
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vsnc" --> 0x76736e63
Interrupt Name	V.Update
Index	1
Ignore?	No
On By Default?	Yes
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	Yes
Enable Reg Readback	No
Interrupt Type	"vbl " --> 0x76626c20
Interrupt Port2	DICT	 30
Interrupt Name	V.Blank
Index	2
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vblx" --> 0x76626c78
Interrupt Name	V.Sync
Index	2
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	No
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vsnc" --> 0x76736e63
Interrupt Name	V.Update
Index	2
Ignore?	No
On By Default?	Yes
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	Yes
Enable Reg Readback	No
Interrupt Type	"vbl " --> 0x76626c20
Interrupt Port3	DICT	 30
Interrupt Name	V.Blank
Index	3
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vblx" --> 0x76626c78
Interrupt Name	V.Sync
Index	3
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	No
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vsnc" --> 0x76736e63
Interrupt Name	V.Update
Index	3
Ignore?	No
On By Default?	Yes
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	Yes
Enable Reg Readback	No
Interrupt Type	"vbl " --> 0x76626c20
Interrupt Port4	DICT	 30
Interrupt Name	V.Blank
Index	4
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vblx" --> 0x76626c78
Interrupt Name	V.Sync
Index	4
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	No
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vsnc" --> 0x76736e63
Interrupt Name	V.Update
Index	4
Ignore?	No
On By Default?	Yes
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	Yes
Enable Reg Readback	No
Interrupt Type	"vbl " --> 0x76626c20
Interrupt Port5	DICT	 30
Interrupt Name	V.Blank
Index	5
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	No
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vblx" --> 0x76626c78
Interrupt Name	V.Sync
Index	5
Ignore?	No
On By Default?	No
Should Notify Callback?	Yes
HW Enabled?	No
Pulse-Based?	Yes
Ack Is Write Only	No
Enable Reg Readback	Yes
Interrupt Type	"vsnc" --> 0x76736e63
Interrupt Name	V.Update
Index	5
Ignore?	No
On By Default?	Yes
Should Notify Callback?	Yes
HW Enabled?	Yes
Pulse-Based?	Yes
Ack Is Write Only	Yes
Enable Reg Readback	No
Interrupt Type	"vbl " --> 0x76626c20
Line Buffers	DICT	5
LineBuffers @ 0	DICT	10
LB Index	0
LB Offset	0 (0)
LB Size	24595 (0x6013)
Using 100 %	Yes
Max Number of Lines	8
Current LB Depth	4 (30 bpp)
Number of Entries	5124
Line Buffer Capabilities	0xf
HW State @ 0	DICT	5
Source Window	3360 x 2100
Destination Window	2880 x 1800
Scaling Taps	1 x 1
Line Buffer Depth	4 - 30 bpp
Interlaced	No
SW State @ 0	DICT	5
Source Window	3360 x 2100
Destination Window	2880 x 1800
Scaling Taps	1 x 1
Line Buffer Depth	4 - 30 bpp
Interlaced	No
LineBuffers @ 1	DICT	10
LB Index	1
LB Offset	2048 (0x800)
LB Size	24595 (0x6013)
Using 100 %	Yes
Max Number of Lines	9
Current LB Depth	4 (30 bpp)
Number of Entries	5124
Line Buffer Capabilities	0xf
HW State @ 1	DICT	5
Source Window	2560 x 1440
Destination Window	2560 x 1440
Scaling Taps	1 x 1
Line Buffer Depth	4 - 30 bpp
Interlaced	No
SW State @ 1	DICT	5
Source Window	2560 x 1440
Destination Window	2560 x 1440
Scaling Taps	1 x 1
Line Buffer Depth	2 - 24 bpp
Interlaced	No
LineBuffers @ 2	DICT	9
LB Index	2
LB Offset	4096 (0x1000)
LB Size	24595 (0x6013)
Using 100 %	Yes
Current LB Depth	4 (30 bpp)
Number of Entries	5124
Line Buffer Capabilities	0xf
HW State @ 2	DICT	5
Source Window	0 x 0
Destination Window	0 x 0
Scaling Taps	0 x 0
Line Buffer Depth	4 - 30 bpp
Interlaced	No
SW State @ 2	DICT	5
Source Window	0 x 0
Destination Window	0 x 0
Scaling Taps	0 x 0
Line Buffer Depth	4 - 30 bpp
Interlaced	No
LineBuffers @ 3	DICT	10
LB Index	3
LB Offset	38912 (0x9800)
LB Size	24595 (0x6013)
Using 100 %	Yes
Max Number of Lines	9
Current LB Depth	4 (30 bpp)
Number of Entries	5124
Line Buffer Capabilities	0xf
HW State @ 3	DICT	5
Source Window	2560 x 1440
Destination Window	2560 x 1440
Scaling Taps	1 x 1
Line Buffer Depth	4 - 30 bpp
Interlaced	No
SW State @ 3	DICT	5
Source Window	2560 x 1440
Destination Window	2560 x 1440
Scaling Taps	1 x 1
Line Buffer Depth	4 - 30 bpp
Interlaced	No
LineBuffers @ 4	DICT	9
LB Index	4
LB Offset	40960 (0xa000)
LB Size	24595 (0x6013)
Using 100 %	Yes
Current LB Depth	4 (30 bpp)
Number of Entries	5124
Line Buffer Capabilities	0xf
HW State @ 4	DICT	5
Source Window	0 x 0
Destination Window	0 x 0
Scaling Taps	0 x 0
Line Buffer Depth	4 - 30 bpp
Interlaced	No
SW State @ 4	DICT	5
Source Window	0 x 0
Destination Window	0 x 0
Scaling Taps	0 x 0
Line Buffer Depth	4 - 30 bpp
Interlaced	No
Connector Assigner	DICT	13
Connector@0	DICT	38
Is Online	Yes
Active Connection Type	DP
Connected Connection Type	DP
Current Panel Type	DIGITAL
Supported Connection	0x100
Use hw i2c	No
Link Sense Line	DDC 1
Link UNIPHY	UNIPHY B
Link DIG Number	DIG B
Link HPD Num	HPD 1
Type	BUILT IN
Active CRTCs	0: B
Connected drivers	0: 0
Connected CRTCs	0:0
Required ScanOuts	0:1 Total:1.
Change Event	 -1
Priority Index	0
PLL Index	6
Has EDID	Yes
Is EMC Display	No
Use Internal	Yes
Use Internal EDID Caching	Yes
Use Single Link Only	Yes
Use RGB On YUV	No
Use Backlight	Yes
Use Clamshell	Yes
Use Hdcp	Yes
Supports DP MST	No
Use Apple RGB MUX	No
Use DAC Auto Calibration	No
Forced to CRTC Number	CRTC 1
Connector Features	0x8010539
Current DP Train Params 0	DICT	17
DisplayPort Version	11
Link Lanes	4 {4,4}
Link Rate (Mbps)	3240 {3240,3240}
Link Bits	30 {18,30}
Voltage Swing (Level)	{0,0,0,0}
Pre-Emphasis (Level)	{0,0,0,0}
Spread	Enabled
Enhanced Framing	Enabled
Scrambler	Enabled
MST	Disabled
No Mst	YES
Force Training Times	YES
Force Voltage	YES
Force Pre-Emphasis	YES
Force Downspread	YES
Force Scrambler	YES
Force Framing	YES
Target DP Train Params 0	DICT	17
DisplayPort Version	11
Link Lanes	4 {4,4}
Link Rate (Mbps)	3240 {3240,3240}
Link Bits	30 {18,30}
Voltage Swing (Level)	{255,255,255,255}
Pre-Emphasis (Level)	{255,255,255,255}
Spread	Enabled
Enhanced Framing	Enabled
Scrambler	Enabled
MST	Disabled
No Mst	YES
Force Training Times	YES
Force Voltage	YES
Force Pre-Emphasis	YES
Force Downspread	YES
Force Scrambler	YES
Force Framing	YES
Active Info 00 0	DICT	16
Connected	Yes
Dual Link	No
Coherent	No
MST	No
Connection Type	DP
Pixel Clock	328920 kHz
Lane Count	4
Link Clock	324000 kHz
Link Bits	30 bpc
CRTC Index	0
PLL Index	6
Backlight Freq	0 Hz
Link Format	RGB
DIG FE	B
Number of Devices	1
Timing	DICT	21
Display Mode	80004003
Refresh Rate (Calculated)	60 Hz
Refresh Rate (Stored)	0.0 Hz
Window (Active)	2880 x 1800
Window (Scaled)	3360 x 2100
Scaled Inset	0 x 0
Pixel Clock	328920000 Hz
Scaler Flags	0
Signal Config	0x2
Blanking	80 x 52
Border {left,right}	{0, 0}
Border {top,bottom}	{0, 0}
Sync Offset (h, v)	8 x 38
Sync Pulse Width (h, v)	32, 8
Sync Config (h, v)	+ x -
Num Links	2
VB Extension	0
Pixel Encoding	1 (RGB444)
Bits Per Color Component	4 (10 bpc)
Colorimetry	1 (RGB)
Dynamic Range	1 (SDR)
Connector@1	DICT	39
Is Online	Yes
Active Connection Type	DP
Connected Connection Type	DP
Current Panel Type	DIGITAL
Supported Connection	0x100
Use hw i2c	No
Link Sense Line	DDC 2
Link UNIPHY	UNIPHY A
Link DIG Number	DIG A
Link HPD Num	HPD 2
Type	DISPLAY PORT
Active CRTCs	0: A
Connected drivers	0: 1 1: 2
Connected CRTCs	0:1 1:2
Required ScanOuts	0:2 Total:2.
Change Event	 -1
Priority Index	1
PLL Index	6
Has EDID	Yes
Is EMC Display	No
Use Internal	No
Use Internal EDID Caching	No
Use Single Link Only	Yes
Use RGB On YUV	No
Use Backlight	No
Use Clamshell	No
Use Hdcp	Yes
Supports DP MST	Yes
Use Apple RGB MUX	No
Use DAC Auto Calibration	No
Forced to CRTC Number	CRTC 2
Forced to DIG_FE for MST Device	DIG_FE D
Connector Features	0x3043020100
Current DP Train Params 1	DICT	10
DisplayPort Version	14
Link Lanes	2 {1,4}
Link Rate (Mbps)	5400 {1620,8100}
Link Bits	30 {18,30}
Voltage Swing (Level)	{2,2,0,0}
Pre-Emphasis (Level)	{0,0,0,0}
Spread	Enabled
Enhanced Framing	Enabled
Scrambler	Enabled
MST	Disabled
Target DP Train Params 1	DICT	10
DisplayPort Version	14
Link Lanes	2 {1,4}
Link Rate (Mbps)	5400 {1620,8100}
Link Bits	30 {18,30}
Voltage Swing (Level)	{0,0,0,0}
Pre-Emphasis (Level)	{0,0,0,0}
Spread	Enabled
Enhanced Framing	Enabled
Scrambler	Enabled
MST	Disabled
Active Info 00 1	DICT	16
Connected	Yes
Dual Link	No
Coherent	No
MST	No
Connection Type	DP
Pixel Clock	241500 kHz
Lane Count	2
Link Clock	540000 kHz
Link Bits	30 bpc
CRTC Index	1
PLL Index	6
Backlight Freq	0 Hz
Link Format	RGB
DIG FE	A
Number of Devices	1
Timing	DICT	21
Display Mode	80005035
Refresh Rate (Calculated)	60 Hz
Refresh Rate (Stored)	0.0 Hz
Window (Active)	2560 x 1440
Window (Scaled)	0 x 0
Scaled Inset	0 x 0
Pixel Clock	241500000 Hz
Scaler Flags	0
Signal Config	0x2
Blanking	160 x 41
Border {left,right}	{0, 0}
Border {top,bottom}	{0, 0}
Sync Offset (h, v)	48 x 3
Sync Pulse Width (h, v)	32, 5
Sync Config (h, v)	+ x -
Num Links	2
VB Extension	0
Pixel Encoding	1 (RGB444)
Bits Per Color Component	4 (10 bpc)
Colorimetry	1 (RGB)
Dynamic Range	2 (HDR10)
Connector@3	DICT	39
Is Online	Yes
Active Connection Type	DP
Connected Connection Type	DP
Current Panel Type	DIGITAL
Supported Connection	0x100
Use hw i2c	No
Link Sense Line	DDC 4
Link UNIPHY	UNIPHY C
Link DIG Number	DIG C
Link HPD Num	HPD 4
Type	DISPLAY PORT
Active CRTCs	0: C
Connected drivers	0: 3
Connected CRTCs	0:3
Required ScanOuts	0:1 Total:1.
Change Event	 -1
Priority Index	2
PLL Index	6
Has EDID	Yes
Is EMC Display	No
Use Internal	No
Use Internal EDID Caching	No
Use Single Link Only	Yes
Use RGB On YUV	No
Use Backlight	No
Use Clamshell	No
Use Hdcp	Yes
Supports DP MST	Yes
Use Apple RGB MUX	No
Use DAC Auto Calibration	No
Forced to CRTC Number	CRTC 4
Forced to DIG_FE for MST Device	DIG_FE E
Connector Features	0x5053040100
Current DP Train Params 3	DICT	15
DisplayPort Version	12
Link Lanes	2 {2,2}
Link Rate (Mbps)	5400 {5400,5400}
Link Bits	24 {24,24}
Voltage Swing (Level)	{2,2,0,0}
Pre-Emphasis (Level)	{0,0,0,0}
Spread	Enabled
Enhanced Framing	Enabled
Scrambler	Enabled
MST	Disabled
No Mst	YES
Force Training Times	YES
Force Framing	YES
Force Bit-Depth Range	YES
Force EQ Training Pattern	YES
Target DP Train Params 3	DICT	15
DisplayPort Version	12
Link Lanes	2 {2,2}
Link Rate (Mbps)	5400 {5400,5400}
Link Bits	24 {24,24}
Voltage Swing (Level)	{0,0,0,0}
Pre-Emphasis (Level)	{0,0,0,0}
Spread	Enabled
Enhanced Framing	Enabled
Scrambler	Enabled
MST	Disabled
No Mst	YES
Force Training Times	YES
Force Framing	YES
Force Bit-Depth Range	YES
Force EQ Training Pattern	YES
Active Info 00 3	DICT	16
Connected	Yes
Dual Link	No
Coherent	No
MST	No
Connection Type	DP
Pixel Clock	241500 kHz
Lane Count	2
Link Clock	540000 kHz
Link Bits	24 bpc
CRTC Index	3
PLL Index	6
Backlight Freq	0 Hz
Link Format	RGB
DIG FE	C
Number of Devices	1
Timing	DICT	21
Display Mode	80005000
Refresh Rate (Calculated)	60 Hz
Refresh Rate (Stored)	0.0 Hz
Window (Active)	2560 x 1440
Window (Scaled)	0 x 0
Scaled Inset	0 x 0
Pixel Clock	241500000 Hz
Scaler Flags	0
Signal Config	0
Blanking	160 x 41
Border {left,right}	{0, 0}
Border {top,bottom}	{0, 0}
Sync Offset (h, v)	48 x 3
Sync Pulse Width (h, v)	32, 5
Sync Config (h, v)	+ x -
Num Links	2
VB Extension	0
Pixel Encoding	1 (RGB444)
Bits Per Color Component	2 (8 bpc)
Colorimetry	1 (RGB)
Dynamic Range	1 (SDR)

--END Device Dump--
### End: AGDC[6] 0x100000725 (took 0.011 sec) ################################

### End: Devices (took 0.012 sec) ############################################

### Start: mpxdiagnose #######################################################
### End: mpxdiagnose (took 0.403 sec) ########################################

AGDCDiagnose completed in 0.426120 seconds

@jaffacake
Copy link

Ha, although maybe I spoke too soon, it seemed I was running at 1440p @ 60hz with HDR, when I tried upping the refresh rate to 120hz I got no signal. Had to unplug the cable & back in again and I'm back to square one, only 1440p showing again with 60hz max & no HDR 🤦

@joevt
Copy link
Author

joevt commented Sep 13, 2021

Edited your comment. Need a line feed after <summary> for the code to be formatted. I wish this forum supported attachments because <summary> only shortens the post visibly - not the actual amount of data to download.

I still think all your Thunderbolt ports are broken. Or you haven't tested them all yet like I asked.
Get a new Thunderbolt port by connecting a Thunderbolt 3 dock or device that has two Thunderbolt 3 ports.

@joevt
Copy link
Author

joevt commented Sep 13, 2021

What is the display connected to GPU port 4 vendor:HYO, product:049b, display product name "DUAL-DVI"?
What adapter is that display connected to? It appears to be using a Parade PS176 (OUI:000-028-248 176GB0)

@jaffacake
Copy link

jaffacake commented Sep 13, 2021 via email

@conor888
Copy link

conor888 commented Jan 9, 2023

Tried to follow the steps from the first step to remove chroma subsampling, but finding that no EDIDs are loaded after loadagdc and loadioreg:

image

Running macOS 13.1 on a MacBook Pro 16" M1 Pro. Is this script no longer working under 13?

@joevt
Copy link
Author

joevt commented Jan 10, 2023

The problem is Apple Silicon Macs don't store EDID in ioreg and AGDCDiagnose doesn't read EDID on Apple Silicon Macs.

If you look at the EDIDUtil.sh script, you see that the loadagdc command uses something like this command:
/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a > /tmp/local_AGDCDiagnose.XXXXXX 2>&1
If you do that command manually and view the resulting file:
open /tmp/local_AGDCDiagnose.XXXXXX
You'll see that there's not much info (no EDID) produced for Apple Silicon Macs compared to Intel Macs.

This command is used to look at ioreg:
ioreg -lw0 > /tmp/local_ioreg.XXXXXX
For Apple Silicon Macs, it doesn't contain any EDIDs. An EDID is a binary blob that begins with 00ffffffffffff00 and is a multiple of 128 bytes in size.

My AllRez command also doesn't get EDID for Apple Silicon Macs. It needs an update for that but I don't have an Apple Silicon Mac to experiment with.

I think SwitchResX was updated to get EDID on Apple Silicon Macs? In that case, you can use the loadswitchresxfile command from EDIDUtil.sh.

But even if you can get the EDID and create an override file, I don't think Apple Silicon Macs load EDID overrides from override files stored in /Library/Displays/Contents/Resources/Overrides. I believe Apple Silicon Macs can load other info from override files stored in that location such as display name or scaled resolutions (both of which you can change using SwitchResX).

We don't know in what situation (if any) Apple Silicon Macs will load EDID overrides. Maybe the EDID override needs to be in /System/Library/Displays/Contents/Resources/Overrides or maybe the name of the override file needs to use the DisplayProductID-#### format instead of the DisplayYearManufacture-####-DisplayWeekManufacture-#### format that SwitchResX uses.

I suppose one could grep all the frameworks and daemons to see which access the Overrides path.
sudo grep -R "Resources/Overrides" /System/Library/Frameworks /Library/Frameworks /usr/libexec
However, in recent macOS versions, the framework binaries are removed and a cache is used instead so it makes finding the frameworks that access the overrides more difficult - unless you can find a way to split the cache into separate frameworks.
https://github.com/keith/dyld-shared-cache-extractor

On Intel Macs, displaypolicyd and CoreDisplay.framework read different info from override files. displaypolicyd will read DisplayPort and DSC info while CoreDisplay.framework reads scaled resolutions and display name EDID override and other stuff. There's also IOKit.framework but I don't think that's used in modern macOS versions. displaypolicyd won't read from /Library though - it only reads from /System/Library. It can read .mtdd file from /var/db/displaypolicyd/
https://forums.macrumors.com/threads/studio-display-natural-resolution.2338616/post-30974390

Anyway, if we can find the arm64e code (used by Apple Silicon Macs) that accesses the overrides, then a disassembler such as Hopper.app can be used to maybe discover if IODisplayEDID ever gets accessed and under what conditions it gets accessed.

@thirstyone
Copy link

I spoiled the EEPROM in the LCD display of my old map (late 2011)
When I do ioreg -lw0 > /tmp/local_ioreg.XXXXXX and search for EDID, I see the first three bytes are damaged. Is there a way to rewrite the EDID programmatically - may be through ioreg? (I know the right bytes sequence) to get my mbp back to work? (right now I have black screen, but I can connect via Remote Desktop)

@joevt
Copy link
Author

joevt commented Jun 3, 2023

I spoiled the EEPROM in the LCD display of my old map (late 2011)
When I do ioreg -lw0 > /tmp/local_ioreg.XXXXXX and search for EDID, I see the first three bytes are damaged. Is there a way to rewrite the EDID programmatically - may be through ioreg? (I know the right bytes sequence) to get my mbp back to work? (right now I have black screen, but I can connect via Remote Desktop)

How did the bytes get damaged in the first place? I don't know how to change them. You could try making an EDID override to see if that helps.

The first 8 bytes of an EDID are always 00ffffffffffff00.

@thirstyone
Copy link

thirstyone commented Jun 3, 2023

How did the bytes get damaged in the first place?

I did it because of my own stupidity, with my own piece of code leveraging IOKit.i2c - it finds the right i2c device on a good mbp, but it doesn't on the damaged one, with framebuffer returning zero (which means a fault).
I looked through EDID override technics, but as far as I understood, it is a temporary fix until the next reboot (i.e. I won't see boot loader, I won't be able to chose the disk, etc). But most importantly, I didn't get how do I use it - I got the only screen with a damaged header in its EDID, and I don't know how do I find the right one among all those folders inside override directory.

@joevt
Copy link
Author

joevt commented Jun 3, 2023

I suppose you can't override the EDID if it won't load properly. Does SwitchResX show a display?
Can you attach zipped output from AllRez? It has code to read EDID.
What macOS version are you using?

@thirstyone
Copy link

I was using Catalina when I damaged it, now I can boot from El Capitan (which has Remote Desktop enabled). If you're curious about edid, it's now
ioreg -lw0 -r -c "IODisplayConnect" -d 2 +-o display0 <class IODisplayConnect, id 0x10000068e, registered, matched, active, busy 0 (0 ms), retain 6> | { | } | +-o AppleBacklightDisplay <class AppleBacklightDisplay, id 0x10000068f, registered, matched, active, busy 0 (0 ms), retain 9> { "IOClass" = "AppleBacklightDisplay" "CFBundleIdentifier" = "com.apple.iokit.IOGraphicsFamily" "IOProviderClass" = "IODisplayConnect" "DisplayProductID" = 40100 "IODisplayEDID" = <be0000ffffffff000610a49c0000000016130103802115780ae585a3544f9c260e505400000001010101010101010101010101010101ab22a0a050841a30302036004bcf10000019000000010006103000000000000000000a20000000fe004c544e31353442543038000a20000000fc00436f6c6f72204c43440a20202000ac> "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@0/display0/AppleBacklightDisplay-610-9ca4" "IODisplayGUID" = 436849163854938112 "IOProbeScore" = 3000 "IODisplayParameters" = {"commit"={"reg"=0},"dsyp"={"min"=0,"max"=2,"value"=2},"fade-time3"={"min"=0,"max"=10000,"value"=500},"brightness"={"max"=1024,"min"=0,"value"=769},"brightness-fade"={"min"=0,"max"=1023,"value"=0},"fade-time2"={"min"=0,"max"=10000,"value"=4000},"fade-time1"={"min"=0,"max"=10000,"value"=500},"usable-linear-brightness"={"min"=452,"max"=1808,"value"=1162},"fade-style"={"min"=0,"max"=10,"value"=0},"linear-brightness"={"min"=0,"max"=1808,"value"=1162}} "IOPowerManagement" = {"DevicePowerState"=3,"CapabilityFlags"=49152,"CurrentPowerState"=3,"MaxPowerState"=3} "IOMatchCategory" = "IODefaultMatchCategory" "IODisplayConnectFlags" = <00080000> "DisplayVendorID" = 1552 "DisplayParameterHandlerUsesCharPtr" = Yes "DisplaySerialNumber" = 0 }
So, it's a wrong header.
Right now I've soldered two wires to the pull-up resistor next to LVDS connector, and my logic analyzer proved the problem: I can see the communication. So now I don't have an i2c programmer at hand (I'm about to order one), and I'm not sure if my programming intervention will be safe for SN74LV4066A, which switches the signal from the PCh(U1800) or that U1800 itself?
Right now, because of those wires, I cannot install and run AllRez.
But even if I cope with overriding EDID, I won't be able to launch from my Catalina disk (which doesn't have Remote Desktop)?

@joevt
Copy link
Author

joevt commented Jun 4, 2023

It looks like a valid EDID except the first 3 bytes. The checksum is correct when the first 3 bytes are corrected.

macOS has built-in screen sharing but it needs to be enabled in the Sharing preferences panel before it can be used. Then you can screen share from a different Mac. I think the built in screen sharing may also work as VNC?

If you can't do screen sharing, then you can try connecting an external display.

Another option is to boot into Target Disk Mode but I don't know if that works without the built-in display? When the Mac is in Target Disk Mode, you can connect it to another Mac to use it as a hard drive which you can boot from.

Another option is to remove the hard drive and use it to boot a different Mac.

The display LTN154BT08 or APP9CA4 (vendor:Apple product:9ca4) appears to be this one or similar:
https://www.panelook.com/LTN154BT08-R06_Samsung_15.4_LCM_overview_17497.html

@thirstyone
Copy link

Thanks, I knew all that. I can't connect the external display because of disabled (because faulty) dGPU.
Solved the problem by solderin thin wires directly to the panel cable connector and flashing the EDID.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment