Colibri GUI in the FinalComposition CompositorNode

Discussion area about developing with Ogre-Next (2.1, 2.2 and beyond)


CbbK
Gnoblar
Posts: 20
Joined: Sun Nov 22, 2020 3:29 pm
x 1

Colibri GUI in the FinalComposition CompositorNode

Post by CbbK »

Hi,
I'm having a specific issue when showing on screen an animated ("progress_bar_animated" : true) ColibriProgressBar, in debug mode with Direct3D 11 render system. If I'm not in debug, not in DirectX or no animations everything works fine. I tried Ogre 2.3 and Ogre 3.0 the issue is the same on both.
In my workspace I use a few different nodes that I enable/disable to apply full screen effects, like it's done in Sample_Postprocessing.
As I don't want this effects to be applied to the UI I set the Colibri pass in the FinalComposition, along with overlays :

Code: Select all

//Performs the final pass: Takes the temporary textures (created in SceneRenderingNode)
//and copies it to the actual RenderWindow
compositor_node FinalComposition
{
	in 0 rt_output
	in 1 rt_input

target rt_output
{
	pass render_quad
    {
		load { all dont_care }
		//Ignore the alpha channel
		material Ogre/Copy/4xFP32
		input 0 rt_input
	}
	
	pass render_scene
	{
		//skip_load_store_semantics true
		lod_update_list	off

		//Render Overlays
		overlays	on
		rq_first	254
		rq_last	255
	}
	
	pass custom colibri_gui
    {
		// Colibri doesn't have load/store semantics.
		// It appends itself to the previous pass'
    }
}
}

The error message when a ProgressBar is visible :

---------------------------

An exception has occured!

OGRE EXCEPTION(3:RenderingAPIException): D3D11 device cannot set rasterizer state
Error Description: ID3D11DeviceContext::DrawIndexedInstanced: The Shader Resource View in slot 1 of the Vertex Shader unit is using the Format (UNKNOWN). This format does not support 'Load' which is being used on the Resource by the shader. This mismatch is invalid if the shader actually uses the view (e.g. it is not skipped due to shader code branching).
ID3D11DeviceContext::DrawIndexedInstanced: The Shader Resource View in slot 1 of the Vertex Shader unit is using the Format (UNKNOWN). This format does not support 'Load' which is being used on the Resource by the shader. This mismatch is invalid if the shader actually uses the view (e.g. it is not skipped due to shader code branching).

in D3D11RenderSystem::_setHlmsMacroblock at RenderSystems\Direct3D11\src\OgreD3D11RenderSystem.cpp (line 2652)

OK

