What's ui_resolutions good for?

Manifest file has new parameter, where supposedly ui_resolutions=fhd will specify my app wants to run in 1080 resolution. roScreen and ifDeviceInfo pages imply ui_resolutions will affect the screen resolution, however i always seem to get 720 back from roDeviceInfo, regardless if ui_resolutions is set and to what value.

di.GetDisplayMode()  = 720p
di.GetDisplaySize()  = {w:  1280    h:  720}
di.GetSupportedGraphicsResolutions()  =  [{width:  720    name: SD    preferred: false    height:  480    ui: false}, {width:  1280   name: HD    preferred: true     height:  720    ui: true}]
di.GetUIResolution()    {width:  1280   name: HD    height:  720}

Why ui_resolutions seems to have no effect? Why can’t i even know that player is configured for 1080p?
Roku3, fw7.0, Settings > DisplayType=1080p. TV says video signal is 1080p/60Hz at all times.

ui_resolutions is used to tell SceneGraph which resolutions are supported by the components in your channel (http://sdkdocs.roku.com/display/sdkdoc/ … Resolution). The device info functions tell you what the device supports, but I suspect they don’t take into account SceneGraph, which is the only way to provide UI in 1080p resolution. As I’m sure you’re aware, standard SDK screens are just upscaled from 720p, if you have the box set to 1080p, so technically the UI resolution is still 720p.

I’d be curious to know if roDeviceInfo returns different values if running within the SceneGraph context.

But if ui_resolutions was only for the graphical scenes (xmlGangBang, cf. McGangBang^) - why is it mentioned in roDeviceInfo and roScreen ? The former implies it is taken into account, the latter - that 1080 can be used to draw

Seems there is discrepancy between documentation and implementation?

(^) “when two all beef patties love the same chicken sandwich very much”

Given that your call to GetSupportedGraphicsResolutions didn’t include an fhd entry, you won’t be able to use roScreen with FHD / 1080 resolution.

Do you have a Roku 4 to develop on? I would expect you to be able to use it there.

Using roScreen with FHD is independent of SceneGraph components, as you stated.

“RokuKC” wrote:
Given that your call to GetSupportedGraphicsResolutions didn’t include an fhd entry, you won’t be able to use roScreen with FHD / 1080 resolution.

Do you have a Roku 4 to develop on? I would expect you to be able to use it there.

Using roScreen with FHD is independent of SceneGraph components, as you stated.
This makes me even more confused!

Provided i have set ui_resolutions=fhd (“fhd” only but “sd,hd,fhd” did not fare better),

  • Why doesn’t roDeviceInfo in any way show that i can use 1080?

  • How would i know if i can use roScreen in 1080 or not?

  • Isn’t roDeviceInfo that can tell me if Roku is connected to TV in 1080 mode?

  • Is “fhd” a Roku4 exclusive? (No, i don’t have Roku4 to test it)

“EnTerr” wrote:

  • Why doesn’t roDeviceInfo in any way show that i can use 1080?

  • How would i know if i can use roScreen in 1080 or not?

  • Isn’t roDeviceInfo that can tell me if Roku is connected to TV in 1080 mode?

  • Is “fhd” a Roku4 exclusive? (No, i don’t have Roku4 to test it)

roDeviceInfo GetSupportedGraphicsResolutions is telling you that only SD and HD resolutions are supported on your Roku 3, and not FHD.

This applies to roScreen, and should indicate both the default and the maximum resolution supported.

Re. TV mode, have you looked at roDeviceInfo.GetVideoMode?

And yes, you can consider FHD exclusive to Roku 4, currently, to my knowledge.

I hope I’m not adding confusion, but I agree that it is a confusing area, and the doc folks have some work to do :wink:

“RokuKC” wrote:
Re. TV mode, have you looked at roDeviceInfo.GetVideoMode?
Yes! “di.GetVideoMode()” gives me “1080p” indeed.

But this is kind of weird, isn’t it? As in saying “to get the actual screen resolution, check GetVideoMode() (Do not ask GetDisplayMode(), have no faith in GetDisplaySize() )”

I have to admit my current attempts are beyond the scope of BrS SDK alone, as in i am trying to coax Marmalade into running in 1080 instead of 720 - and it’s not cooperating, contrary to what the documentation says. So i figured maybe if i massage the manifest a little, that will help. And i presumed if ui_resolutions affects something, that will show in roDeviceInfo …

“EnTerr” wrote:
But this is kind of weird, isn’t it? As in saying “to get the actual screen resolution, check GetVideoMode() (Do not ask GetDisplayMode(), have no faith in GetDisplaySize() )”
Presumably, it’s because GetDisplayMode() is referring to the graphics plane, while GetVideoMode() is referring to the video plane. If 1080p for graphics rendering is “exclusive” to Roku 4, that would explain why the results differ on your Roku 3 when set to 1080p. With that said, however, on my Roku 4, set to 1080p, GetDisplayMode() still returns 720p. Of course, the documentation still only lists 1280x720 as the max size for roScreen, so I guess 720p would be correct, if 1920x1080 is intentionally left undocumented for some reason (fwiw, I just tested it, and 1920x1080 does indeed work for roScreen on the Roku 4). Perhaps it’s undocumented, because they haven’t updated the GetDisplayMode() implementation, yet.. :face_with_tongue:

“TheEndless” wrote:


With that said, however, on my Roku 4, set to 1080p, GetDisplayMode() still returns 720p.

Does your app manifest specify ui_resolutions with a list including fhd?
E.g. ui_resolutions=hd,fhd ?

“RokuKC” wrote:

“TheEndless” wrote:


With that said, however, on my Roku 4, set to 1080p, GetDisplayMode() still returns 720p.
Does your app manifest specify ui_resolutions with a list including fhd?
E.g. ui_resolutions=hd,fhd ?
Well played, sir… adding ui_resolutions results in a 1080p result on the Roku 4.

Wat?
It keeps getting quirkier and quirkier. So it is possible a Roku model can-do 1080p roScreen but it will lie to you about the actual display size (both GetDisplayMode() and GetDisplaySize() will) - unless “fhd” was manifested under “ui_resolutions”.

I can imagine this is a backwards-compatibility concern. E.g. published app riding bareback

isModeSD = createObject("roDeviceInfo").GetDisplayMode() <> "720p"

But… documentation will have to explain THE HECK out of all these quirks. I am fairly well-versed in Roku SDK and i find it weird. Now imagine a complete novice face-planting in this garden…

Do at least the new functions GetSupportedGraphicsResolutions() and GetUIResolution() return 1080p - regardless of ui_resolutions presence or value, as long as the TV is in 1080? Since they are new and don’t have to be be bugwards-compatible.

+1 that all of this is really confusing for beginners.

I got a Roku Model 3800X, firmware 8.01 and really got confused with GetDisplayMode and GetDisplaySize returning “wrong” 720p values even though the Display Mode in the settings is 1080p and ui_resolutions is fhd.

And so the GetVideoMode does return 1080p, but what does this mean for my video streaming application? Should i stream a 1080p or 720p to the Video node in SceneGraph?

P.S. The latest Eclipse plugin doesnt event offer GetVideoMode() via autocomplete :), please update the docs in the plugin :wink:

I just finished writing an intro course to Roku:
https://github.com/learnroku/crash-course

This page attempts to explain ui_resolutions:
https://github.com/learnroku/crash-cour … Lesson2.md