Comments (7)
I can some sort of reproduce this in anvil (and niri) and identified multiple issues. Some of them are non
critical, like resetting planes, but need to be fixed anyway.
But the by far worst issue I was able to reproduce is Case 2
, in which case anvil will also panic.
After a bit of back and forth this seems to only happen with multiple monitor connected like reported.
Which kind of makes sense, because this seems to only fail when we try to switch connectors, which can/should
only happen with multiple outputs.
So, what happens is that by calling reset_state after a session resume
we will read out the current connectors. When calling queue_frame
we will end in commit which detects some change in the connectors and then tries to disable the current connector and enable the pending connector.
And this is what will fail and print out Atomic Test failed for new properties on crtc
.
from smithay.
I discovered an issue I've seen with this for Nvidia outputs on a dual GPU laptop is due to the VRAM being full. Still not sure what's causing that: pop-os/cosmic-comp#243
Though it's probably unrelated to the issue you're seeing with AMD.
from smithay.
The provided drm log also points in the same direction, something is going horrible wrong with the connectors
[88233.574515] amdgpu 0000:03:00.0: [drm:drm_atomic_check_only] checking 000000009b718254
[88233.574519] amdgpu 0000:03:00.0: [drm:drm_atomic_helper_check_modeset] [CRTC:95:crtc-1] mode changed
[88233.574524] amdgpu 0000:03:00.0: [drm:drm_atomic_helper_check_modeset] [CRTC:99:crtc-2] enabled/connectors mismatch
from smithay.
The same happens on my intel only laptop, when anvil selects a different crtc then currently active on the tty the next switch back from a different tty will fail. So it seems we have two issues here, or at least one issue and a question.
- Why does it succeed to do the initial crct switch, but fail after a tty switch
- Why is the used crtc non deterministic (or why does it sometimes differ from the crct the tty uses)
from smithay.
Okay, I believe to have found the reason why this fails...
We try to update the outputs one by one, this won't work because we can not activate a CRTC while it is still bound to a different connector.
from smithay.
The same happens on my intel only laptop, when anvil selects a different crtc then currently active on the tty the next switch back from a different tty will fail. So it seems we have two issues here, or at least one issue and a question.
* Why does it succeed to do the initial crct switch, but fail after a tty switch * Why is the used crtc non deterministic (or why does it sometimes differ from the crct the tty uses)
The reason why it initially succeeds is the same why #1295 should solve it, we reset all CRTCs
from smithay.
Might also explain why turning off and on can help. This should reset the state for one connector, potentially allowing the other to proceed. Might get a bit more tricky with more than two connected connectors.
Side note: turning off might not always result in udev/kernel recognizing that something is no longer connected. But the next turning on can result in fast disconnect followed by a direct connected. This might leave only a short time slot for the other crtc to proceed.
from smithay.
Related Issues (20)
- Missing key release events on winit backend results in permanently pressed modifiers
- wvkbd crashes when touching a key HOT 9
- Possibly wrong window geometry size with wp-viewporter HOT 4
- aa8d87a214 broke pointer input in foot HOT 1
- Stuck in listener.accept
- Add blurred Element support to `OutputDamageTracker`
- Initial commit of an XdgToplevel with a buffer already attached doesn't result in an error
- `DrmDevice::new` with disable_connectors = true causes vrr_capable property to get stuck at 0 HOT 3
- `prop_mapping` cache in `AtomicDrmDevice` doesn't handle connector hotplug
- Cursor and overlay elements overwrite primary plane in `RenderFrameResult::blit_frame_result` HOT 5
- Pasting images from wayland -> x11 truncates/corrupts the image HOT 1
- Reduce cloning around opaque region vectors HOT 1
- `wlr_layer`'s `pre_commit_hook` can post an error, disconnecting the client, leading to a panic later on in the `commit` handling HOT 5
- Send an event, if Xwayland exits unexpectedly HOT 1
- Crop element causes invalid rendering for buffer transforms 1, 3, 5, 7
- Build error on s390x: src/wayland/shm/pool.rs:311:15 ..mem::zeroed() field `__glibc_reserved0` is private HOT 2
- Niri fails to init display in QEMU, smithay error message HOT 7
- app_id for nested compositors HOT 4
- Pointer surface focus not checked before button press
- `KbdRc` and `SeatRc` are leaked HOT 3
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 smithay.