Using Unity 2022.3.12. in VR there is no problem with Single Pass enabled in the XR section of my HDRP asset. But DLSS only works if I disable single pass. This stinks cuz disabling single pass cuts my performance in half, and then DLSS just gets me back to the framerate I was getting with Single Pass enabled. I need help cuz I could get some great performance if I can do single pass with dlss. The error I get when I turn on DLSS at runtime with Single Pass enabled is roughly as follows:
1. ArgumentException: Texture was created with an invalid color format.
* at UnityEngine.Experimental. Rendering. RenderGraphModule.RenderGraphResourceRegistry.ValidateTextureDesc (UnityEngine.Experimental.Rendering.RenderGraphModule.TextureDesc& desc) [0x0001a] in.\Library\PackageCache\com.unity.render-pipelines.core@14.0.9\Runtime \RenderGraph\RenderGraphResourceRegistry.cs:527 at UnityEngine. Experimental.Rendering.RenderGraphModule.RenderGraphResourceRegistry.CreateTexture (UnityEngine. Experimental.Rendering.RenderGraphModule. TextureDesc& desc, System.Int32 transientPassIndex) [0x00001] in.\Library\PackageCache\com.unity.render-
* pipelines.core@14.0.9\Runtime\RenderGraph\RenderGraphResource Registry.cs:342 Rat UnityEngine. Experimental.Rendering.RenderGraphModule.RenderGraph.CreateTexture (UnityEngine.Experimental.Rendering. RenderGraphModule. TextureDesc& desc) [0x00001] in.\Library\PackageCache\com.unity.render-pipelines.core@14.0.9\Runtime\RenderGraph
* \RenderGraph.cs:482
* pat UnityEngine. Rendering.High Definition. DLSSPass.<CreateCameraResources>g_GetTmpViewXrTex|3_8 (UnityEngine.Experimental. Rendering.RenderGraphModule. TextureHandle& handle, UnityEngine.Rendering.HighDefinition.DLSSPass+<>c_DisplayClass3_08) [0x00040] in.\Library \PackageCache\com.unity.render-pipelines.high-definition@14.0.9\Runtime\RenderPipeline\RenderPass\DLSSPass.cs:71 UnityEngine.Rendering.High Definition.DLSSPass.<CreateCameraResources>g_CreateCopyNoXR|3_1 (UnityEngine. Rendering.High Definition.DLSSPass+ViewResourceHandles& input, UnityEngine.Rendering.High Definition.DLSSPass+ViewResourceHandles& newResources, 0x00037] in.\Library\PackageCache\com.unity.render-pipelines.high-definition@14.0.9\Runtime\RenderPipeline\RenderPass\DLSSPass.cs:79 in.\Library\PackageCache\com.unity.render-pipelines.high-definition@14.0.9\Runtime\RenderPipeline
* at UnityEngine.Rendering.High Definition.DLSSPass+<>c__DisplayClass3_08) [ builder, UnityEngine.Rendering.High Definition.DLSSPass+ViewResourceHandles& resources) [0x00065] Definition.HDCamera hdCamera,
* UnityEngine. Rendering.High Definition.DLSSPass.CreateCameraResources (UnityEngine.Rendering.High Definition.HDCamera camera, UnityEngine. Experimental. Rendering.RenderGraphModule. RenderGraph renderGraph,
* at UnityEngine.Experimental.Rendering.RenderGraphModule.RenderGraphBuilder (UnityEngine.Experimental. Rendering. RenderGraphModule.RenderGraph renderGraph, UnityEngine.Rendering.High
* \RenderPass\DLSSPass.cs:84 at UnityEngine. Rendering.High Definition.HDRenderPipeline.DoDLSSPass renderGraph, UnityEngine.Rendering.High Definition.HDCamera hdCamera, UnityEngine.Experimental.Rendering.RenderGraphModule. Texturettandle depthBuffer,
* UnityEngine.Experimental.Rendering.RenderGraphModule. TextureHandle source, UnityEngine.Experimental. Rendering. RenderGraphModule. TextureHandle depthBuffer, UnityEngine.Experimental.Rendering.RenderGraphModule.TextureHandle
* motionVectors,
Basically when I go to that method there’s an if conditional saying if the texture color format is none and the depth buffer is empty then throw that error. The DLSS pass code that is calling create texture (and throwing the error) is checking if it is single pass and that xr is enabled, hence why I don’t see this problem with single pass disabled. So far I’ve tried modifying the TextureXR.maxViews integer up and down (not for any particularly great reason), and messing with color formats in the render settings in the HDRP asset but to no avail. I’m kind of in the dark so any ideas for what to try I’d love to give it a chance.
Thanks ahead of time,
Using a Varjo xr3.