If I put the colibri_gui pass in the SceneRenderingNode it works (but I don't want it there), I believe as soon as a 3D element in displayed in the node (or simply in the 'previous' pass Colibri appends itself to?) it'll work because if I change rq_first/rq_last I can make the issue disappear (but everything has already been displayed and effects applied so I don't want anything more to be drawn at this point). I could probably set a workaround to make it work but I wanted to understand what's happening here, does it have to do with the 'Colibri doesn't have load/store semantics' ? I don't know what that means :/
Why does it work fine with other widgets then?
What can I do to solve this issue please?

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5551
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1402

Re: Colibri GUI in the FinalComposition CompositorNode

Post by dark_sylinc »

Hi!

Can you provide a small git diff to repro it in the samples, so I can take a look?

I could probably set a workaround to make it work but I wanted to understand what's happening here, does it have to do with the 'Colibri doesn't have load/store semantics' ?

Latest Colibri supports altering load store semantics on OgreNext >= 3.0. To test that theory:

Code: Select all

        pass custom colibri_gui
        {
            skip_load_store_semantics false

        profiling_id "Colibri GUI"
    }
CbbK
Gnoblar
Posts: 20
Joined: Sun Nov 22, 2020 3:29 pm
x 1

Re: Colibri GUI in the FinalComposition CompositorNode

Post by CbbK »

Thank you for your answer. I just tried again on Ogre v3.0 with skip_load_store_semantics false and the issue remains. I'll reproduce it on the sample as you asked and will send you the diff.

CbbK
Gnoblar
Posts: 20
Joined: Sun Nov 22, 2020 3:29 pm
x 1

Re: Colibri GUI in the FinalComposition CompositorNode

Post by CbbK »

So, I was able to reproduce the issue in the "MainDemo" example of Colibri. It appears to be even trickier than expected. When I just added Colibri on a separate node it didn't crash so I continued to dig and realised it happened when I load a v1 mesh with vertex animation, convert it to v2 and display it, with Colibri on a separate node, with shadows on!
If there's no shadows it works, if Colibri is on the same node it works, if mesh is loaded in v2 directly it works (but it doesn't contain vertex animation).

Now for the code :

Code: Select all

 bin/Data/Main.compositor | 186 ++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 160 insertions(+), 26 deletions(-)

diff --git a/bin/Data/Main.compositor b/bin/Data/Main.compositor
index 0c3db09..a1cf494 100644
--- a/bin/Data/Main.compositor
+++ b/bin/Data/Main.compositor
@@ -1,39 +1,173 @@
-
-compositor_node RenderingNode
+compositor_node_shadow ShadowMapShadowNode
 {
-    in 0 renderWindow
+        technique pssm
+
+        texture atlas		4096 4096 PFG_D32_FLOAT
+        texture tmpCubemap	1024 1024 PFG_R32_FLOAT cubemap depth_format PFG_D32_FLOAT
+
+        num_splits		3
+        pssm_lambda		0.95
+        //0000 0000 2048 2048
+        shadow_map 0 atlas uv 0.00 0.00 0.50 0.50 light 0 split 0
+        //0000 2048 2048 2048
+        shadow_map 1 atlas uv 0.00 0.50 0.50 0.50 light 0 split 1
+        //2048 0000 2048 2048
+        shadow_map 2 atlas uv 0.50 0.00 0.50 0.50 light 0 split 2
+
+        technique focused
+        //2048 2048 2048 1024
+        shadow_map 3 atlas uv 0.50 0.50 0.50 0.25 light 1
+        //2048 3072 2048 1024
+        shadow_map 4 atlas uv 0.50 0.75 0.50 0.25 light 2
 
-    target renderWindow
-    {
-        pass render_scene
+        target atlas
         {
-            load
-            {
-                all				clear
-                clear_colour	0.2 0.4 0.6 1
-            }
-            store
-            {
-                colour	store_or_resolve
-                depth	dont_care
-                stencil	dont_care
-            }
-            overlays	on
+                pass clear
+                {
+                        colour_value 1 1 1 1
+                }
         }
 
-        pass custom colibri_gui
+        shadow_map_target_type directional
         {
-            // True is the default value since 99% of the time
-            // we want to append ourselves to the previous pass.
-            skip_load_store_semantics true
+                shadow_map 0 1 2
+                {
+                        pass render_scene
+                        {
+                                                        rq_first	0
+                                                        rq_last		110
+                        }
+                }
+        }
 
-            profiling_id "Colibri GUI"
-            aspect_ratio_mode keep_width
+        shadow_map_target_type directional spot
+        {
+                shadow_map 3 4
+                {
+                        pass render_scene
+                        {
+                                                        rq_first	0
+                                                        rq_last		11
+                        }
+                }
+        }
+
+        shadow_map_target_type point
+        {
+                shadow_map_repeat 3 4
+                {
+                        target tmpCubemap +X : cubemap_target_shadow {}
+                        target tmpCubemap -X : cubemap_target_shadow {}
+                        target tmpCubemap +Y : cubemap_target_shadow {}
+                        target tmpCubemap -Y : cubemap_target_shadow {}
+                        target tmpCubemap +Z : cubemap_target_shadow {}
+                        target tmpCubemap -Z : cubemap_target_shadow {}
+
+                        shadow_map
+                        {
+                                pass render_quad
+                                {
+                                        material Ogre/DPSM/CubeToDpsm
+                                        input 0 tmpCubemap
+                                }
+                        }
+                }
         }
-    }
+}
+
+compositor_node SceneRenderingNode
+{
+	// rt0 is used to render the scene, rt1 is created now and will be used in next nodes (Lensflare, Distortion, VolumetricClouds, ...) like in Postprocessing.compositor from Ogre samples
+
+	texture rt0				target_width target_height PFG_RGBA8_UNORM_SRGB
+	texture rt1				target_width target_height PFG_RGBA8_UNORM_SRGB
+	texture depth_buffer	target_width target_height PFG_D32_FLOAT
+    
+	// @todo See Tutorial_ReconstructPosFromDepth from Ogre for a possible optimization, by copying the depth buffer instead of reading from it
+	rtv rt0
+	{
+		depth	depth_buffer
+	}
+
+	target rt0
+	{
+		pass render_scene
+		{
+			load
+			{
+				all				clear
+				clear_colour	0.3 0.3 0.3 1
+			}
+
+			//lod_update_list	off					//Turn Lod off?
+			shadows			ShadowMapShadowNode
+			visibility_mask		0x1
+			overlays		off
+			rq_first	0
+			rq_last		11
+		}
+		
+		pass render_scene
+		{
+			lod_update_list	off
+
+			//Render Overlays
+			overlays	off
+			rq_first	252
+			rq_last		254
+		}
+	}
+	
+	out 0 rt0
+	out 1 rt1
+	out 2 depth_buffer
+}
+
+//Performs the final pass: Takes the temporary textures (created in SceneRenderingNode)
+//and copies it to the actual RenderWindow
+compositor_node FinalComposition
+{
+	in 0 rt_output
+	// Take input texture #1 and use the local name "rtN" for reference in this scope
+	in 1 rtN
+
+	target rt_output
+	{
+		pass render_quad
+	    {
+			load { all dont_care }
+			//Ignore the alpha channel
+			material Ogre/Copy/4xFP32
+			input 0 rtN
+		}
+		
+		pass render_scene
+		{
+			skip_load_store_semantics false
+			lod_update_list	off
+
+			//Render Overlays
+			overlays	on
+			rq_first	254
+			rq_last		255
+		}
+		
+		pass custom colibri_gui
+        {
+			skip_load_store_semantics true
+			// Colibri doesn't have load/store semantics.
+			// It appends itself to the previous pass'
+			
+			profiling_id "Colibri GUI"
+        }
+	}
 }
 
 workspace ColibriGuiWorkspace
 {
-    connect_output					RenderingNode 0
+	//Connect last node's output #0 to FinalComposition's input #1
+	connect SceneRenderingNode 0 FinalComposition 1
+
+	//Connect RenderWindow to FinalComposition's input channel #0
+	connect_output FinalComposition 0	
 }

Code: Select all

 Examples/MainDemo/ColibriGuiGameState.cpp | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/Examples/MainDemo/ColibriGuiGameState.cpp b/Examples/MainDemo/ColibriGuiGameState.cpp
index ef37b3f..e89b0da 100644
--- a/Examples/MainDemo/ColibriGuiGameState.cpp
+++ b/Examples/MainDemo/ColibriGuiGameState.cpp
@@ -118,6 +118,34 @@ void ColibriGuiGameState::createScene01( void )
 	Ogre::Window *window = mGraphicsSystem->getRenderWindow();
 	Colibri::ColibriManager *colibriManager = getColibriManager();
 
+    Ogre::SceneManager *sceneManager = mGraphicsSystem->getSceneManager();
+
+    Ogre::Light *light = sceneManager->createLight();
+    light->setType(Ogre::Light::LT_DIRECTIONAL);
+    light->setDiffuseColour(1.0f, 1.0f, 1.0f);
+    light->setSpecularColour(1.0f, 1.0f, 1.0f);// color of 'reflected' light
+    light->setPowerScale(2.0f);
+    light->setAttenuation( 149.6f*40.0f, 1.0f, 0.0f, 0.0f);
+    light->setCastShadows(true);
+    sceneManager->getRootSceneNode()->createChildSceneNode()->attachObject(light);
+    light->setDirection(Ogre::Vector3::NEGATIVE_UNIT_X);
+
+    Ogre::MeshPtr v2Mesh = Ogre::MeshManager::getSingleton().getByName("BE2_ReverseThrusterV2");
+    Ogre::v1::MeshPtr v1Mesh;
+    if (!v2Mesh) {
+        Ogre::v1::MeshPtr v1Mesh = Ogre::v1::MeshManager::getSingleton().load("BE2_ReverseThrusterV1.mesh",
+                                                                              Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
+                                                                              Ogre::v1::HardwareBuffer::HBU_STATIC,
+                                                                              Ogre::v1::HardwareBuffer::HBU_STATIC);
+        v2Mesh = Ogre::MeshManager::getSingleton().createByImportingV1("BE2_ReverseThrusterV2",
+                                                                       Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
+                                                                       v1Mesh.get(), true, true, true, true);
+    }
+
+    Ogre::Item *thrustReverser = sceneManager->createItem(v2Mesh);
+    Ogre::SceneNode *thrustReverser1 = sceneManager->getRootSceneNode()->createChildSceneNode(Ogre::SCENE_DYNAMIC, Ogre::Vector3::ZERO);
+    thrustReverser1->attachObject(thrustReverser);
+
 	const float aspectRatioColibri =
 		static_cast<float>( window->getHeight() ) / static_cast<float>( window->getWidth() );
 	colibriManager->setCanvasSize( Ogre::Vector2( 1920.0f, 1920.0f * aspectRatioColibri ),

And you can download the mesh, it's material file and texture here :
https://we.tl/t-KI6PWw7kFF

Thank you

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5551
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1402

Re: Colibri GUI in the FinalComposition CompositorNode

Post by dark_sylinc »

I can't apply the patch file. It doesn't appear to be a valid diff.

Please upload the output of:

Code: Select all

git diff > patch.diff
CbbK
Gnoblar
Posts: 20
Joined: Sun Nov 22, 2020 3:29 pm
x 1

Re: Colibri GUI in the FinalComposition CompositorNode

Post by CbbK »

There you go

Code: Select all

diff --git a/Examples/MainDemo/ColibriGuiGameState.cpp b/Examples/MainDemo/ColibriGuiGameState.cpp
index ef37b3f..e89b0da 100644
--- a/Examples/MainDemo/ColibriGuiGameState.cpp
+++ b/Examples/MainDemo/ColibriGuiGameState.cpp
@@ -118,6 +118,34 @@ void ColibriGuiGameState::createScene01( void )
 	Ogre::Window *window = mGraphicsSystem->getRenderWindow();
 	Colibri::ColibriManager *colibriManager = getColibriManager();
 
+    Ogre::SceneManager *sceneManager = mGraphicsSystem->getSceneManager();
+
+    Ogre::Light *light = sceneManager->createLight();
+    light->setType(Ogre::Light::LT_DIRECTIONAL);
+    light->setDiffuseColour(1.0f, 1.0f, 1.0f);
+    light->setSpecularColour(1.0f, 1.0f, 1.0f);// color of 'reflected' light
+    light->setPowerScale(2.0f);
+    light->setAttenuation( 149.6f*40.0f, 1.0f, 0.0f, 0.0f);
+    light->setCastShadows(true);
+    sceneManager->getRootSceneNode()->createChildSceneNode()->attachObject(light);
+    light->setDirection(Ogre::Vector3::NEGATIVE_UNIT_X);
+
+    Ogre::MeshPtr v2Mesh = Ogre::MeshManager::getSingleton().getByName("BE2_ReverseThrusterV2");
+    Ogre::v1::MeshPtr v1Mesh;
+    if (!v2Mesh) {
+        Ogre::v1::MeshPtr v1Mesh = Ogre::v1::MeshManager::getSingleton().load("BE2_ReverseThrusterV1.mesh",
+                                                                              Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
+                                                                              Ogre::v1::HardwareBuffer::HBU_STATIC,
+                                                                              Ogre::v1::HardwareBuffer::HBU_STATIC);
+        v2Mesh = Ogre::MeshManager::getSingleton().createByImportingV1("BE2_ReverseThrusterV2",
+                                                                       Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,
+                                                                       v1Mesh.get(), true, true, true, true);
+    }
+
+    Ogre::Item *thrustReverser = sceneManager->createItem(v2Mesh);
+    Ogre::SceneNode *thrustReverser1 = sceneManager->getRootSceneNode()->createChildSceneNode(Ogre::SCENE_DYNAMIC, Ogre::Vector3::ZERO);
+    thrustReverser1->attachObject(thrustReverser);
+
 	const float aspectRatioColibri =
 		static_cast<float>( window->getHeight() ) / static_cast<float>( window->getWidth() );
 	colibriManager->setCanvasSize( Ogre::Vector2( 1920.0f, 1920.0f * aspectRatioColibri ),
diff --git a/bin/Data/Main.compositor b/bin/Data/Main.compositor
index 0c3db09..a1cf494 100644
--- a/bin/Data/Main.compositor
+++ b/bin/Data/Main.compositor
@@ -1,39 +1,173 @@
-
-compositor_node RenderingNode
+compositor_node_shadow ShadowMapShadowNode
 {
-    in 0 renderWindow
+        technique pssm
+
+        texture atlas		4096 4096 PFG_D32_FLOAT
+        texture tmpCubemap	1024 1024 PFG_R32_FLOAT cubemap depth_format PFG_D32_FLOAT
+
+        num_splits		3
+        pssm_lambda		0.95
+        //0000 0000 2048 2048
+        shadow_map 0 atlas uv 0.00 0.00 0.50 0.50 light 0 split 0
+        //0000 2048 2048 2048
+        shadow_map 1 atlas uv 0.00 0.50 0.50 0.50 light 0 split 1
+        //2048 0000 2048 2048
+        shadow_map 2 atlas uv 0.50 0.00 0.50 0.50 light 0 split 2
+
+        technique focused
+        //2048 2048 2048 1024
+        shadow_map 3 atlas uv 0.50 0.50 0.50 0.25 light 1
+        //2048 3072 2048 1024
+        shadow_map 4 atlas uv 0.50 0.75 0.50 0.25 light 2
 
-    target renderWindow
-    {
-        pass render_scene
+        target atlas
         {
-            load
-            {
-                all				clear
-                clear_colour	0.2 0.4 0.6 1
-            }
-            store
-            {
-                colour	store_or_resolve
-                depth	dont_care
-                stencil	dont_care
-            }
-            overlays	on
+                pass clear
+                {
+                        colour_value 1 1 1 1
+                }
         }
 
-        pass custom colibri_gui
+        shadow_map_target_type directional
         {
-            // True is the default value since 99% of the time
-            // we want to append ourselves to the previous pass.
-            skip_load_store_semantics true
+                shadow_map 0 1 2
+                {
+                        pass render_scene
+                        {
+                                                        rq_first	0
+                                                        rq_last		110
+                        }
+                }
+        }
 
-            profiling_id "Colibri GUI"
-            aspect_ratio_mode keep_width
+        shadow_map_target_type directional spot
+        {
+                shadow_map 3 4
+                {
+                        pass render_scene
+                        {
+                                                        rq_first	0
+                                                        rq_last		11
+                        }
+                }
+        }
+
+        shadow_map_target_type point
+        {
+                shadow_map_repeat 3 4
+                {
+                        target tmpCubemap +X : cubemap_target_shadow {}
+                        target tmpCubemap -X : cubemap_target_shadow {}
+                        target tmpCubemap +Y : cubemap_target_shadow {}
+                        target tmpCubemap -Y : cubemap_target_shadow {}
+                        target tmpCubemap +Z : cubemap_target_shadow {}
+                        target tmpCubemap -Z : cubemap_target_shadow {}
+
+                        shadow_map
+                        {
+                                pass render_quad
+                                {
+                                        material Ogre/DPSM/CubeToDpsm
+                                        input 0 tmpCubemap
+                                }
+                        }
+                }
         }
-    }
+}
+
+compositor_node SceneRenderingNode
+{
+	// rt0 is used to render the scene, rt1 is created now and will be used in next nodes (Lensflare, Distortion, VolumetricClouds, ...) like in Postprocessing.compositor from Ogre samples
+
+	texture rt0				target_width target_height PFG_RGBA8_UNORM_SRGB
+	texture rt1				target_width target_height PFG_RGBA8_UNORM_SRGB
+	texture depth_buffer	target_width target_height PFG_D32_FLOAT
+    
+	// @todo See Tutorial_ReconstructPosFromDepth from Ogre for a possible optimization, by copying the depth buffer instead of reading from it
+	rtv rt0
+	{
+		depth	depth_buffer
+	}
+
+	target rt0
+	{
+		pass render_scene
+		{
+			load
+			{
+				all				clear
+				clear_colour	0.3 0.3 0.3 1
+			}
+
+			//lod_update_list	off					//Turn Lod off?
+			shadows			ShadowMapShadowNode
+			visibility_mask		0x1
+			overlays		off
+			rq_first	0
+			rq_last		11
+		}
+		
+		pass render_scene
+		{
+			lod_update_list	off
+
+			//Render Overlays
+			overlays	off
+			rq_first	252
+			rq_last		254
+		}
+	}
+	
+	out 0 rt0
+	out 1 rt1
+	out 2 depth_buffer
+}
+
+//Performs the final pass: Takes the temporary textures (created in SceneRenderingNode)
+//and copies it to the actual RenderWindow
+compositor_node FinalComposition
+{
+	in 0 rt_output
+	// Take input texture #1 and use the local name "rtN" for reference in this scope
+	in 1 rtN
+
+	target rt_output
+	{
+		pass render_quad
+	    {
+			load { all dont_care }
+			//Ignore the alpha channel
+			material Ogre/Copy/4xFP32
+			input 0 rtN
+		}
+		
+		pass render_scene
+		{
+			skip_load_store_semantics false
+			lod_update_list	off
+
+			//Render Overlays
+			overlays	on
+			rq_first	254
+			rq_last		255
+		}
+		
+		pass custom colibri_gui
+        {
+			skip_load_store_semantics true
+			// Colibri doesn't have load/store semantics.
+			// It appends itself to the previous pass'
+			
+			profiling_id "Colibri GUI"
+        }
+	}
 }
 
 workspace ColibriGuiWorkspace
 {
-    connect_output					RenderingNode 0
+	//Connect last node's output #0 to FinalComposition's input #1
+	connect SceneRenderingNode 0 FinalComposition 1
+
+	//Connect RenderWindow to FinalComposition's input channel #0
+	connect_output FinalComposition 0	
 }
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5551
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1402

Re: Colibri GUI in the FinalComposition CompositorNode

Post by dark_sylinc »

I can't repro the bug on latest OgreNext 4.0.

This is what I get:

I see that you seem to be using a custom build of Colibri, as the patch failed to apply in the Compositor and there were references to commit hashes that don't exist in the official repo. Perhaps that's the cause?

Alternatively it could be that it is something that was fixed in 4.0.

CbbK
Gnoblar
Posts: 20
Joined: Sun Nov 22, 2020 3:29 pm
x 1

Re: Colibri GUI in the FinalComposition CompositorNode

Post by CbbK »

Weird, I don't have any changes made on Colibri and use your git repo. My version was not up to date though so I updated it.
I did a refull rebuild of Ogre deps, Ogre Next and Colibri on their main branches, MSVC 2022 :

Code: Select all

---------------------------
An exception has occured!
---------------------------
OGRE EXCEPTION(0:RenderingAPIException): Error calling Map: ID3D11DeviceContext::DrawIndexedInstanced: The Shader Resource View in slot 1 of the Vertex Shader unit is using the Format (UNKNOWN). This format does not support 'Load' which is being used on the Resource by the shader. This mismatch is invalid if the shader actually uses the view (e.g. it is not skipped due to shader code branching).
 in D3D11CompatBufferInterface::map at ogre-next\RenderSystems\Direct3D11\src\Vao\OgreD3D11CompatBufferInterface.cpp (line 77)
---------------------------
OK   
---------------------------

The file has changed here, src\Vao\OgreD3D11CompatBufferInterface.cpp (line 77), it was src\OgreD3D11RenderSystem.cpp (line 2652). Can it be a clue?

User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5551
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1402

Re: Colibri GUI in the FinalComposition CompositorNode

Post by dark_sylinc »

The errors suggests some stale state being carried over to the wrong place.

Have you tried building against latest OgreNext 4.0 (i.e. master branch) ?

CbbK
Gnoblar
Posts: 20
Joined: Sun Nov 22, 2020 3:29 pm
x 1

Re: Colibri GUI in the FinalComposition CompositorNode

Post by CbbK »

Unfortunately yes the issue is the same with a fresh build of Ogre Next on master branch.