Scriptable render pipeline with the Hololens

Hey,
I wanted to try out the new Scriptable render pipeline with the Hololens.
But i unfortunatly run into some Problems.

The first Problem was easy to fix: I had to change the Skripting Backend from .net to IL2CPP. But as it seems that .net is discontinued, this seems reasonable.

The Second issue is where im stuck: After fixing the first issue i was able to deploy my App to the Hololens but unfortunatly im not able to launch the App. After clicking on the App everything disapears(as normal), but no Unity loading sign appears and after some second i hear a peep and i`m back at my homescreen.

I already updated the Hololens to the newest Windows version which resoulted in a longer time where everything is disappearing, but no other changes.

Now i`m wondering if anybody has get this working already, or has an idea to fix it.

Unity Version 2018.1.0f2, 2018.2.0b3
Hololens Version 10.0.14393.2248 and prev.
Windows Version 1803
Visual Studio Version 15.7.0

Do you have the correct Windows 10 SDK installed?
(i.e. one that matches your Windows 10 Build or supports it)

Not sure if SRP is supported properly yet? Maybe?. I assume you are trying the LWRP. Right?

Also, have you tried with 2017.x or standard RP of 2018.1 and it was working properly?
Make sure all your certificates etc are current.

This sounds like your Unity app is crashing, possibly a bug in SRP.

Can you try running with a debugger attached to see what’s happening? Also, does this still occur when you’re not using SRP?

I attached the debugger and got this Error:
SRPTest.exe triggered an breakpoint

