Possible issue with Visual Studio 2019 - 16.9.0 and multiple windows cinder apps

Hey Embers,

I’ve run into an issue that hints at problems with the latest version of Visual Studio and Cinder. My multi window project appears to end up in an infinite loop, or freezing on line 280 calling mImpl->swapBuffers(); in RendererGl.cpp. For some reason the issue only presents itself when compiling a Debug build, Release runs fine. I see no errors or exceptions - just the program seizing up.

I checked out an earlier version of my source that I’m pretty sure ran fine in debug mode, and same issue, so my current theory is something’s been done in the recent Visual Studio build.

Going to try checking out the latest Cinder from master and run the base projects to see if I can replicate the behavior.


I played around with the code. Removed things, added things, and eventually things worked. As I started turning back on things I had turned off, it just kept working. I’m clueless.

Anyone have any previous issues with hanging / freezing at swapbuffers…?!

Here is someone articulating a lesson I was forced to learn a long time ago. The title is the message if you don’t have 90 minutes to waste on a rant.

Sorry it’s not a real answer.

Wow, how did he turn that into a 90 minute rant. I stopped after 10 minutes or so and he still had the SomethingWentWrong.png screenshot.

FWIW I’ve indeed run into mysterious unexplainable runtime errors like that before, usually when explicitly updating some dev tool or dependency - it happens. I just have a pretty good routine of cleaning all build directories and doing fresh builds from there.

If you’re not updating your dev tools I think you’re missing out - the newer versions are constantly seeing improvements. Just be prepared to have to do a fresh build when you spot these annoying and seemingly random crashes.

It’s funny how things keep going wrong. It’s nice to see someone’s day to day experience with software matching mine, I was starting to think it was me :wink:

Obviously never updating is slightly facetious, but I try and tie a project to a VS version and never update during active development. I’ll also try and keep that version around for rebuilding if there’s a long tail / support contract too. I’ve just been burnt too many times.

As I get older I prefer to spend what motivation I have left writing actual code rather than fighting my tools and removing those type of headaches has become a matter of necessity :wink:

I stopped not long after 1:28 in that video when the dude says that it’s the first time Microsoft has ever listened to anything from someone trying to give them feedback. Sigh.

Hopefully he’s using hyperbole, but I doubt it, as he then continues to claim that usually updates just make tool worse. Cynicism at its best. He could state these opinions in a much more productive manner, but that’s one of my personal pet peeves.

That being said - he has a good point regarding being wary of updating tools before completing a project. He should change the title of that video to that sentiment, as the current one of “Never, ever update your development tools. Ever” is just terrible advice.

In other words, I agree @lithium that when possible, keep the tools the same throughout development. But both at work and at home my projects span years making this approach untenable. And yeah, it really sucks having to divert already scarce development time into fixing tools, rather than improving code. Boo. Boo to that.

Small update. It would appear the issue is tied to having the windows spawn on separate monitors. Spawn them on the same - no probs, spawn them on two different ones - freeze. If I get more time - I’ll try to confirm the behavior on the basic Cinder multi window app.

Are both displays using the same GPU?

Yes - but a recent change is that one of the monitors now employs g-sync while the other does not.