[daydream] Black screen with FirstPersonTemplate and 4.15P4

When running the FirstPersonTemplate (mobile, scalable) with the settings specified here for Daydream: https://developers.google.com/vr/unreal/daydream-in-unreal#google_vr_project_packaging_deployment
you get a black screen on a Pixel XL. You still here the sounds (so the fire button the controller works) and you see the Google VR overlay (split screen, X to close and settings icons) however the game is not rendered. It actually looks like the first rendered frame which is black gets stuck on the screen.

This actually started occurring since P3 (when the googlevr sdk was updated in the engine). Before that and 4.14 the problem does not occur.

Is there anyway to fix this? It’s a big blocker for updating the google sdk in my project! (which was originally based on the FirstPersonTemplate)

Here’s the logcat:

[logcat][1]

To reproduce:

  1. Create new blueprint project with FirstPersonTemplate and select Mobile, Scalable & No starter assets.
  2. Add the GoogleVR and GoogleVR Controller Plugins and restart project
  3. Goto Project Settings and change the following Android settings:
  4. Min SDK 21,
  5. Target SDK 24,
  6. Enable Full Screen immersive on kitkat and above,
  7. Support ARMv64 (untick ARMv7)
  8. Configure GoogleVR deployment mode = Daydream
  9. Android SDK settings:
  10. SDK API: matchndk
  11. NDK API: latest
  12. Finally: Export as ETC2

Start on a Pixel phone and notice after centering the controller you see no graphics rendered. You can press fire on the controller and here the gun shooting.

screenshot:

Hello aussieburger,

I was unable to reproduce this issue on our end. Could you try this again in the 4.15 release version of the engine? If the issue still occurs could you provide any small steps that may have been missed or changed?

I ran into the same thing. Disabling mobile MSAA fixed the problem on our project.

I also was able to run a first person blueprint game on a pixel with the 4.15 release codebase.

I have MinSDK version set to 24.
I also have "configure goodlvr for sustained-performance mode’ checked.
I left all the multi-texture formats checked.
I have sdk api level and ndk api level both set to ‘android-24’ explicitly.
And I am running it via the “launch” command in the editor.

Oho, and I had MSAA turned off. If I turn it on. black screen.

So it was indeed the AA setting for the default First Person Template project.
Some sort of AA is a must have for this project (and any VR project in truth) - which AA setting is now supported for Daydream since UE4.15?

Disabling msaa is only a workaround and partial diagnosis. I’m trying to fix it.

Any updates Jeffrey? Do you think a quick fix will be possible (even if it’s modifying the source code)? In the meantime I will reach out to fix our 3rd party plugins compatibility in the googlevr 4.14 branch - it’s unfortunately a blocker for us to get a feature slot on Daydream :frowning:

I expect to submit a fix in the next few hours.

This is fixed in the following changelist. It should be a part of 4.15.1, but should also be a trivial integration onto 4.15.

Change: 3309552
UE-42101 [daydream] Black screen with FirstPersonTemplate and 4.15P4
-Fixed creation of the rendertarget to use the msaa level on googlevr. Also clamped the msaa level to the level that opengl reports the hardware supports.

Files:
//UE4/Release-4.15/Engine/Plugins/Runtime/GoogleVR/GoogleVRHMD/Source/GoogleVRHMD/Private/GoogleVRHMDRender.cpp#5

Here is a copy of the cpp file, extension renamed to get around filters.

link text

And here is a github link:
https://github.com/EpicGames/UnrealEngine/commit/0d9abbeaeeae10bb91854d7fb8e1df568cc391f2

Many Thanks Jeffery!

Downloading 4.15 source now :slight_smile:

Unfortunately while this fixes an export for the MSAA issue with the default First Person Template project I unfortunately still get a black screen in my real project even when I disable MSAA completely so there appears to be something else causing the same issue. If I strip my blueprint of all variables and reset the character properties back to defaults then it works again, but it’s proving to be very difficult to narrow done which combination of settings is actually causing the issue :frowning:

Same issue as aussieburger. Merging in the fix + disabling msaa doesn’t fix the black screen. Some interesting output from adm: E/libEGL(2304): eglCreateNativeClientBufferANDROID:1855 error 300c (EGL_BAD_PARAMETER)

Hi Gigakaiser - thanks for helping my sanity - I thought I could not be the only one experiencing this! Please let me know here if you find a solution (and I’ll do the same) :wink:

Any idea what the error means?

I wonder if Jeffrey is able to help debug the project itself since it’s no longer reproducible with a template project?

Yes, if you can give me a project that exhibits the problem I will attempt to debug it.

Alright, it is mostly fixed on my end. Disabling Mobile VR Multiview was the solution.

Make sure you are packaging and deploying your game. When “launching” in the DebugGame config, I actually need to restart the app once it is on the device to get rid of the black screen.

Other notes - I also merged in a018f ( fix broken mobile scene captures ), but this didn’t seem to change anything.

Another bug - Daydream apps now crash if there are any blueprint references to the steam chaperone or oculus guardian. This was not an issue in 4.14.

(also posted as an answer)
Alright, it is mostly fixed on my end. Disabling Mobile VR Multiview was the solution.

Make sure you are packaging and deploying your game. When “launching” in the DebugGame config, I actually need to restart the app once it is on the device to get rid of the black screen.

Other notes - I also merged in a018f ( fix broken mobile scene captures ), but this didn’t seem to change anything

Another bug - Daydream apps now crash if there are any blueprint references to the steam chaperone or oculus guardian. This was not an issue in 4.14.

Mobile Multiview is not supported on Daydream yet. However the setting ought to do nothing, rather than break rendering.

Jira created:
UEVR-586 Mobile Multiview setting breaks rendering on daydream.

The others are also clearly bugs. I’d guess pretty simple ones, eg null checks somewhere.

Jira created:
UEVR-587 Daydream apps crash if blueprint references steam chaperone or oculus guardian.

■■■■ my project does not have any of those things so it must be another null check somewhere :frowning:

Is it possible to fix daydream apps to not show a black screen if there is a null check anywhere? :smiley:

In the meantime I’ll strip my project down and send it to you Jeffrey - could you post your Forum profile page so I can PM you the link?

Jeffrey is there somewhere I can send you the project files privately?