Unity 6 regressions for XR in HDRP are rejected with "won't fix" by QA

thanks, that’s great to hear. But the DLSS bug is at least equally as important, as DLSS is sooo vital to have good framerates in HDRP / VR, and this was working without issues with 2023.2.20. In Unity 6, it works, but only if the headset is activated before start, or if DLSS is activated after headset is activated, but breaks if headset gets activated when DLSS is active.

Hey, I saw the issue of offset in the commit message in Graphics repository; as it is mentioned in the message that the issue does not occur with CameraRelativeRendering switched off, I tried what happens with raytraced SSGI and raytraced SSR and voilà: Everything works fine with CameraRelativeRendering switched off. So I guess the fixes for ray tracing stuff are exactly the same as for APV.

@Jesper-Mortensen I had a look, and actually it’s really the same thing for all RTX related issues: In the file “RaytracingLightLoop.hlsl” there is a missing “ApplyCameraRelativeXR(posInput.positionWS);”; and with this, also the initial value needs to be stored and used for the APV sampling later on, exactly like the changes in LightLoop.hlsl you did. This solves nearly all RTX / VR related issues at once with 2 lines of code and one change.

1 Like

I submitted the fix to QA via bug reporting portal and hope it will get integrated soon. Should fix all RTX related issues, just 3 lines changed.
Hope I get paid next time I fix bugs in Unity.
This leaves only the very annoying DLSS bug. Please fix.

3 Likes

@oliverschnabel any insights? QA insists that DLSS won’t get fixed for XR, although this is a regression in Unity 6, and not really a core DLSS issue as it seems, as DLSS works fine if I literally turn it off and on again after XR has started. This should be really easy to fix, so I don’t understand the hesitation.

DLSS is needed to run HDRP with XR, as it greatly reduces rendering costs. We are stuck on 2023.2.20 because of this issue.

I certainly don’t blame Unity for “ignoring” VR with the HDRP renderer.
It’s almost beyond over-kill to use this renderer with VR.
The quality of ANY VR goggles is far behind the results offered by HDRP and there is NO benefit whatsoever in working on XR for this renderer. Stay with either the buit-in or maybe URP…? No one…no one will notice any difference if your game is even just good enough.

We had this discussion before, not sure what you want to achieve here. If you don’t have a use case for high quality VR, it does not mean that other use cases are same. And the argument with quality of VR headsets is complete nonsense.

5 Likes

Just trying to be practical. But if you are willing to wait for a Unity “fix” before progressing with your asset then all the best with your income source!
Just reckon that the devs in “Feel” have it damn right in their description of “URP,HDRP and render pipelines” on their Documentation. I think “fractured” was the term.
Why not simply release your game/asset in another renderer and see how many complain?

Why don’t you just scroll up and read our last discussion? Meanwhile it would be good to stay on topic here, which is NOT to migrate to URP, but to fix HDRP. If that’s not of interest to you, fine, but please respect that not every use case is like yours.

4 Likes

Yep. It is of interest to me.
How long will you wait, if that’s not a rude question?
Will your game be relevant by then?
All the very best !!!

Wait for what? We are selling our games already, and this very successful. That’s why we need continued support. Too hard to understand?

No need for rudeness.
Hopefully Unity will come to the ball and all will be well?
And look at the pig flying about.
Just loosen up mate…Time to move on from your constant grizzes and teeth gnashing at the Forum :slight_smile:

Sorry, but you’re the one being rude here. You are constantly posting trolling messages to derail the conversation and to try to discourage the OP into just giving up.

If you have nothing to add to the conversation, then the best thing you can do is move on.

5 Likes

Thanks Qleenie for this topic and your workaround.
We are using a similar setup for PCVR and also have an issue with DLSS.
Have you experienced the same one? Any news on that?

