I think making the disparity so great wasn't a good idea. they could have went from 2.5x to just 2x and saved some disparity.
Assuming that the clock speeds are more limited by portable mode than docked mode (which would seem very likely), then by changing from a 2.5x to a 2x factor all you'd be doing is reducing the performance in docked mode.
subnative on handheld does not look good.
Vita has a couple of it and while the games are great it really does not look flattering.
How good sub-native games look depends on a number of factors:
- How sharp the screen is in the first place
- How big a drop in resolution there is
- What, if any, anti-aliasing is being used
- How good the image scaling is
Basically, if you take a 400p game with no anti-aliasing and scale it up using a poor quality scaler it's going to look awful. If you take a 600p game with really good AA and run it through a decent scaling algorithm then you'd barely notice it's not native.
Sub native resolution games on Vita looked bad noticabally, if running at native res 544p on Vita 5" screen it has a 220 PPI, decent for 2011 release
Native res 720p on Switch 6.2" screen roughly only 240 PPI according to google.
Not great in todays standards with a bigger screen it needs a higher PPI to look good nowadays so i wouldn't want sub-native resolutions at Switch at all, they should keep 720p standard
Regarding the bolded, literally the opposite is true. There's a reason iPads have lower PPI than iPhones, and large monitors and TVs have lower PPI again. People view larger screens from further distances, so PPI doesn't need to be as high.
It's 720p.
Actually, the need to use the UE4 screenPercentage setting makes me think the actual framebuffer is always 1080p, even in handheld mode (this would make the transition between console and handheld modes easier for devs). What UE4 does is simply reduce it's internal rendering resolution from 100% (1080p) to 66% (720p).
There would be an 720p->1080p->720p upscale-dowscale process going on, but I just tested it on a 5.5" 720p phone and it's not really noticeable (actually, it makes the jaggies a bit less pronounced).
I doubt the framebuffer is always any particular resolution. The Switch APIs probably accept any resolution FB in either mode, and simply scale to 1080p when docked and 720p otherwise, or just output as-is if they're already at the correct resolution. UE4 wouldn't have any reason to do any unnecessary internal scaling, and probably just outputs at whatever resolution the FB is in (or does internal software scaling if they feel they can do a better job than the hardware scaler).