aboutsummaryrefslogtreecommitdiff
path: root/src/backend
AgeCommit message (Collapse)Author
2024-01-21tty: Delay output config update until resumeIvan Molodetskikh
We can't do anything while paused.
2024-01-21tty: Check changes against pending connectors and modeIvan Molodetskikh
If we queued some DRM changes, they will be in pending. Also be more resilient by removing unwrap.
2024-01-17Add an IPC socket and a niri msg outputs subcommandIvan Molodetskikh
2024-01-17Rename connectors to enabled_outputsIvan Molodetskikh
2024-01-17tty: Add Tracy span to on_output_config_changed()Ivan Molodetskikh
2024-01-16Add live-reload for output modeIvan Molodetskikh
2024-01-16tty: Extract pick_mode()Ivan Molodetskikh
2024-01-16Add live-reload for output on/offIvan Molodetskikh
2024-01-16tty: Remove connector arg from connector_disconnected()Ivan Molodetskikh
2024-01-16Move output scale setting into niriIvan Molodetskikh
2024-01-07Move config into a separate crateIvan Molodetskikh
Get miette and knuffel deps contained within.
2024-01-06Add render-drm-device debug config optionIvan Molodetskikh
2024-01-06tty: Print full path to render nodeIvan Molodetskikh
2024-01-05tty: Avoid non-linear cross-device formatsIvan Molodetskikh
2024-01-03Implement multi-GPU supportIvan Molodetskikh
Rendering always happens on the primary GPU.
2024-01-03Make rendering generic over rendererIvan Molodetskikh
2024-01-03Replace renderer() with with_primary_renderer()Ivan Molodetskikh
2024-01-03Rename RenderResult::Error to SkippedIvan Molodetskikh
2024-01-03Move Niri::render() invocation to backendsIvan Molodetskikh
2024-01-03Move import_dmabuf to backendsIvan Molodetskikh
2024-01-03Add disable-cursor-plane debug flagIvan Molodetskikh
2024-01-03tty: Extract config variableIvan Molodetskikh
2024-01-01tty: Don't store render formatsIvan Molodetskikh
Actually, how did it even fork before? Pretty sure it was storing render formats, not texture formats, but with render formats weston-simple-dmabuf-feedback doesn't work?
2024-01-01tty: Disable dmabuf global before destroyingIvan Molodetskikh
2024-01-01tty: Move dmabuf_global up into TtyIvan Molodetskikh
2024-01-01tty: Fix import sortingIvan Molodetskikh
One of the imports was too long so rustfmt bailed.
2023-12-31Move DmabufState to NiriIvan Molodetskikh
2023-12-31Enable EGL for the winit backendIvan Molodetskikh
More relevant now that mesa on Fedora is trying to force non-working Zink for some reason.
2023-12-18Add a config flag to disable an outputIvan Molodetskikh
2023-11-24tty: Fix clippy warningIvan Molodetskikh
2023-11-24tty: Rename vblank offset plot to time since presentationIvan Molodetskikh
Makes it clearer what this is.
2023-11-24tty: Rename presentation target offset plot to mispredictionIvan Molodetskikh
Makes it clearer what this is.
2023-10-29Add support for wl_compositor@v6Kirill Chibisov
2023-10-29Draw background with a solid color bufferIvan Molodetskikh
2023-10-27Drop `GbmDevice` in the endKirill Chibisov
The `GbmDevice` must be destroyed after destroying all the objects associated with it.
2023-10-24Update smithay to the latest gitKirill Chibisov
This fixes IME handling.
2023-10-24Update SmithayIvan Molodetskikh
2023-10-13Make clear color a constIvan Molodetskikh
The damage tracker doesn't understand clear color changes.
2023-10-13Return RenderResult from render()Ivan Molodetskikh
2023-10-13Send dmabuf feedbacks from the backendIvan Molodetskikh
2023-10-13Extract niri.clear_color()Ivan Molodetskikh
2023-10-11tty: Start new tracy frame only when queueing redrawIvan Molodetskikh
2023-10-10Make zbus optional under "dbus" featureIvan Molodetskikh
2023-10-09Add power-off-monitors bindIvan Molodetskikh
Implements https://github.com/YaLTeR/niri/issues/24
2023-10-03Make output modes configurableIvan Molodetskikh
2023-10-02tty: Remove assert on needs_syncIvan Molodetskikh
cosmic-comp doesn't do anything with it.
2023-10-01Avoid sending frame callbacks to invisible surfacesIvan Molodetskikh
2023-09-30Refactor frame schedulingIvan Molodetskikh
Combine the redraw state variables into one enum, and refactor to get rid of the requirement that a VBlank must queue a subsequent redraw. Also fix the bug where ongoing animations that produced no damage could stall the redrawing.
2023-09-30Make pipewire / xdp-gnome-screencast optionalIvan Molodetskikh
2023-09-29Throttle frame callbacks to once per monitor refreshIvan Molodetskikh
Under some circumstances, the compositor can get into a commit-frame callback busy loop with a client. For example, if a client redraws on frame callbacks, but the resulting frame has empty damage (e.g. the damaged part of the client is outside the monitor). Or if the client simply commits with empty damage (looking at you, Firefox). This behavior is compliant with the Wayland specification and with the intended idea of frame callbacks, but causes a lot of unnecessary CPU usage in the client and the compositor. To solve this problem, this commit introduces frame callback throttling. Every surface may only receive a single frame callback in one monitor refresh cycle. If a surface commits resulting in no KMS frame submission, a timer is created, that will fire at the predicted would- be-VBlank time, and send the accumulated frame callbacks. This way, a surface that redraws on frame callbacks will not notice any change in frame callback delivery, if its commits suddenly stop producing KMS updates.