Error while building Render Graph.
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) 
ArgumentException: The passed in texture handle does not have a valid descriptor. (This is most commonly cause by the handle referencing a built-in texture such as the system back buffer.)
Parameter name: handle
UnityEngine.Rendering.RenderGraphModule.RenderGraphResourceRegistry.GetTextureResourceDesc (UnityEngine.Rendering.RenderGraphModule.ResourceHandle& handle, System.Boolean noThrowOnInvalidDesc) (at ./Library/PackageCache/com.unity.render-pipelines.core@cc4eb362a63a/Runtime/RenderGraph/RenderGraphResourceRegistry.cs:856)
UnityEngine.Rendering.RenderGraphModule.RenderGraph.GetTextureDesc (UnityEngine.Rendering.RenderGraphModule.TextureHandle texture) (at ./Library/PackageCache/com.unity.render-pipelines.core@cc4eb362a63a/Runtime/RenderGraph/RenderGraph.cs:753)
UnityEngine.Rendering.HighDefinition.UpscalerResources.<CreateCameraResources>g__GetTmpViewXrTex|5_0 (UnityEngine.Rendering.RenderGraphModule.TextureHandle& handle, UnityEngine.Rendering.HighDefinition.UpscalerResources+<>c__DisplayClass5_0& ) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@a74f453c3c0c/Runtime/RenderPipeline/RenderPass/UpscalerUtils.cs:225)
UnityEngine.Rendering.HighDefinition.UpscalerResources.<CreateCameraResources>g__CreateCopyNoXR|5_1 (UnityEngine.Rendering.HighDefinition.UpscalerResources+ViewResourceHandles& input, UnityEngine.Rendering.HighDefinition.UpscalerResources+ViewResourceHandles& newResources, UnityEngine.Rendering.HighDefinition.UpscalerResources+<>c__DisplayClass5_0& ) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@a74f453c3c0c/Runtime/RenderPipeline/RenderPass/UpscalerUtils.cs:236)
UnityEngine.Rendering.HighDefinition.UpscalerResources.CreateCameraResources (UnityEngine.Rendering.HighDefinition.HDCamera camera, UnityEngine.Rendering.RenderGraphModule.RenderGraph renderGraph, UnityEngine.Rendering.RenderGraphModule.RenderGraphBuilder builder, UnityEngine.Rendering.HighDefinition.UpscalerResources+ViewResourceHandles& resources) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@a74f453c3c0c/Runtime/RenderPipeline/RenderPass/UpscalerUtils.cs:241)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline.DoDLSSPass (UnityEngine.Rendering.RenderGraphModule.RenderGraph renderGraph, UnityEngine.Rendering.HighDefinition.HDCamera hdCamera, UnityEngine.Rendering.RenderGraphModule.TextureHandle source, UnityEngine.Rendering.RenderGraphModule.TextureHandle depthBuffer, UnityEngine.Rendering.RenderGraphModule.TextureHandle motionVectors, UnityEngine.Rendering.RenderGraphModule.TextureHandle biasColorMask) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@a74f453c3c0c/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs:930)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline.DoDLSSPasses (UnityEngine.Rendering.RenderGraphModule.RenderGraph renderGraph, UnityEngine.Rendering.HighDefinition.HDCamera hdCamera, UnityEngine.Rendering.DynamicResolutionHandler+UpsamplerScheduleType upsamplerSchedule, UnityEngine.Rendering.RenderGraphModule.TextureHandle source, UnityEngine.Rendering.RenderGraphModule.TextureHandle depthBuffer, UnityEngine.Rendering.RenderGraphModule.TextureHandle motionVectors) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@a74f453c3c0c/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs:899)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline.DoUpscalingAndAntiAliasing (UnityEngine.Rendering.RenderGraphModule.RenderGraph renderGraph, UnityEngine.Rendering.HighDefinition.HDCamera hdCamera, UnityEngine.Rendering.HighDefinition.HDRenderPipeline+CurrentUpsamplerData upsamplerDataData, UnityEngine.Rendering.RenderGraphModule.TextureHandle source, UnityEngine.Rendering.RenderGraphModule.TextureHandle depthBuffer, UnityEngine.Rendering.RenderGraphModule.TextureHandle motionVectors, UnityEngine.Rendering.RenderGraphModule.TextureHandle stencilBuffer, UnityEngine.Rendering.RenderGraphModule.TextureHandle depthBufferMipChain) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@a74f453c3c0c/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs:616)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline.RenderPostProcess (UnityEngine.Rendering.RenderGraphModule.RenderGraph renderGraph, UnityEngine.Rendering.HighDefinition.HDRenderPipeline+PrepassOutput& prepassOutput, UnityEngine.Rendering.RenderGraphModule.TextureHandle inputColor, UnityEngine.Rendering.RenderGraphModule.TextureHandle backBuffer, UnityEngine.Rendering.RenderGraphModule.TextureHandle uiBuffer, UnityEngine.Rendering.RenderGraphModule.TextureHandle afterPostProcessBuffer, UnityEngine.Rendering.RenderGraphModule.TextureHandle opticalFogTransmittance, UnityEngine.Rendering.CullingResults cullResults, UnityEngine.Rendering.HighDefinition.HDCamera hdCamera, UnityEngine.CubemapFace cubemapFace, System.Boolean postProcessIsFinalPass) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@a74f453c3c0c/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs:692)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline.RecordRenderGraph (UnityEngine.Rendering.HighDefinition.HDRenderPipeline+RenderRequest renderRequest, UnityEngine.Rendering.HighDefinition.AOVRequestData aovRequest, System.Collections.Generic.List`1[T] aovBuffers, System.Collections.Generic.List`1[T] aovCustomPassBuffers, UnityEngine.Rendering.ScriptableRenderContext renderContext, UnityEngine.Rendering.CommandBuffer commandBuffer) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@a74f453c3c0c/Runtime/RenderPipeline/HDRenderPipeline.RenderGraph.cs:349)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline.ExecuteWithRenderGraph (UnityEngine.Rendering.HighDefinition.HDRenderPipeline+RenderRequest renderRequest, UnityEngine.Rendering.HighDefinition.AOVRequestData aovRequest, System.Collections.Generic.List`1[T] aovBuffers, System.Collections.Generic.List`1[T] aovCustomPassBuffers, UnityEngine.Rendering.ScriptableRenderContext renderContext, UnityEngine.Rendering.CommandBuffer commandBuffer) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@a74f453c3c0c/Runtime/RenderPipeline/HDRenderPipeline.RenderGraph.cs:459)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline.ExecuteRenderRequest (UnityEngine.Rendering.HighDefinition.HDRenderPipeline+RenderRequest renderRequest, UnityEngine.Rendering.ScriptableRenderContext renderContext, UnityEngine.Rendering.CommandBuffer cmd, UnityEngine.Rendering.HighDefinition.AOVRequestData aovRequest) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@a74f453c3c0c/Runtime/RenderPipeline/HDRenderPipeline.cs:2835)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

never saw that. is this Unity 6?
DLSS works reliable with the workaround, also did a brief test on alpha 6.3, DLSS and VR seems to work fine there, too, probably even without workaround, and looks way better.

Thanks for answering!
Ok so we are dealing with something else :slight_smile:

Yes this is Unity 6000.0.48f and HDRP 17.0.4, even with your workaround
I’ll test on 6.2.

Nope still getting the error on 6.2. Well that’s another issue. I won’t spam this topic anymore :sweat_smile:

What are your settings with the DLSS? In your HDRP asset do you have dynamic resolution enabled? and then in the camera settings also enabled or do you enable it after a few seconds?

We’re trying to get it to work but sometimes we get a black screen,sometimes it just doesn’t do anything and sometimes it works. The main benefit for us is the Anti Aliasing that comes with the DLSS makes lines much less jittery and easier on the eyes so we can’t really just not use it.