But the internal rendering seems to have a bottleneck for HDMI output, so that the HDMI output is just up-scaled 1080p content… I would like the whole pipeline to be 2160p.
adb shell dumpsys SurfaceFlinger
returns some interesting results:
The Vx1 display:
DisplayDevice{0, internal, primary, "Internal display"}
powerMode=On (2), activeConfig=0, Composition Display State: ["Internal display"]
isVirtual=false hwcId=0
isEnabled=true isSecure=true usesClientComposition=true usesDeviceComposition=false flipClientTarget=false reusedClientComposition=false layerStack=0 layerStackInternal=true
transform 0x00000000 (ROT_0 ) 0x00 (IDENTITY )
1.0000 0.0000 -0.0000
0.0000 1.0000 -0.0000
0.0000 0.0000 1.0000
bounds=[0 0 3840 2160] frame=[0 0 3840 2160] viewport=[0 0 3840 2160] sourceClip=[0 0 3840 2160] destinationClip=[0 0 3840 2160] needsFiltering=false
colorMode=NATIVE (0) renderIntent=COLORIMETRIC (0) dataspace=UNKNOWN (0) colorTransformMatrix=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]target dataspace=UNKNOWN (0)
Composition Display Color State:
HWC Support: wideColorGamut=false hdr10plus=false hdr10=true hlg=true dv=false metadata=0
Composition RenderSurface State:
size=[3840 2160] ANativeWindow=0xb4000077e39c81a0 (format 1) flips=1062
Note that size
is 3840x2160
And then:
MesonHwc2 state(DEBUG):
--------------------------------------------------------------------------------------
Display (Tablet-21, HW-Comp)
Power: (1-0)
Calibration: (3840x2160)->(0x0,3840x2160)
No upscaling is needed for Vx1
The HDMI display:
+ DisplayDevice{1, external, "External display"}
powerMode=On (2), activeConfig=0, Composition Display State: ["External display"]
isVirtual=false hwcId=1
isEnabled=true isSecure=true usesClientComposition=true usesDeviceComposition=false flipClientTarget=false reusedClientComposition=false layerStack=0 layerStackInternal=false
transform 0x00000000 (ROT_0 ) 0x04 (SCALE )
0.5000 0.0000 0.0000
0.0000 0.5000 0.0000
0.0000 0.0000 1.0000
bounds=[0 0 1920 1080] frame=[0 0 1920 1080] viewport=[0 0 3840 2160] sourceClip=[0 0 3840 2160] destinationClip=[0 0 1920 1080] needsFiltering=true
colorMode=NATIVE (0) renderIntent=COLORIMETRIC (0) dataspace=UNKNOWN (0) colorTransformMatrix=[[1.000,0.000,0.000,0.000][0.000,1.000,0.000,0.000][0.000,0.000,1.000,0.000][0.000,0.000,0.000,1.000]]target dataspace=UNKNOWN (0)
Composition Display Color State:
HWC Support: wideColorGamut=false hdr10plus=false hdr10=false hlg=false dv=false metadata=0
Composition RenderSurface State:
size=[1920 1080] ANativeWindow=0xb4000077e39ce7d0 (format 1) flips=975
Note that size
is 1920x1080
And then:
Display (HDMI-20, HW-Comp)
Power: (1-0)
Calibration: (1920x1080)->(0x0,3840x2160)
Upscaling is performed for HDMI, this should not be needed if the entire pipeline was 4k