Download

Black Screen in SAMSUNG S7 package built

Hi~

I built a GearVR package on UE4.14, it runs well on SAMSUNG S6.
But then I built another package with a new oculus signature for SAMSUNG S7,
it came to a black screen.

I’ve checked the old threads posted before, I’m sure the default map setting
was correct.

Is there something wrong with oculus signature or other package setting?


I just built a non-VR package, it runs on SAMSUNG S7 normally.:confused:

update:

OpenGL ES2 package : SAMSUNG S7 (black screen)
OpenGL ES3.1 package : SAMSUNG S7 (can run , but fps droped , even lower than runing on SAMSUNG S6)

Well… I found the reason caused the problem last week …
I tried to lower ResolutionQuality to “80” in order to push fps to 60/second constantly
It worked well under Samsung S6 but seemed Samsung S7 does’nt support that.
ResolutionQuality must be 100 or over 100, or it comes to a black screen.

I turned ResolutionQuality back to 100, and both S6 and S7 can run under OpenGL ES2 now.

Hey qianxiao,

I am experiencing the same behavior. I have been using bOverrideScreenPercentage=True / ScreenPercentage=# to lower the render target.

Our S7 devices won’t run on anything other than 100%. Did you ever find a solution for modifying your resolution, while rendering properly on the S7?

Cheers,
Vince

Hi~
Seems we can only use ScreenPercentage=100 (or higher) to build package under S7. (Well done Samsung…)
I had to find some other solution to improve FPS performance for S7 device.

We’ve tracked down a bug causing a mismatch between the size of the color target and the depth target (former allocated by Oculus, latter by us) when the resulting scaled size is not divisible by 16. This will cause a black screen on Adreno devices (US S7’s), but not Mali devices (all S6’s). Working on a fix.

Hi Ryan ~
I’m very appreciated that we can know the reason causing the black screen probleme,
it’s a great help, thank you so much.

So, if I adjust the resulting resolution size to something can be devided by 16(like 2160x1200) it will be OK?
Or there is other better way to fix it?

Ryan discovered the fix, adding a Render Utility function to the GearVR.cpp

His instructions worked for our team:

In Engine\Plugins\Runtime\GearVR\Source\GearVR\Private\GearVR.cpp

Add: #include “RenderUtils.h”

after we include Canvas.h at the top of the file and then in UpdateStereoRenderingParams() add:

QuantizeSceneBufferSize(CurrentSettings->RenderTargetSize.X, CurrentSettings->RenderTargetSize.Y);

after we set the render target size like so:



         const int SuggestedEyeResolutionWidth  = vrapi_GetSystemPropertyInt(&JavaGT, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_WIDTH);
         const int SuggestedEyeResolutionHeight = vrapi_GetSystemPropertyInt(&JavaGT, VRAPI_SYS_PROP_SUGGESTED_EYE_TEXTURE_HEIGHT);
 
         CurrentSettings->RenderTargetSize.X = SuggestedEyeResolutionWidth * 2 * CurrentSettings->ScreenPercentage / 100;
         CurrentSettings->RenderTargetSize.Y = SuggestedEyeResolutionHeight * CurrentSettings->ScreenPercentage / 100;
 
         QuantizeSceneBufferSize(CurrentSettings->RenderTargetSize.X, CurrentSettings->RenderTargetSize.Y);

Hey guys

When I set the screen percentage to 75%, black screen is gone,
my project runs 30+/fps on Samsung S7.

But

On Samsung S6 it runs 59/fps smoothly under screen percentage to 80%.
It’s not reasonable, is Samsung S7 even worse than S6 ?