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

Performance Optimization and FFI Profiling #26

Open
3 tasks
l-Shane-l opened this issue Feb 1, 2025 · 1 comment
Open
3 tasks

Performance Optimization and FFI Profiling #26

l-Shane-l opened this issue Feb 1, 2025 · 1 comment
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@l-Shane-l
Copy link
Owner

l-Shane-l commented Feb 1, 2025

Performance Optimization and FFI Profiling

Description

Performance is critical for a compositor. We need to identify and optimize performance bottlenecks, particularly around foreign function calls which are heavily used in our Wayland bindings.

Requirements

  • Profile FFI call performance using compiler plugins
  • Identify high-impact performance bottlenecks
  • Optimize critical paths in the compositor

Acceptance Criteria

  • Successfully profile FFI calls in the codebase
  • Document major performance bottlenecks
  • Implement identified optimizations

Reference

Performance profiling tools discussion: https://discourse.haskell.org/t/new-compiler-plugin-to-make-it-possible-to-profile-time-spent-in-foreign-function-calls/11217/6

@l-Shane-l l-Shane-l added enhancement New feature or request good first issue Good for newcomers labels Feb 1, 2025
@l-Shane-l l-Shane-l changed the title Performance tests Performance Optimization and FFI Profiling Feb 1, 2025
@l-Shane-l
Copy link
Owner Author

l-Shane-l commented Feb 9, 2025

I did some very high level testing comparing this compositor with xmonad on my laptop which does not have a GPU.

I used glmark2.

Xmonad has a score twice as good as tiny-wlhs.

Upon investigation its clear xmonad is using Mesa Intel(R) Xe Graphics (TGL GT2) while tiny-wlhs with pixman is using llvmpipe (LLVM 15.0.6, 256 bits) . This is likely related to using pixman as the wayland renderer.

I have not investigated this issue further, but im leaving this comment here as this is likely the main performance bottle neck for the compositor atm. It may even be straightforward to address, pixman if that is the issue is set in the nix file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant