[Solved] CEGUI initialisation causes flickering (ogre 2.0)

For help with general CEGUI usage:
- Questions about the usage of CEGUI and its features, if not explained in the documentation.
- Problems with the CMAKE configuration or problems occuring during the build process/compilation.
- Errors or unexpected behaviour.

Moderators: CEGUI MVP, CEGUI Team

jjonj
Not too shy to talk
Not too shy to talk
Posts: 28
Joined: Fri Mar 21, 2014 22:11

[Solved] CEGUI initialisation causes flickering (ogre 2.0)

Postby jjonj » Tue Jul 28, 2015 23:13

Hey again, sorry for being a bother recently!

I'm back with another issue that have been occurring since my upgrade to ogre 2.0.
Initially I had thought this was an ogre problem and thus I posted on their forums two months ago: http://www.ogre3d.org/forums/viewtopic.php?f=2&t=83461 but no one seemed able to help and I have now identified that it is a cegui initialization thing.

I previously thought we had found a temporary workaround as enabling FSAA in the ogre config prevented the flickering on my computer, but this does not work for several others.

The issue did NOT occur with Ogre 1.8 and CEGUI 0.8.3
The issue DOES occur with ogre 2.0 and commits 40d85612c22c and 0de4973e25fb and also the unofficial version of cegui from opentechengine commit 6f00952d31

To confirm that CEGUI was the reason for the flickering, i created a special branch with everything CEGUI disabled:
https://github.com/Revolutionary-Games/ ... ee-version
which does not have the flickering issue.

Now to identify the exact issue I was planning to enable CEGUI features line by line to find the cause of the flicker but already at the very first initialization function: https://github.com/Revolutionary-Games/ ... e.cpp#L330 the flickering begun.
(I uncommented the necessary includes and that one line to confirm)

Note that this specific branch uses the opentechengine commit 6f00952d31 but the issue is identical in the official commits.

I tried digging through CEGUI source code but to no avail. I also tried manual creation of the renderer.

I read through previous topics:
viewtopic.php?t=6325
http://cegui.org/forum/viewtopic.php?t=6325&start=15
but those problems seem to be focused on input perhaps being to blame, but in this latest flicker reproduction I had all injection disabled.

CEGUI Log: http://pastebin.com/hdwTTXuD

A video of the flickering: https://www.youtube.com/watch?v=S8snvQ8 ... e=youtu.be

Hope you might have some idea what might be to blame?

I understand that the commits I've been using are not part of official releases and may be unstable which could be causing the issues. Ogre 2.0 isn't even officially released. So I understand if may not be able to provide sufficient assistance.

Thank you!
Last edited by jjonj on Sun Aug 09, 2015 21:34, edited 1 time in total.

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby Ident » Thu Jul 30, 2015 17:43

Try to deactivate all ARS (autorendering surfaces) for all windows you use. Do you notice any difference? I used default branch with CEGUI and for me the only part that wa flickering was the Window that had ARS. Since you probably use CEGUI windows for the full screen this might have the effect you see.

Please tell me if setting all ARS to false (framewindows have it on by default, the other windows shouldnt unless specified in the LNF files) changes anything for you.
CrazyEddie: "I don't like GUIs"

jjonj
Not too shy to talk
Not too shy to talk
Posts: 28
Joined: Fri Mar 21, 2014 22:11

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby jjonj » Thu Jul 30, 2015 21:24

In the above described example, i produce the flickering by just initializing cegui with the bootstrap function without ever creating or using any windows. But I tried creating root and disabling auto rendering, such that the only cegui code I have is:

Code: Select all

    CEGUI::OgreRenderer::bootstrapSystem();
    CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();
    CEGUI::Window* myRoot = wmgr.createWindow( "DefaultWindow", "root" );
    myRoot->setUsingAutoRenderingSurface(false);
    CEGUI::System::getSingleton().getDefaultGUIContext().setRootWindow( myRoot );

but the flickering still occurs :(

Do you have any other ideas? or any additional information I can provide?

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby Ident » Thu Jul 30, 2015 21:45

• I didn't mean full-screen mode for your application host window but that a window of CEGUI would be covering the entire application window.
• If you didn't load any layouts etc, what is the GUI menu that shown made in? Is that not made with CEGUI?

If the bootstrap function alone causes this then the issue must lie somewhere in the OgreRenderer. The OgreRenderers currently in use for 2.0 were user contributions. It is not unlikely there are problems. Which CEGUI branch did you use for your application? I remember there were multiple ways of rendering CEGUI, one uses Overlays, the other Compositor(?) or something like that. The issue might be related to this feature of Ogre and might actually not be related to CEGUI, or the OgreRenderer might be configured wrong. It is really hard to tell for me right now and I have no resources to check this now myself ):
CrazyEddie: "I don't like GUIs"