The function in Question:
// System.Void UnityEngine.RenderSettings::get_ambientProbe_Injected(UnityEngine.Rendering.SphericalHarmonicsL2&)
extern “C” void RenderSettings_get_ambientProbe_Injected_m3312258528 (RuntimeObject * __this /* static, unused /, SphericalHarmonicsL2_t3220866195 * ___ret0, const RuntimeMethod method)
{
typedef void (*RenderSettings_get_ambientProbe_Injected_m3312258528_ftn) (SphericalHarmonicsL2_t3220866195 *);
static RenderSettings_get_ambientProbe_Injected_m3312258528_ftn _il2cpp_icall_func;
if (!_il2cpp_icall_func)
_il2cpp_icall_func = (RenderSettings_get_ambientProbe_Injected_m3312258528_ftn)il2cpp_codegen_resolve_icall (“UnityEngine.RenderSettings::get_ambientProbe_Injected(UnityEngine.Rendering.SphericalHarmonicsL2&)”);
_il2cpp_icall_func(___ret0);//<----
}

Yea i have the right SDK installed, yes you are right i`m using the LWRP.
I haven´t tryed out the 2017 version.
I deployed the app(just two cubes) to the hololens with SRP disabled and everything works fine.

Tryed out the newest build of Unity(2018.2.0b7) and the newset Version of the renderpipeline(2.0.1).
Still getting the exact same error at the exact same position.

Hello friend
i am getting these errors when try to make build for Holocene
i am using unity 2018.1.1 with lightweight pipeline.

C:\Users\RChoudharyX098698\AppData\Local\Unity\cache\packages\packages.unity.com\com.unity.postprocessing@2.0.3-preview\PostProcessing\Runtime\PostProcessManager.cs(75,40): error CS1061: ‘Type’ does not contain a definition for ‘IsSubclassOf’ and no extension method ‘IsSubclassOf’ accepting a first argument of type ‘Type’ could be found (are you missing a using directive or an assembly reference?)

C:\Users\RChoudharyX098698\AppData\Local\Unity\cache\packages\packages.unity.com\com.unity.postprocessing@2.0.3-preview\PostProcessing\Runtime\PostProcessManager.cs(76,40): error CS1061: ‘Type’ does not contain a definition for ‘IsDefined’ and no extension method ‘IsDefined’ accepting a first argument of type ‘Type’ could be found (are you missing a using directive or an assembly reference?)

C:\Users\RChoudharyX098698\AppData\Local\Unity\cache\packages\packages.unity.com\com.unity.postprocessing@2.0.3-preview\PostProcessing\Runtime\PostProcessManager.cs(77,41): error CS1061: ‘Type’ does not contain a definition for ‘IsAbstract’ and no extension method ‘IsAbstract’ accepting a first argument of type ‘Type’ could be found (are you missing a using directive or an assembly reference?)

C:\Users\RChoudharyX098698\AppData\Local\Unity\cache\packages\packages.unity.com\com.unity.postprocessing@2.0.3-preview\PostProcessing\Runtime\PostProcessManager.cs(80,34): error CS1579: foreach statement cannot operate on variables of type ‘?’ because ‘?’ does not contain a public definition for ‘GetEnumerator’

C:\Users\RChoudharyX098698\AppData\Local\Unity\cache\packages\packages.unity.com\com.unity.postprocessing@2.0.3-preview\PostProcessing\Runtime\PostProcessEffectSettings.cs(26,41): error CS1061: ‘Type’ does not contain a definition for ‘IsSubclassOf’ and no extension method ‘IsSubclassOf’ accepting a first argument of type ‘Type’ could be found (are you missing a using directive or an assembly reference?)

Are there any plans for supporting the Lightweight Pipeline and Post-Processing stack packages for Windows Store .NET backend builds?

@timke can someone update on SRP status for hololens? Making commercial apps on such a perf hungry platform would be a lot easier with access to the newer optimised pipelines and APIs, but we cannot upgrade from 2017 without knowing it will work…

The Lightweight Render Pipeline has been tested on Hololens, and we resolve bugs as they get reported (please report any bugs you find). I can’t predict whether or not your project will hit any new issues. If you’re risk adverse then you are likely better off avoiding features that are in preview–like Lightweight and SRP. Being in preview means APIs and features are likely to evolve. If you would like to try it out we recommend making a copy of your project first.

The bug described here where you are kicked out before the app starts up when using SRP is still there, using latest unity 2018.2 release. Is there anyway a fix can be released so we can start targeting using the new SRP?

Went through a lot of trouble setting up our project to be ready only to find you cant build anything out. Anything that is unable to build using SRP to hololens, builds fine when not using SRP. This is using stock shaders. @quixotic

bump, have a live commerial project and need to resolve this?

@MadeFromPolygons_1 ,

Hi! Which stereo rendering method are you using? Multi-pass/Single-Pass/Single-Pass Instancing? I ask because SRP does not support multi-pass. Only single-pass and single-pass instancing are supported.

We are aware of issues with respect to compatibility between stereo rendering and the post-processing stack. These issues will be addressed in due time.

Thanks!

Hi @BrandonFogerty , @quixotic and all,
We just tried to work with LWPR and build to Hololens, followed your input and found info at the excellent page (unity docs): Unity - Manual: Stereo rendering

Changed the rendering method to Single Pass Instanced, but we still have a problem with the post-processing errors like @ramJat mentions above.
We saw in the docs that indeed the post-processing require “special attention” when switching to single pass rendering,
And here it’s getting too complicated… any ideas on how to disable/work with the post-processing in a way that we can build to Hololens?.
Thanks.

I am having the same problem as OP. This is not very fun.

it works fine if I don’t use the SRP

Can one of you supply a repro project I can look at? I’ve been trying to test Lightweight Render Pipeline on Hololens and also having a few troubles so I’d like to compare notes on what you guys are trying to what I am working on as well. This way, I can offer credible feedback to the SRP team on how people are using their feature.

Hi We use single pass instanced, as we make high use of instancing in shaders. Problem still is there in either of them though.

@BrandonFogerty @JasonCostanza is there any update on this?

bump, seriously nothing since august? Its annoying to see there is an optimized rendering pipeline that we cant even access!

Hi,

Got the same problem where application stops 2 seconds after being launched and cursor goes in Zz mode.

Here is a link to project.

I thought that testing the awesome LWRP feature on template scene would be a good start :slight_smile:

What I did is pretty simple:
Create a new project using LWRP template and Unity 2018.2.16f1 (LWRP package version is by default v2.0.6)
Switch settings to Hololens
Remove post process effects

Next are the full steps to repro.

Build Settings:
Switch to UWP platform
Set ‘Target Device’ to ‘Hololens’

Player Settings:
Add ‘SpatialPerception’ capability
Check ‘VR supported’
Set ‘Stereo Rendering Method’ to ‘Single Pass’

Quality Settings:
Set UWP quality level to ‘Very Low’

Scene:
Remove ‘Post-process Volume’ gameobject
Remove ‘Post Process Layer’ component from ‘Main Camera’
Set ‘Clear Flags’ of ‘Main Camera’ to ‘Solid Color’
Set ‘Background’ color of ‘Main Camera’ to #000000

Build

Visual Studio:
Open solution in VS 2017
Switch to ‘Release’, ‘x86’, ‘Device’
Deploy on Hololens using a wire

Let me know if you need more info or if this bug has already been adressed.

1 Like