Skip to content

Conversation

ids1024
Copy link
Member

@ids1024 ids1024 commented Jul 31, 2025

This needs testing, and still need to signal the commit timing.

I'd like to de-duplicate the different places that iterate over all different types of surface (instead of adding more code for this for fifo and commit timing, along with the existing send_frames, update_primary_output, send_dmabuf_feedback, visisible_output_for_surface, as well as the similar but slightly different code already shared in render_input_order()). But these seem to all be slightly different, so I'm not sure how best to unify them...

@Drakulix
Copy link
Member

But these seem to all be slightly different, so I'm not sure how best to unify them...

That is the reason they are separate... I didn't want to sacrifice readability for some complex code-deduplication that can handle all the little differences.

@ids1024
Copy link
Member Author

ids1024 commented Jul 31, 2025

Yeah. If it were just as simple as needing an iterator over all types of windows (and other top level surfaces that may have their own popups and subsurfaces), that wouldn't be too bad. And all the uses could exhaustively match against any surface types. But then something like visisible_output_for_surface isn't just iterating over ever surface on an output, but trying to do the reverse.

There may be some way to structure all of this better, without a lot of duplication, of fairly opaque use of some very complicated surface iteration API, but I'm not sure the best way to do it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants