Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
xavier
Visitor

Scenegraph blackscreen

Hi all,

When working on Scene graph type of channel, after the initial splash screen and before the actual first screen being displayed there is the black screen..I understand this is the time while all components are being initialized.
Mine is lasting for about 7 to 8 seconds, I have a bunch of different screens (total of 6, with some fading background and an URL handler for each of the screen)...

I try to maximize the performance by moving some of the initialization in some specific functions that are being called only when the screen is effectively displayed...However final impact is ridiculous since I am still around 7 to 8 seconds of black screen.

SO I was wondering if there is a best practices to correctly handle all components initialization thus minimizing that black screen ?

Thanks all
0 Kudos
7 REPLIES 7
EnTerr
Roku Guru

Re: Scenegraph blackscreen

"xavier" wrote:
When working on Scene graph type of channel, after the initial splash screen and before the actual first screen being displayed there is the black screen..I understand this is the time while all components are being initialized.
Mine is lasting for about 7 to 8 seconds, I have a bunch of different screens (total of 6, with some fading background and an URL handler for each of the screen)...

That doesn't sounds right.
Do you have `splash_min_time=0` in the manifest? If not, it defaults to 1600ms

You are not creating >1 roSGScreen at a time, are you? That would be some monstrosity. (suspiciously) What do you mean by "[having] a bunch of different screens"?
0 Kudos
xavier
Visitor

Re: Scenegraph blackscreen

Hi,

I have splash_min_time set to 2000...But I have done some test with more than that but that has no impact as I understand it everything is loaded / init when splash time is done...
I have 7 different type of screen...I am managing all screens visibility from the Scene so all screens are defined in Scene.xml.

In my main.brs source file I am only initiating one roSGScreen and create my scene, and that`s it...
0 Kudos
EnTerr
Roku Guru

Re: Scenegraph blackscreen

"xavier" wrote:
I have 7 different type of screen...I am managing all screens visibility from the Scene so all screens are defined in Scene.xml.

That seems like a novel approach, having everything under 1 scene. I am not an expert on RSG (so don't rely on my optinion) but intuitively seems to me that each logical screen should be a separate Scene.
0 Kudos
xavier
Visitor

Re: Scenegraph blackscreen

Well, I have just started to develop channel so I am also not an expert yet, but my understanding is that there should be only one scene, except for screensavers that should be defined in a separate scene...

But I successfully was able to reduce time to 2-3 seconds by creating my screens only when needed....instead of init them one shot...
0 Kudos
EnTerr
Roku Guru

Re: Scenegraph blackscreen

"xavier" wrote:
Well, I have just started to develop channel so I am also not an expert yet, but my understanding is that there should be only one scene, except for screensavers that should be defined in a separate scene...

Based on my prior experience with scenography (outside RSG), each scene should represent a logical screen and switching to a new "screen" is done by transitioning from the current Scene to another Scene.
0 Kudos
NND
Visitor

Re: Scenegraph blackscreen

One thing to consider is that once you create first RSG scene Roku starts process of "compiling" all files in the components directory. Depending o how many components you have it could take a second on faster device or a few seconds on slower devices.
0 Kudos
EnTerr
Roku Guru

Re: Scenegraph blackscreen

"NND" wrote:
One thing to consider is that once you create first RSG scene Roku starts process of "compiling" all files in the components directory. Depending o how many components you have it could take a second on faster device or a few seconds on slower devices.

are you sure that's when it's done?
i was under the impression that compilation is done when the app is started for the first time, with no penalty for subsequent starts
0 Kudos