View Issue Details

IDProjectCategoryView StatusLast Update
0004270NoesisGUIUnitypublic2026-01-20 19:40
Reporterg0nch0 Assigned Tojsantos  
PrioritynormalSeverityblock 
Status resolvedResolutionwon't fix 
Product Version3.2.8 
Summary0004270: Unity 2022.3.45 + HDRP 14 + Noesis 3.2.8 => ERROR
Description

After updating the Uniy package integration to 3.2.8 I see this error:

NoesisView.cs(1163,30): error CS0117: 'CustomPassVolume' does not contain a definition for 'RegisterUniqueGlobalCustomPass'

Looks like this function is not available in this version of HDRP (Unity 2022.3.45 + HDRP 14.0.11). I tried looking for an alternative with no luck. If I remove the line Noesis just doesn't appear when launching the game.

PlatformAny

Activities

jsantos

jsantos

2025-06-23 12:54

manager   ~0010859

Until I can find a better solution, the workaround is going back to 3.2.7 for HDRP. Just change the region #High Definition Render Pipeline with this one:

#region High Definition Render Pipeline
#if ENABLE_HDRP_PACKAGE
    // With a CustomPass we can control when the UI is rendered (for example before or after post process)
    // For using this class:
    //  1. Attach a 'Custom Pass Volume' to the camera
    //  2. Set 'Mode' to 'Camera'
    //  3. Set 'Target Camera' to the same camera
    //  4. Select 'Injection Point' (only 'Before Post Process' or 'After Post Process' makes sense)
    //  5. Add a Custom Pass of type 'NoesisCustomPass'
    //  6. Set 'Clear Flags' to 'Stencil'
    private class NoesisCustomPass: CustomPass
    {
        protected override bool executeInSceneView { get { return false; } }

        protected override void Execute(CustomPassContext ctx)
        {
            if (ctx.hdCamera.camera.TryGetComponent(out NoesisView view))
            {
                view.OnExecuteCustomPass(ctx.cmd);
            }
        }
    }

    private bool _usingCustomPass;

    private void BeginCameraRendering(ScriptableRenderContext context, Camera camera)
    {
        if (_camera == camera)
        {
            if (_uiView != null && _visible)
            {
                _commands.name = Profiling.RenderOffScreen;
                NoesisRenderer.RenderOffscreen(_uiView, _commands, true);

                context.ExecuteCommandBuffer(_commands);
                _commands.Clear();

                _usingCustomPass = false;
            }
        }
    }

    private void OnExecuteCustomPass(CommandBuffer commands)
    {
        if (!_usingCustomPass)
        {
            if (_uiView != null && _visible)
            {
                // This is always rendering to an intermediate texture
                bool flipY = !IsGL();

                commands.BeginSample(Profiling.RenderOnScreenSampler);
                NoesisRenderer.RenderOnscreen(_uiView, flipY, commands, true, _clearStencil);
                commands.EndSample(Profiling.RenderOnScreenSampler);
            }

            // EndCameraRendering is skipped
            _usingCustomPass = true;
        }
    }

    private void EndCameraRendering(ScriptableRenderContext context, Camera camera)
    {
        if (_camera == camera && !_usingCustomPass)
        {
            if (_uiView != null && _visible)
            {
                _commands.name = Profiling.RenderOnScreen;
                NoesisRenderer.RenderOnscreen(_uiView, FlipRender(), _commands, true, _clearStencil);

                context.ExecuteCommandBuffer(_commands);
                _commands.Clear();
            }
        }
    }
#endif
#endregion
jsantos

jsantos

2025-07-01 03:11

manager   ~0010889

Last edited: 2025-07-01 03:11

Right, please add RenderOnScreenSampler to the class Profiling:

    private static class Profiling
    {
        public static readonly CustomSampler UpdateSampler = CustomSampler.Create("Noesis.Update");
        public static readonly CustomSampler RenderOnScreenSampler = CustomSampler.Create("Noesis.RenderOnscreen");
        public static readonly string RegisterView = "Noesis.RegisterView";
        public static readonly string UnregisterView = "Noesis.UnregisterView";
        public static readonly string UpdateRenderTree = "Noesis.UpdateRenderTree";
        public static readonly string RenderOffScreen = "Noesis.RenderOffscreen";
        public static readonly string RenderOnScreen = "Noesis.RenderOnscreen";
        public static readonly string RenderTexture = "Noesis.RenderTexture";
    }

And change the like with !IsGL() to:

                bool flipY = SystemInfo.graphicsUVStartsAtTop;

Issue History

Date Modified Username Field Change
2025-06-21 00:12 g0nch0 New Issue
2025-06-23 12:48 jsantos Assigned To => jsantos
2025-06-23 12:48 jsantos Status new => assigned
2025-06-23 12:48 jsantos Target Version => 3.2.9
2025-06-23 12:54 jsantos Note Added: 0010859
2025-06-23 12:54 jsantos Status assigned => feedback
2025-07-01 02:01 g0nch0 Status feedback => assigned
2025-07-01 03:11 jsantos Note Added: 0010889
2025-07-01 03:11 jsantos Note Edited: 0010889
2025-07-01 03:12 jsantos Status assigned => feedback
2025-10-02 00:48 jsantos Target Version 3.2.9 => 3.2.10
2025-10-10 13:29 jsantos Category Unity3D => Unity
2025-10-20 18:25 jsantos Target Version 3.2.10 => 3.2.11
2026-01-20 19:32 jsantos Target Version 3.2.11 => 3.2.12
2026-01-20 19:40 jsantos Status feedback => resolved
2026-01-20 19:40 jsantos Resolution open => won't fix
2026-01-20 19:40 jsantos Target Version 3.2.12 =>