Presentationv2 revert the revert, and fix the slop#15459
Conversation
…ce state (hyprwm#15243)"" This reverts commit 4a753ea.
the reason it stopped working is last change that PR did was moving from raw ptrs to UP's with WP's but tried to .lock() the WP, we cant lock a WP that points to a UP. also ensure all draws that isnt visible or simply failed creating texture or invalid sizes discard in elementrenderer. and all others present.
|
@codex review please |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5c12eab46c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (state.updated.all) | ||
| PROTO::presentation->discardFeedbacks(m_current.presentationFeedbacks); |
There was a problem hiding this comment.
Resolve feedbacks skipped by FIFO no-op commits
When a surface uses wp_fifo and commits only a wait_barrier/presentation-feedback update, state.fifoScheduled is true while state.updated.all is false, so the early return above runs before this new feedback handling. CSurfaceStateQueue::tryProcess then pops the state immediately after commitState returns (src/protocols/types/SurfaceStateQueue.cpp:83-84), destroying state.presentationFeedbacks without moving them to m_current or sending discarded; clients waiting on that feedback can hang. Please resolve the state's feedbacks before returning from the FIFO no-op path.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
thats not quite true, yes its a "concern" but what we are quirking around with the above early return is this
[2093707.168] -> wp_fifo_v1#43.set_barrier()
[2093707.173] -> wp_fifo_v1#43.wait_barrier()
[2093707.177] -> wl_surface#3.commit()
[2093707.182] -> wp_fifo_v1#43.wait_barrier()
[2093707.185] -> wl_surface#3.commit()
that second commit has no feedbacks. and refactoring fifo is out of scope in this PR imo
|
Dead space now works properly with this pull request |
the reason it stopped working is last change that PR
did was moving from raw ptrs to UP's with WP's but tried to .lock() the
WP, we cant lock a WP that points to a UP.
also ensure all draws that isnt visible or simply failed creating
texture or invalid sizes discard in elementrenderer. and all others
present.
@tannerellen