Comments (14)
It happens when starting the compositor. Switching TTYs or unplugging the display actually fixes it. And it seems to not happen with triple buffering.
from louvre.
Hmm weird, it seems like the scene damage tracking is not working properly, what happens if you move the cursor to the black screen and then change the scaling factor with Left Super + Left Shift + [Up / Down arrows]
? That should damage the entire screen, also are the displays connected to different GPUs?
from louvre.
Yup, that fixes it. The screens are connected to the same GPU (RX 6800 XT).
from louvre.
Phew, great! 😅 I am going to check louvre-views
. I think I made some modifications in the last release and maybe forgot to do a full damage when a new display is hotplugged.
from louvre.
I tested louvre-views
on all my devices, using 2 displays, and I didn't see this bug. Can you tell me the context in which this happens? The situations where I would expect this to happen are:
- Compositor Initialization
- Display Hotplugging
- Returning from another TTY
- Maybe when using triple buffering (SRM_RENDER_MODE_ITSELF_FB_COUNT=3)
from louvre.
Thank you, does this happen with louvre-weston-clone
as well? Maybe SRM is failing to do the first page flip. If you run louvre-views
with SRM_DEBUG=3, are there any error messages related to faulty page flips?
from louvre.
It prints nothing with SRM_DEBUG=3. louvre-weston-clone I assume has the same problem but it affects it differently: the left monitor initially shows no time, and when it updates it is always one minute behind the right screen. It shows the correct time only while you mouse over the terminal icon in the top left on that monitor.
(this is just after starting it and doing nothing else, I haven't tried unplugging any monitor)
from louvre.
It's weird because that doesn't happen to me, so I think the damage tracking should be okay. It seems like, for some reason, some of the first OpenGL calls have no effect in your case. Each time an output is initialized, a new rendering thread is created. So, maybe I should do an initial glFinish()
or something similar to make sure the shared OpenGL context is fully initialized before doing rendering. I'll check that out. Thank you, by the way!
from louvre.
I've added some glFinish()
calls after initializing the backend, after output initialization, and following the rendering of the first frame in an output. Could you check if that fixes your issue? The changes are in the amd_gpu
branch.
from louvre.
It could be a driver issue. Perhaps AMDGPU doesn't handle multithreading properly yet.
from louvre.
Looks like that patch fixes it, at least the original issue with louvre-views.
The issue with the clock in louvre-weston-clone stays the same though.
It might be a driver issue, is there a way to disable multithreaded rendering right now?
from louvre.
Nice! Hopefully, it was just a context/thread initialization problem. Because if you use louvre-views
, launch apps, drag them around, and such, do you see any black square glitches popping up? I am going to test louvre-weston-clone
again. I remember seeing a similar problem with the clock, but that must be because that example does not use the scene system, so I had to implement damage tracking manually, which, of course, can lead to this kind of bug when not handled properly. Regarding your question, the answer is no, at least with the SRM backend, it is not possible to use a single thread only.
from louvre.
I tested louvre-weston-clone
, and the clock seems to work fine in my case. All the clocks for each display update simultaneously with the same values. Perhaps, in your case, the rendering commands may not be finishing in time when eglSwapBuffers()
is called. However, according to this, calling glFinish()
is not necessary. I will try adding glFlush()
after rendering and before calling eglSwapBuffers()
to see if it has any effect.
from louvre.
I pushed the change to the amd_gpu
branch.
from louvre.
Related Issues (20)
- hardcoded paths HOT 3
- Modern C++ HOT 3
- [Not a bug] Discussion HOT 12
- Mouse freezes HOT 4
- Immediate crash upon trying to run `louvre-views` inside Hyprland HOT 7
- Change keyboard layout non-programatically HOT 5
- Add list of compositors using Louvre to the read me HOT 2
- Failed to initialize output HOT 31
- Consider removing inline keyword for member function HOT 1
- Wine `winewayland.drv` require `zwp_pointer_constraints_v1` HOT 6
- GTK doesn't support `xdg_decoration_unstable_v1` but does support `org_kde_kwin_server_decoration_manager` HOT 7
- Segmentation Fault - Unknown EGL Driver HOT 6
- Customizing Shortcuts Definition HOT 7
- Waybar doesn't work - Failed to register as toplevel manager HOT 7
- Changing keyboard layouts dynamically HOT 2
- Double visible mouse pointer HOT 11
- Create an IRC channel or discord HOT 7
- Compile / build instruction. HOT 1
- Compile louvre-views as separated project. HOT 2
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 louvre.