jjonj
Not too shy to talk
Not too shy to talk
Posts: 28
Joined: Fri Mar 21, 2014 22:11

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby jjonj » Thu Jul 30, 2015 22:26

If you didn't load any layouts etc, what is the GUI menu that shown made in? Is that not made with CEGUI?

Ah my bad, I didn't make myself properly clear. Before posting here i tried to reduce the problem with the flickering, so my plan was to disable all of CEGUI completely, which I did and the flickering was gone, this made the program not have any gui at all ofc, and a simply blue background is displayed instead using pure ogre. Then I planned to slowly turn on parts of the CEGUI code to figure out what was causing the flickering, but already with the very first function (the bootstrap function) the flickering started.
The video I have linked above is before cegui was disabled.
Which CEGUI branch did you use for your application?


I've tried a couple: commits 40d85612c22c and 0de4973e25fb from the default branch and also the unofficial version of cegui from opentechengine commit 6f00952d31

there were multiple ways of rendering CEGUI, one uses Overlays, the other Compositor(?)

hen I was looking through the CEGUI bootstrapping function I found that we we're using something similar to this:

Code: Select all

Ogre::CompositorManager2* manager = Ogre::Root::getSingleton().getCompositorManager2();
CEGUI::OgreRenderer& renderer = CEGUI::OgreRenderer::create();
CEGUI::OgreResourceProvider* rp = new CEGUI::OgreResourceProvider();
CEGUI::OgreImageCodec* ic = new CEGUI::OgreImageCodec();
CEGUI::System::create(renderer, rp, static_cast<CEGUI::XMLParser*>(0), ic);
Ogre::CompositorWorkspaceDef* templatedworkspace =
manager->addWorkspaceDefinition("CEGUI_workspace");


Maybe I can try and look at some of the other initialisation methods and see if I can try something different.
Thanks for your help anyhow with however much assistance you can provide

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby Ident » Sat Aug 01, 2015 16:31

Could it be related to the compositors feature of Ogre? Some conflict or overlap? Or a Ogre bug?
CrazyEddie: "I don't like GUIs"

jjonj
Not too shy to talk
Not too shy to talk
Posts: 28
Joined: Fri Mar 21, 2014 22:11

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby jjonj » Sat Aug 01, 2015 20:18

I very much so verified that it was related to the compositor since when I changed

Code: Select all

pCompositorManager->createBasicWorkspaceDef(workspaceName.getFriendlyText(), Ogre::ColourValue::Black);

to

Code: Select all

pCompositorManager->createBasicWorkspaceDef(workspaceName.getFriendlyText(), Ogre::ColourValue::White);

The flickering became white instead of black.

I really need this issue resolved somehow, atm I'm trying some different ogre commits and branches but cegui doesn't compile with some of them, I imagine it isn't quite compatible with all of them yet.

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby Ident » Sat Aug 01, 2015 20:26

What happens if you don't do anything with compositors in YOUR code and start cegui up? Still flickering? If no then this must be some collision that can probably be resolved if you ask on the Ogre forum about compositors in 2.0 and how this could have been caused. I didn't look into compositors at all yet so I have not the slightest idea currently...

Regarding other branch's code. We got different contributions for v0-8 and default branch for OgreRenderer. Forget v0, it only has v0-8's changes in that respect. It might be useful to check the OgreRenderer of the other branch and compare what is done differently there for v2.0. Maybe that helps.
CrazyEddie: "I don't like GUIs"

jjonj
Not too shy to talk
Not too shy to talk
Posts: 28
Joined: Fri Mar 21, 2014 22:11

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby jjonj » Sat Aug 01, 2015 21:23

What happens if you don't do anything with compositors in YOUR code and start cegui up?

I can't get a simple program to displaying anything but a black screen unless I use compositors. Whether that's me being a poor ogre user or compositors being required, I'm not quite sure.


Regarding other branch's code. We got different contributions for v0-8 and default branch for OgreRenderer. Forget v0, it only has v0-8's changes in that respect. It might be useful to check the OgreRenderer of the other branch and compare what is done differently there for v2.0. Maybe that helps.

I'm not entirely sure i understand what you mean here, but if 0.8 and default has different ogrerenderer code, then I should try compiling with 0.8 as well.

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby Ident » Sat Aug 01, 2015 21:36

Black screen in Ogre is fine. We only care about CEGUI not flickering for now . CEGUI should of course be rendered, thats what I care about currently. The idea is to then add things step by step and see when it starts flickering.




