Comments (13)
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.
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.
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.
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.
Same thing.
With FPS 1.0f/30.0f it just flickers more frequently.
from bintracker-prototype.
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?
- Allegro version
- output of
glxinfo | grep OpenGL
from bintracker-prototype.
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.
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.
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.
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.
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.
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.
Alright, so I'll consider this case closed. Thanks again for your help!
from bintracker-prototype.
Related Issues (6)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bintracker-prototype.