Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Energy efficiency #3633

Merged
merged 4 commits into from
Oct 18, 2024
Merged

Energy efficiency #3633

merged 4 commits into from
Oct 18, 2024

Conversation

AlanGriffiths
Copy link
Contributor

No description provided.

@AlanGriffiths AlanGriffiths requested a review from a team as a code owner October 14, 2024 11:38
@tarek-y-ismail
Copy link
Contributor

tarek-y-ismail commented Oct 16, 2024

Again, some rough notes that you're free to pick from.

It could be mentioned that the use of file descriptors to wait for events/data/input/etc... improves efficiency by allowing the CPU to idle to lower clock speeds and maybe turn off other cores (depends on other things running of course).

Another thing that can be mentioned is that our usage of C++ is a deliberate choice to balance runtime performance and development speed versus other interpreted (Python) or compiled + GC langauges (Go, Java).

Copy link
Collaborator

@Saviq Saviq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add to explanation.md and to the TOC.

doc/sphinx/explanation/energy-efficiency.md Outdated Show resolved Hide resolved
doc/sphinx/explanation/energy-efficiency.md Outdated Show resolved Hide resolved
result, Mir has work in progress to exploit additional of hardware composition
options where they are available.

At the time of writing (October 2024) Mir uses hardware composition for cursors
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we have versioned documentation now, does it make sense to say that? We should, instead, keep it up to date? And when we do, we can add a Since Mir… note?

doc/sphinx/explanation/energy-efficiency.md Outdated Show resolved Hide resolved
been update. That can avoid the need to regenerate parts of the display that
have not changed.

At the time of writing (October 2024) Mir has not implemented this optimisation.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAIU we do, just on the composition level (e.g. always update full surface, but only when it changed)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By "full surface" you mean display buffer?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At least in the screencopy sense, we report on damage per client surface (not deeper than that).

Does damage even matter in the composition sense? We're asking the GPU to do the composition on client-supplied buffers, would we even communicate the damage there?

It would matter for a software renderer, but for a GL one?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it matters: a while back Firefox was submitting buffers with damage hints, but only the pixels corresponding to the damage were supplied (which was a Firefox bug). Because we don't pass on the damage info the results were wrong. (This shows that other compositors do pass on the damage hints)

@AlanGriffiths AlanGriffiths changed the base branch from main to MIRENG-504-Draft-the-performance-document October 16, 2024 13:33
@AlanGriffiths
Copy link
Contributor Author

Please add to explanation.md and to the TOC.

I've stacked this on top of performance to avoid merge conflicts

Copy link
Collaborator

@Saviq Saviq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And this one, too :)

Base automatically changed from MIRENG-504-Draft-the-performance-document to main October 18, 2024 09:16
@AlanGriffiths AlanGriffiths added this pull request to the merge queue Oct 18, 2024
Merged via the queue into main with commit 4a0a34d Oct 18, 2024
39 checks passed
@AlanGriffiths AlanGriffiths deleted the MIRENG-505/energy-efficiency branch October 18, 2024 09:40
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.

3 participants