Sure try 0.8, it is the stable branch after all anyways and therefore better to use.
CrazyEddie: "I don't like GUIs"

jjonj
Not too shy to talk
Not too shy to talk
Posts: 28
Joined: Fri Mar 21, 2014 22:11

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby jjonj » Sat Aug 01, 2015 23:24

Suddenly I'm having strange linking problems.

I assumed with ogre being black that nothing could be rendered, I'll be busy tomorrow but I'll try your suggestion on monday and see if I can get cegui to render anything without compositors.
Thanks for you help again!

jjonj
Not too shy to talk
Not too shy to talk
Posts: 28
Joined: Fri Mar 21, 2014 22:11

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby jjonj » Sun Aug 02, 2015 23:17

Alriighty then

I tried CEGUI 0.8 branch, and the flickering isn't occuring but the gui isn't showing up at all (just transparent), which I guess isn't too surprising since the ogre 2.0 support is only(?) in the default branch.
We used to use 0.8 before we upgraded to ogre 2.0, but when Henri Hyyryläinen came to help us upgrade to ogre 2.0, he also upgraded CEGUI to default which was the source of the flickering (only on windows, so he didn't notice initially).
I knew Henri Hyyryläinen had commited a bugfix to CEGUI, but I had no idea he had been so involved with CEGUI in general for the past year and a half, and it seems like he was the one adding the initial ogre 2.0 support and probably the person you referenced above.
While he showed great interest in helping us (Thrive) in the future, he can't help now though, as he is doing his military service for the next 9 months.
Don't know where I'm going with that though =P

I'll try the rendering of CEGUI without compositors next, using the default branch.

jjonj
Not too shy to talk
Not too shy to talk
Posts: 28
Joined: Fri Mar 21, 2014 22:11

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby jjonj » Mon Aug 03, 2015 00:27

I'm surprised to find that CEGUI does render without any compositor stuff enabled and that the flickering still does not occur.
So we got, Pick two: Display ogre stuff - Display GUI - No flickering. but not all three yet =/

I'll try and research if it's possible to get ogre to render without the compositors

EDIT: hhyyrylainen made a few suggestions back in may for potential reasons of the flickering that I had forgotten about:
This maybe an issue with CEGUI's Ogre 2.0 renderer which uses ogre workspaces to render at the right time. Perhaps the workspace priority doesn't work correctly which causes flickering.

Oh, and ogre viewports could also be a cause, as they don't have a rendering order anymore.

Back then I tried some suggestions he made, but none of them we're successful, but those comments seem relevant again.

User avatar
Ident
CEGUI Team
Posts: 1998
Joined: Sat Oct 31, 2009 13:57
Location: Austria

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby Ident » Mon Aug 03, 2015 08:06

Could you be so kind to make a bitbucket ticket in the issue tracker and put all this information including the quotes there, so this is at least not forgotten in the future? You can also reference from ticket to here and from here to ticket.

Also good to know what happened to henri, hadn't seen him in a while in IRC etc ;)
I remember there was another contribution for v0-8. Are you sure v0-8 has no 2.0 support?

Found it: https://bitbucket.org/cegui/cegui/pull- ... -with/diff
There was another PR later on to fix some D3D11 stuff.
CrazyEddie: "I don't like GUIs"

jjonj
Not too shy to talk
Not too shy to talk
Posts: 28
Joined: Fri Mar 21, 2014 22:11

Re: CEGUI initialisation causes flickering (ogre 2.0)

Postby jjonj » Mon Aug 03, 2015 18:32

I created a ticket here:
https://bitbucket.org/cegui/cegui/issue ... -only-with
I left the severity at Major, but I'm sure you can downgrade it if appropriate.

Code: Select all

Are you sure v0-8 has no 2.0 support?


I'm not, the reason that has been my assumption is that Henri Hyyryläinen have added a lot of commits related to ogre 2.0 on the default branch, including ones that seem to add the very basics to make it work, e.g.
https://bitbucket.org/cegui/cegui/commi ... 2d8eaa6792
and those commits don't appear in the 0.8 branch (at least not on the same dates). But maybe they're just merged in?

Although looking at the ogre renderer.cpp in the 0.8 source, it does have the compositor code there.

I can try and mess around a bit with 0.8 and see if i can get the GUI to show up (currently invisible/transparent/not showing) but I'm not quite sure where to start.
Last edited by jjonj on Mon Aug 03, 2015 18:51, edited 2 times in total.


Return to “Help”

Who is online

Users browsing this forum: No registered users and 13 guests