Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
xavier
Level 7

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
EnTerr
Level 8

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
Level 7

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
Level 8

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
Level 7

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
Level 8

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
Level 7

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
Level 8

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