GithubHelp home page GithubHelp logo

Comments (13)

utz82 avatar utz82 commented on May 29, 2024 2

So this problem is not related to an old version of liballegro, after all! Who'd have thought.
Anyway, I've committed some changes... with that, you can now add the following line to your settings.ini:
SIMPLEGFXBUFFER=false
which sets ALLEGRO_SINGLE_BUFFER = 1. It's not ideal because this type of rendering is very slow, but as mentioned, this is most likely an Allegro bug, so the proper fix must come from their side.

nonepetrovich, does this solve the problem for you as well?

from bintracker-prototype.

utz82 avatar utz82 commented on May 29, 2024

Yes, this is most likely an Allegro5 problem, but nevertheless bintracker should have a work-around for this.

Ok, I tweaked the rendering loop a bit. Could you pull the latest version from the repo and see if anything changed for you? It will probably not solve the problem, but there should be some impact. For now I just want to see if I'm on the right track (because I cannot reproduce this problem on my own machine, so I need your help).

from bintracker-prototype.

echo2modules avatar echo2modules commented on May 29, 2024

Okay, now the screen doesn't flicker, but I can't interact with patterns. I can only open file opening menu and save the track but I can't edit anything nor play any track. When I open a track, it shows pattern contents like in normal state, but yet I can't change anything.
I think manual installation of allegro5 could solve the problem, but i'll keep AUR version so you can fix the playback problem.

from bintracker-prototype.

utz82 avatar utz82 commented on May 29, 2024

Alright, attempted another tweak. Please pull and test again.
If this doesn't help, another idea would be to experiment with the default FPS parameter in gui.h:86, changing it to something like (1.0f / 30.0f).

from bintracker-prototype.

echo2modules avatar echo2modules commented on May 29, 2024

Same thing.
deepinscreenshot_bintracker_20171006192126
deepinscreenshot_bintracker_20171006192151
With FPS 1.0f/30.0f it just flickers more frequently.

from bintracker-prototype.

utz82 avatar utz82 commented on May 29, 2024

Hmm, that's too bad. Ok, time to pull out some bigger guns, it seems.
In the meantime, could you post some info for me, please?

  1. Allegro version
  2. output of glxinfo | grep OpenGL

from bintracker-prototype.

echo2modules avatar echo2modules commented on May 29, 2024

I'm not sure about Allegro version, but it should be as follows:
5.1.11.553.gca5dfea56-1

OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
OpenGL core profile version string: 4.2 (Core Profile) Mesa 17.2.1
OpenGL core profile shading language version string: 4.20
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 17.2.1
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 17.2.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

from bintracker-prototype.

utz82 avatar utz82 commented on May 29, 2024

Thanks! Ok, this is a pretty old version of Allegro. I know Ubuntu LTS ships an even older one but ultimately I'm not sure I want to support those because there will be many more bugs and incompatibilities related to them. (In hindsight I'm not even sure using Allegro was such a great choice in the first place, but well, we're kind of stuck with it now.)

Anyway, could you try to add the following code in gui.cpp:25
al_set_new_display_option(ALLEGRO_SINGLE_BUFFER, 1, ALLEGRO_SUGGEST);

If it doesn't solve the problem, please remove it again, then add the following in gui.cpp:195 (just before the end of the function)

cout << "SINGLE_BUFFER: " << al_get_display_option(mainDisplay, ALLEGRO_SINGLE_BUFFER)
       << ", SWAP_METHOD: " << al_get_display_option(mainDisplay, ALLEGRO_SWAP_METHOD) << endl;

and tell me the console output when running bintracker.

from bintracker-prototype.

farvardin avatar farvardin commented on May 29, 2024

On my computer with the video problem I have this:

OpenGL vendor string: X.Org
OpenGL renderer string: AMD BONAIRE (DRM 2.43.0 / 4.4.0-62-lowlatency, LLVM 4.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.2.0-rc1
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 17.2.0-rc1
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.2.0-rc1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:

I've tried you fix line 25, so I have this in the code instead:

mainDisplay = al_create_display(settings.xres, settings.yres); al_set_new_display_option(ALLEGRO_SINGLE_BUFFER, 1, ALLEGRO_SUGGEST); if (!mainDisplay) throw (string("Failed to create window."));

It's the same flickering problem, just the patterns look different. When I click in the pattern renaming field, the flickering stops. And start again once I leave it.

I've also added your "cout" code in the Main_Window::~Main_Window() function (at the end), but I have no output in console.

from bintracker-prototype.

utz82 avatar utz82 commented on May 29, 2024

Thanks! With this info we can be pretty sure that this is neither an OpenGL nor a graphics card related issues.

The fix for line 25 should be before the mainDisplay = al_create_display(settings.xres, settings.yres);, sorry for not being clear about that.

Also I gave the wrong line number for the cout, it should be at the end of the constructor (so, line 191). Still odd that it won't output anything in your case.

Btw farvardin, what's the Allegro version on this machine?

from bintracker-prototype.

farvardin avatar farvardin commented on May 29, 2024

Great, it works now, no flickering at all!
And the output is: SINGLE_BUFFER: 1, SWAP_METHOD: 0
thank you!

edit: It's liballegro5.2.3, I see it was compiled from source and installed with checkinstall

from bintracker-prototype.

echo2modules avatar echo2modules commented on May 29, 2024

I see, you've already added the "al_set_new_display_option(ALLEGRO_SINGLE_BUFFER, 1, ALLEGRO_SUGGEST);" code in master.
I've changed SIMPLEGFXBUFFER to true, and now it seems to work well! Thank you!
Now it's not flickering, everything works fine.

from bintracker-prototype.

utz82 avatar utz82 commented on May 29, 2024

Alright, so I'll consider this case closed. Thanks again for your help!

from bintracker-prototype.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.