I am struggling to understand what could explain why the resolution for AndroidTV on the 58H78G, I just acquired, is stuck at 1080p.
When setting up the TV on the first start, the interface looked like 1080p (poorly) upscaled - you could notice the logos and text not being sharp.
If I start Youtube app, it renders 4k content clearly but when I go back to AndroidTV it looks blurry.
I tried running Kodi which confirms the system it is running on, has a resolution of 1080p only (visible under the System information of Kodi), which makes AndroidTV fairly useless for any extra app that cannot recognize a 4K environment.
I tried a few others apps and it looks like there is no native 4K rendering on this TV which if true is the most disappointing marketing move I have yet to see. The point of that purchase was to collapse TV and smart player in one product. I was curious (and maybe worried) to see the kind of system on chip such a TV would have. While I understand the TV is classified as budget, it is sad to see such a limitation on the user experience.
I have an NVIDIA ShieldTV (running AndroidTV 8.2) that I connected to the Hisense on HDMI and that player displays its interface as a 4K resolution (showing on the on-screen input resolution notification).
I have even enabled the developer mode in Android to try some recommendations around changing the size of the window manager and density which did not change the actual resolution.
For reference, in debugging mode over the network:
xiaoyushan:/ $ wm size
Physical size: 1920x1080
And the dumpsys window output:
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
Display: mDisplayId=0
init=1920x1080 320dpi cur=1920x1080 app=1920x1080 rng=1080x1080-1920x1920
deferred=false mLayoutNeeded=false mTouchExcludeRegion=SkRegion((0,0,1920,1080))
mLayoutSeq=220
Application tokens in top down Z order:
mStackId=0
mDeferRemoval=false
mBounds=[0,0][1920,1080]
taskId=3
mBounds=[0,0][1920,1080]
mdr=false
appTokens=[AppWindowToken{fe005fb token=Token{1ba6b8a ActivityRecord{e75c1f5 u0 com.google.android.tvlauncher/.MainActivity t3}}}]
mTempInsetBounds=[0,0][0,0]
Activity #0 AppWindowToken{fe005fb token=Token{1ba6b8a ActivityRecord{e75c1f5 u0 com.google.android.tvlauncher/.MainActivity t3}}}
windows=[Window{2a15143 u0 com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity}]
windowType=2 hidden=false hasVisible=true
app=true mVoiceInteraction=false
task={taskId=3 appTokens=[AppWindowToken{fe005fb token=Token{1ba6b8a ActivityRecord{e75c1f5 u0 com.google.android.tvlauncher/.MainActivity t3}}}] mdr=false}
mFillsParent=true mOrientation=0
hiddenRequested=false mClientHidden=false reportedDrawn=true reportedVisible=true
mNumInterestingWindows=1 mNumDrawnWindows=1 inPendingTransaction=false allDrawn=true lastAllDrawn=true)
startingData=null removed=false firstWindowDrawn=true mIsExiting=false
controller=AppWindowContainerController{ token=Token{1ba6b8a ActivityRecord{e75c1f5 u0 com.google.android.tvlauncher/.MainActivity t3}} mContainer=AppWindowToken{fe005fb token=Token{1ba6b8a ActivityRecord{e75c1f5 u0 com.google.android.tvlauncher/.MainActivity t3}}} mListener=ActivityRecord{e75c1f5 u0 com.google.android.tvlauncher/.MainActivity t3}}
homeStack=Stack=0
DockedStackDividerController
mLastVisibility=false
mMinimizedDock=false
mAdjustedForIme=false
mAdjustedForDivider=false
PinnedStackController
defaultBounds=[1367,778][1808,1026]
movementBounds=[112,54][1808,1026]
mIsImeShowing=false
mImeHeight=0
mIsShelfShowing=false
mShelfHeight=0
mReentrySnapFraction=-1.0
mIsMinimized=false
mActions=[]
mDisplayInfo=DisplayInfo{"Built-in Screen", uniqueId "local:0", app 1920 x 1080, real 1920 x 1080, largest app 1920 x 1920, smallest app 1080 x 1080, mode 1, defaultMode 1, modes [{id=1, width=1920, height=1080, fps=60.000004}], colorMode 0, supportedColorModes [0], hdrCapabilities android.view.Display$HdrCapabilities@4a3d456a, rotation 0, density 320 (77.0 x 77.0) dpi, layerStack 0, appVsyncOff 2000000, presDeadline 11666666, type BUILT_IN, state ON, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, removeMode 0}
DisplayFrames w=1920 h=1080 r=0
mStable=[0,0][1920,1080]
mStableFullscreen=[0,0][1920,1080]
mDock=[0,0][1920,1080]
mCurrent=[0,0][1920,1080]
mSystem=[0,0][1920,1080]
mContent=[0,0][1920,1080]
mVoiceContent=[0,0][1920,1080]
mOverscan=[0,0][1920,1080]
mRestrictedOverscan=[0,0][1920,1080]
mRestricted=[0,0][1920,1080]
mUnrestricted=[0,0][1920,1080]
mDisplayInfoOverscan=[0,0][0,0]
mRotatedDisplayInfoOverscan=[0,0][0,0]
mDisplayCutout=com.android.server.wm.utils.WmDisplayCutout@3c1
WINDOW MANAGER TOKENS (dumpsys window tokens)
All tokens:
Display #0
AppWindowToken{fe005fb token=Token{1ba6b8a ActivityRecord{e75c1f5 u0 com.google.android.tvlauncher/.MainActivity t3}}}
WindowToken{5071fc5 android.os.BinderProxy@dce063c}
WindowToken{3be1a7a android.os.Binder@6f016a5}
WallpaperWindowToken{a74db89 token=android.os.Binder@61a0690}
The dumpsys display:
xiaoyushan:/ $ dumpsys display
DISPLAY MANAGER (dumpsys display)
mOnlyCode=false
mSafeMode=false
mPendingTraversal=false
mGlobalDisplayState=ON
mNextNonDefaultDisplayId=1
mDefaultViewport=DisplayViewport{valid=true, displayId=0, uniqueId='null', orientation=0, logicalFrame=Rect(0, 0 - 1920, 1080), physicalFrame=Rect(0, 0 - 1920, 1080), deviceWidth=1920, deviceHeight=1080}
mExternalTouchViewport=DisplayViewport{valid=false, displayId=0, uniqueId='null', orientation=0, logicalFrame=Rect(0, 0 - 0, 0), physicalFrame=Rect(0, 0 - 0, 0), deviceWidth=0, deviceHeight=0}
mVirtualTouchViewports=[]
mDefaultDisplayDefaultColorMode=0
mSingleDisplayDemoMode=false
mWifiDisplayScanRequestCount=0
mStableDisplaySize=Point(1920, 1080)
Display Adapters: size=3
LocalDisplayAdapter
VirtualDisplayAdapter
OverlayDisplayAdapter
mCurrentOverlaySetting=
mOverlays: size=0
Display Devices: size=1
DisplayDeviceInfo{"Built-in Screen": uniqueId="local:0", 1920 x 1080, modeId 1, defaultModeId 1, supportedModes [{id=1, width=1920, height=1080, fps=60.000004}], colorMode 0, supportedColorModes [0], HdrCapabilities android.view.Display$HdrCapabilities@4a3d456a, density 320, 77.0 x 77.0 dpi, appVsyncOff 2000000, presDeadline 11666666, touch INTERNAL, rotation 0, type BUILT_IN, state ON, FLAG_DEFAULT_DISPLAY, FLAG_ROTATES_WITH_CONTENT, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}
mAdapter=LocalDisplayAdapter
mUniqueId=local:0
mDisplayToken=android.os.BinderProxy@1045b50
mCurrentLayerStack=0
mCurrentOrientation=0
mCurrentLayerStackRect=Rect(0, 0 - 1920, 1080)
mCurrentDisplayRect=Rect(0, 0 - 1920, 1080)
mCurrentSurface=null
mBuiltInDisplayId=0
mActivePhysIndex=0
mActiveModeId=1
mActiveColorMode=0
mState=ON
mBrightness=102
mBacklight=com.android.server.lights.LightsService$LightImpl@28d7149
mDisplayInfos=
PhysicalDisplayInfo{1920 x 1080, 60.000004 fps, density 2.0, 77.0 x 77.0 dpi, secure true, appVsyncOffset 2000000, bufferDeadline 11666666}
mSupportedModes=
DisplayModeRecord{mMode={id=1, width=1920, height=1080, fps=60.000004}}
mSupportedColorModes=[0]
Logical Displays: size=1
Display 0:
mDisplayId=0
mLayerStack=0
mHasContent=true
mRequestedMode=0
mRequestedColorMode=0
mDisplayOffset=(0, 0)
mPrimaryDisplayDevice=Built-in Screen
mBaseDisplayInfo=DisplayInfo{"Built-in Screen", uniqueId "local:0", app 1920 x 1080, real 1920 x 1080, largest app 1920 x 1080, smallest app 1920 x 1080, mode 1, defaultMode 1, modes [{id=1, width=1920, height=1080, fps=60.000004}], colorMode 0, supportedColorModes [0], hdrCapabilities android.view.Display$HdrCapabilities@4a3d456a, rotation 0, density 320 (77.0 x 77.0) dpi, layerStack 0, appVsyncOff 2000000, presDeadline 11666666, type BUILT_IN, state ON, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, removeMode 0}
mOverrideDisplayInfo=DisplayInfo{"Built-in Screen", uniqueId "local:0", app 1920 x 1080, real 1920 x 1080, largest app 1920 x 1920, smallest app 1080 x 1080, mode 1, defaultMode 1, modes [{id=1, width=1920, height=1080, fps=60.000004}], colorMode 0, supportedColorModes [0], hdrCapabilities android.view.Display$HdrCapabilities@4a3d456a, rotation 0, density 320 (77.0 x 77.0) dpi, layerStack 0, appVsyncOff 2000000, presDeadline 11666666, type BUILT_IN, state ON, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, removeMode 0}
Callbacks: size=50
0: mPid=2818, mWifiDisplayScanRequested=false
1: mPid=3715, mWifiDisplayScanRequested=false
2: mPid=3731, mWifiDisplayScanRequested=false
3: mPid=3751, mWifiDisplayScanRequested=false
4: mPid=3784, mWifiDisplayScanRequested=false
5: mPid=4113, mWifiDisplayScanRequested=false
6: mPid=4140, mWifiDisplayScanRequested=false
7: mPid=4251, mWifiDisplayScanRequested=false
8: mPid=4274, mWifiDisplayScanRequested=false
9: mPid=4286, mWifiDisplayScanRequested=false
10: mPid=4302, mWifiDisplayScanRequested=false
11: mPid=4314, mWifiDisplayScanRequested=false
12: mPid=4334, mWifiDisplayScanRequested=false
13: mPid=4345, mWifiDisplayScanRequested=false
14: mPid=4366, mWifiDisplayScanRequested=false
15: mPid=4375, mWifiDisplayScanRequested=false
16: mPid=4391, mWifiDisplayScanRequested=false
17: mPid=4410, mWifiDisplayScanRequested=false
18: mPid=4421, mWifiDisplayScanRequested=false
19: mPid=4436, mWifiDisplayScanRequested=false
20: mPid=4499, mWifiDisplayScanRequested=false
21: mPid=4525, mWifiDisplayScanRequested=false
22: mPid=4605, mWifiDisplayScanRequested=false
23: mPid=4615, mWifiDisplayScanRequested=false
24: mPid=4687, mWifiDisplayScanRequested=false
25: mPid=4727, mWifiDisplayScanRequested=false
26: mPid=4962, mWifiDisplayScanRequested=false
27: mPid=5026, mWifiDisplayScanRequested=false
28: mPid=5375, mWifiDisplayScanRequested=false
29: mPid=5626, mWifiDisplayScanRequested=false
30: mPid=5666, mWifiDisplayScanRequested=false
31: mPid=5818, mWifiDisplayScanRequested=false
32: mPid=6369, mWifiDisplayScanRequested=false
33: mPid=6519, mWifiDisplayScanRequested=false
34: mPid=6566, mWifiDisplayScanRequested=false
35: mPid=6695, mWifiDisplayScanRequested=false
36: mPid=7022, mWifiDisplayScanRequested=false
37: mPid=7353, mWifiDisplayScanRequested=false
38: mPid=7394, mWifiDisplayScanRequested=false
39: mPid=7503, mWifiDisplayScanRequested=false
40: mPid=7552, mWifiDisplayScanRequested=false
41: mPid=7903, mWifiDisplayScanRequested=false
42: mPid=7928, mWifiDisplayScanRequested=false
43: mPid=8089, mWifiDisplayScanRequested=false
44: mPid=8358, mWifiDisplayScanRequested=false
45: mPid=8377, mWifiDisplayScanRequested=false
46: mPid=8404, mWifiDisplayScanRequested=false
47: mPid=8431, mWifiDisplayScanRequested=false
48: mPid=8888, mWifiDisplayScanRequested=false
49: mPid=8899, mWifiDisplayScanRequested=false
Display Power Controller Locked State:
mDisplayReadyLocked=true
mPendingRequestLocked=policy=BRIGHT, useProximitySensor=false, screenBrightnessOverride=-1, useAutoBrightness=false, screenAutoBrightnessAdjustmentOverride=NaN, screenLowPowerBrightnessFactor=0.5, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN
mPendingRequestChangedLocked=false
mPendingWaitForNegativeProximityLocked=false
mPendingUpdatePowerStateLocked=false
Display Power Controller Configuration:
mScreenBrightnessDozeConfig=1
mScreenBrightnessDimConfig=10
mScreenBrightnessRangeMinimum=10
mScreenBrightnessRangeMaximum=255
mScreenBrightnessDefault=102
mScreenBrightnessForVrRangeMinimum=79
mScreenBrightnessForVrRangeMaximum=255
mScreenBrightnessForVrDefault=86
mUseSoftwareAutoBrightnessConfig=false
mAllowAutoBrightnessWhileDozingConfig=false
mBrightnessRampRateFast=180
mBrightnessRampRateSlow=60
mSkipScreenOnBrightnessRamp=false
mColorFadeFadesConfig=false
mColorFadeEnabled=false
mDisplayBlanksAfterDozeConfig=false
mBrightnessBucketsInDozeConfig=false
Display Power Controller Thread State:
mPowerRequest=policy=BRIGHT, useProximitySensor=false, screenBrightnessOverride=-1, useAutoBrightness=false, screenAutoBrightnessAdjustmentOverride=NaN, screenLowPowerBrightnessFactor=0.5, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN
mUnfinishedBusiness=false
mWaitingForNegativeProximity=false
mProximitySensor=null
mProximitySensorEnabled=false
mProximityThreshold=0.0
mProximity=Unknown
mPendingProximity=Unknown
mPendingProximityDebounceTime=-1 (679943 ms ago)
mScreenOffBecauseOfProximity=false
mLastUserSetScreenBrightness=0
mCurrentScreenBrightnessSetting=102
mPendingScreenBrightnessSetting=-1
mTemporaryScreenBrightness=-1
mAutoBrightnessAdjustment=0.0
mTemporaryAutoBrightnessAdjustment=NaN
mPendingAutoBrightnessAdjustment=NaN
mScreenBrightnessForVr=86
mAppliedAutoBrightness=false
mAppliedDimming=false
mAppliedLowPower=false
mAppliedScreenBrightnessOverride=false
mAppliedTemporaryBrightness=false
mDozing=false
mSkipRampState=RAMP_STATE_SKIP_NONE
mInitialAutoBrightness=0
mScreenOnBlockStartRealTime=0
mScreenOffBlockStartRealTime=0
mPendingScreenOnUnblocker=null
mPendingScreenOffUnblocker=null
mPendingScreenOff=false
mReportedToPolicy=REPORTED_TO_POLICY_SCREEN_ON
mScreenBrightnessRampAnimator.isAnimating()=false
Display Power State:
mScreenState=ON
mScreenBrightness=102
mScreenReady=true
mScreenUpdatePending=false
mColorFadePrepared=false
mColorFadeLevel=1.0
mColorFadeReady=true
mColorFadeDrawPending=false
Photonic Modulator State:
mPendingState=ON
mPendingBacklight=102
mActualState=ON
mActualBacklight=102
mStateChangeInProgress=false
mBacklightChangeInProgress=false
BrightnessTracker state:
mStarted=false
mLastBatteryLevel=NaN
mLastBrightness=-1.0
mLastSensorReadings.size=0
mEventsDirty=false
mEvents.size=0
mWriteBrightnessTrackerStateScheduled=false
mSensorRegistered=false
PersistentDataStore
mLoaded=true
mDirty=false
RememberedWifiDisplays:
DisplayStates:
StableDeviceValues:
StableDisplayWidth=1920
StableDisplayHeight=1080
BrightnessConfigurations:
I am no expert but as I was browsing the full dumpsys output, I noticed that:
h/w composer state:
h/w composer enabled
======Mstar HAL Dump infomation Begin======
Capabilities:
Unknown
SidebandStream
Hwcomposer Display Devices:
Hwcomposer Primary Display 0: Type Physical Power mode: Off Vsync: Disable
Color modes [active]: [0]
1 Config (* active)
* 1920 x 1080 @ 60.0 Hz, DPI: 77.0 x 77.0
mGlobalTransform:[[1.000,0.000,0.000][0.000,1.000,0.000][0.000,0.000,1.000]]
1 HWC Layer
-----------------------------------------------------------------------------------------------------------------------------------
HWC Layer :34 (unknow)
Visible Region Surface Damage
[0, 0, 1920, 1080] [0, 0, 1920, 1080]
Compostion Type : Device Z = 0 Buffer handle/Fence = 0xf42d8b00/-1 Foramt = RGBA_8888 mPlaneAlpha = 1 Transform = None Blend = None
Source crop (l,t,r,b) = [0, 0, 1920, 1080] Display frame (l,t,r,b) = [0, 0, 1920, 1080]
layer buffer's memory type is CMA_MIU0_CONTIGUOUS
-----------------------------------------------------------------------------------------------------------------------------------
HWC Layer :0 (Client Target)
Visible Region Surface Damage
[0, 0, 1920, 1080] None
Compostion Type : Client Target Z = 0 Buffer handle/Fence = 0xf42d8600/-1 Foramt = BGRA_8888 mPlaneAlpha = 1 Transform = None Blend = Premultiplied
Source crop (l,t,r,b) = [0, 0, 1920, 1080] Display frame (l,t,r,b) = [0, 0, 1920, 1080]
-----------------------------------------------------------------------------------------------------------------------------------
curTimingWidth = 3840, curTimingHeight = 2160
panelWidth = 3840,panelHeight = 2160, panelHStart = 0
display region = 1920 x 1080
OSD mDisplayQueue size 0
Mi window 0: Mi window[0xf42a72b0] ,acquireFenceFd = -1,releaseFenceFd = 52,blending = 1 planeAlpha = 255 layerindex=0 bFrameBufferTarget=0,layer[0],handle = 20000,Layer custom size src:1920
x 1080,dst [0,0,3840,2160],window handle = 40001,window rect[0,0,1920,1080],surface width x height :1920 x 1080,buffer type = 2,Color format = 7,pixel alpha = 1, is full flip = 0, Surface han
dle = 80006,bReArrange = 0,eColorFormat = 7,eMemoryType = 2, eOwner = 0,phyAddr = 2f83000,width x height = 1920 x 1080,pitch = 7680.
hwcursor idx[-1],op=0,alpha=0,layer[0]:hnd=0,customSize=[0x0,0,0,0,0].window:hnd=0,hLayer=0,W/H=[0x0],rect=[0,0,0,0],bufType=0,color=0.SrcSurf:hnd=0,memType=0,Owner=0,phyAddr=0,W/H/Pitch=[0,0
,0],DstSurf:hnd=0,memType=0,owner=0,phyAddr=0,W/H/Pitch=[0,0,0],mSrcRect=[0,0,0,0],mDstRect=[0,0,0,0]
======Mstar HAL Dump infomation end======
Allocated buffers:
0xd4d0e000: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | Sys2023:dream#0
0xeeb57f00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0x1e02 | FramebufferSurface
0xeeb7b000: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
0xeeb7b700: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
0xeeb7ba00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
0xeeb7bc00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | Sys2023:dream#0
0xeeb7bd00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | Sys2023:dream#0
0xeeb7be00: 16.00 KiB | 64 ( 64) x 64 | 1 | 1 | 0xf02 | com.android.systemui.ImageWallpaper#0
0xeeb7bf00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | Sys2023:dream#0
0xf0d35d00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0x1e02 | FramebufferSurface
0xf0d35e00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
Total allocated (estimate): 81016.00 KB
Which seems to confirm everything is running at 1080p for the launcher.
If I issue a 'wm size 3840x2160' command, the physical resolution remains the same, only the window manager changes which does not address the problem:
$ wm size
Physical size: 1920x1080
Override size: 3840x2160
I tried the the 'wm density' but, as far as I can tell, this is only for the way the ratio of the rendering looks like. I experimented a bit however, that does not address the native resolution.
Then the hwComposer section reports the following:
Hwcomposer Display Devices:
Hwcomposer Primary Display 0: Type Physical Power mode: Off Vsync: Disable
Color modes [active]: [0]
1 Config (* active)
* 1920 x 1080 @ 60.0 Hz, DPI: 77.0 x 77.0
mGlobalTransform:[[1.000,0.000,0.000][0.000,1.000,0.000][0.000,0.000,1.000]]
1 HWC Layer
-----------------------------------------------------------------------------------------------------------------------------------
HWC Layer :34 (unknow)
Visible Region Surface Damage
[0, 0, 1920, 1080] [0, 0, 3840, 2160]
Compostion Type : Client Z = 0 Buffer handle/Fence = 0xf42d8200/-1 Foramt = RGBA_8888 mPlaneAlpha = 1 Transform = None Blend = None
Source crop (l,t,r,b) = [0, 0, 3840, 2160] Display frame (l,t,r,b) = [0, 0, 1920, 1080]
layer buffer's memory type is CMA_MIU0_CONTIGUOUS
-----------------------------------------------------------------------------------------------------------------------------------
HWC Layer :0 (Client Target)
Visible Region Surface Damage
[0, 0, 1920, 1080] None
Compostion Type : Client Target Z = 0 Buffer handle/Fence = 0xf42d8600/-1 Foramt = BGRA_8888 mPlaneAlpha = 1 Transform = None Blend = Premultiplied
Source crop (l,t,r,b) = [0, 0, 1920, 1080] Display frame (l,t,r,b) = [0, 0, 1920, 1080]
-----------------------------------------------------------------------------------------------------------------------------------
curTimingWidth = 3840, curTimingHeight = 2160
panelWidth = 3840,panelHeight = 2160, panelHStart = 0
display region = 1920 x 1080
OSD mDisplayQueue size 0
Mi window 0: Mi window[0xf42a7390] ,acquireFenceFd = -1,releaseFenceFd = 55,blending = 2 planeAlpha = 255 layerindex=1 bFrameBufferTarget=1,layer[0],handle = 20000,Layer custom size src:1920
x 1080,dst [0,0,3840,2160],window handle = 40001,window rect[0,0,1920,1080],surface width x height :1920 x 1080,buffer type = 2,Color format = 8,pixel alpha = 1, is full flip = 0, Surface han
dle = 80003,bReArrange = 0,eColorFormat = 8,eMemoryType = 2, eOwner = 0,phyAddr = 7fe9000,width x height = 1920 x 1080,pitch = 7680.
hwcursor idx[-1],op=0,alpha=0,layer[0]:hnd=0,customSize=[0x0,0,0,0,0].window:hnd=0,hLayer=0,W/H=[0x0],rect=[0,0,0,0],bufType=0,color=0.SrcSurf:hnd=0,memType=0,Owner=0,phyAddr=0,W/H/Pitch=[0,0
,0],DstSurf:hnd=0,memType=0,owner=0,phyAddr=0,W/H/Pitch=[0,0,0],mSrcRect=[0,0,0,0],mDstRect=[0,0,0,0]
======Mstar HAL Dump infomation end======
Allocated buffers:
0xd4d0e000: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | Sys2023:dream#0
0xd4d0e500: 32400.00 KiB | 3840 (3840) x 2160 | 1 | 1 | 0xf02 | Sys2023:dream#0
0xeeb57f00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0x1e02 | FramebufferSurface
0xeeb7b000: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
0xeeb7b700: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
0xeeb7ba00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
0xeeb7bc00: 32400.00 KiB | 3840 (3840) x 2160 | 1 | 1 | 0xf02 | Sys2023:dream#0
0xeeb7bd00: 32400.00 KiB | 3840 (3840) x 2160 | 1 | 1 | 0xf02 | Sys2023:dream#0
0xeeb7be00: 16.00 KiB | 64 ( 64) x 64 | 1 | 1 | 0xf02 | com.android.systemui.ImageWallpaper#0
0xf0d35d00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0x1e02 | FramebufferSurface
0xf0d35e00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
Total allocated (estimate): 153916.00 KB
And after a reboot (still showing resolution at 1080p while UI is trying to show 4K)
Hwcomposer Display Devices:
Hwcomposer Primary Display 0: Type Physical Power mode: Off Vsync: Disable
Color modes [active]: [0]
1 Config (* active)
* 1920 x 1080 @ 60.0 Hz, DPI: 77.0 x 77.0
mGlobalTransform:[[1.000,0.000,0.000][0.000,1.000,0.000][0.000,0.000,1.000]]
1 HWC Layer
-----------------------------------------------------------------------------------------------------------------------------------
HWC Layer :4 (unknow)
Visible Region Surface Damage
[0, 0, 1920, 1080] [0, 0, 3840, 2160]
Compostion Type : Client Z = 0 Buffer handle/Fence = 0xe85d8500/-1 Foramt = RGBA_8888 mPlaneAlpha = 1 Transform = None Blend = None
Source crop (l,t,r,b) = [0, 0, 3840, 2160] Display frame (l,t,r,b) = [0, 0, 1920, 1080]
layer buffer's memory type is CMA_MIU0_CONTIGUOUS
-----------------------------------------------------------------------------------------------------------------------------------
HWC Layer :0 (Client Target)
Visible Region Surface Damage
[0, 0, 1920, 1080] None
Compostion Type : Client Target Z = 0 Buffer handle/Fence = 0xe85d8600/-1 Foramt = BGRA_8888 mPlaneAlpha = 1 Transform = None Blend = Premultiplied
Source crop (l,t,r,b) = [0, 0, 1920, 1080] Display frame (l,t,r,b) = [0, 0, 1920, 1080]
-----------------------------------------------------------------------------------------------------------------------------------
curTimingWidth = 3840, curTimingHeight = 2160
panelWidth = 3840,panelHeight = 2160, panelHStart = 0
display region = 1920 x 1080
OSD mDisplayQueue size 0
Mi window 0: Mi window[0xe85a72b0] ,acquireFenceFd = -1,releaseFenceFd = 55,blending = 2 planeAlpha = 255 layerindex=1 bFrameBufferTarget=1,layer[0],handle = 20000,Layer custom size src:1920
x 1080,dst [0,0,3840,2160],window handle = 40001,window rect[0,0,1920,1080],surface width x height :1920 x 1080,buffer type = 2,Color format = 8,pixel alpha = 1, is full flip = 0, Surface han
dle = 80003,bReArrange = 0,eColorFormat = 8,eMemoryType = 2, eOwner = 0,phyAddr = 7fe9000,width x height = 1920 x 1080,pitch = 7680.
hwcursor idx[-1],op=0,alpha=0,layer[0]:hnd=0,customSize=[0x0,0,0,0,0].window:hnd=0,hLayer=0,W/H=[0x0],rect=[0,0,0,0],bufType=0,color=0.SrcSurf:hnd=0,memType=0,Owner=0,phyAddr=0,W/H/Pitch=[0,0
,0],DstSurf:hnd=0,memType=0,owner=0,phyAddr=0,W/H/Pitch=[0,0,0],mSrcRect=[0,0,0,0],mDstRect=[0,0,0,0]
======Mstar HAL Dump infomation end======
Allocated buffers:
0xc7e08600: 16.00 KiB | 64 ( 64) x 64 | 1 | 1 | 0xf02 | com.android.systemui.ImageWallpaper#0
0xe7cd7c00: 32400.00 KiB | 3840 (3840) x 2160 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
0xe7cd7d00: 32400.00 KiB | 3840 (3840) x 2160 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
0xe7cd7e00: 32400.00 KiB | 3840 (3840) x 2160 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
0xe7cd7f00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0x1e02 | FramebufferSurface
0xe9eb5d00: 8100.00 KiB | 1920 (1920) x 1080 | 1 | 1 | 0x1e02 | FramebufferSurface
0xe9eb5e00: 32400.00 KiB | 3840 (3840) x 2160 | 1 | 1 | 0xf02 | com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity#0
Total allocated (estimate): 145816.00 KB
I am trying to understand whether the AndroidTV can run the launcher at 4K or whether the system on chip cannot handle that 4k resolution.
If anybody has any guidance on what else to check or try through ADB shell to confirm what I observed, that would be helpful.