aboutsummaryrefslogtreecommitdiff
path: root/src/backend
AgeCommit message (Collapse)Author
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.
2023-09-27shell: add support for kde server decorationsKirill Chibisov
This should provide server side decorations for the gtk3 applications, like firefox.
2023-09-26tty: Take metadata by valueIvan Molodetskikh
2023-09-26Skip rendering when backend is inactiveIvan Molodetskikh
2023-09-26Avoid unwraps in more placesIvan Molodetskikh
2023-09-26tty: Add more trace spansIvan Molodetskikh
2023-09-26tty: Extract other event handlers into functionsIvan Molodetskikh
2023-09-26tty: Avoid panicks in the vblank callbackIvan Molodetskikh
2023-09-26tty: Extract on_vblank()Ivan Molodetskikh
2023-09-26Use new tracy-client new_leak() methodsIvan Molodetskikh
I added them to avoid the use of internal module and leaks when tracing is disabled.
2023-09-26Remove LoopDataIvan Molodetskikh
The calloop Smithay update finally lets me do this.
2023-09-21Add output configuration & integer scaling supportIvan Molodetskikh
2023-09-20Plot target presentation time offsetIvan Molodetskikh
2023-09-19tty: Pass output name to tracy spanIvan Molodetskikh
2023-09-18tty: Try to create context with high priorityIvan Molodetskikh
2023-09-14Add debug flag to enable overlay planesIvan Molodetskikh
2023-09-14Disable ColorTransformations, add debug flag to enableIvan Molodetskikh
Speeds up the rendering slightly, doesn't seem to cause issues?
2023-09-14Store Config as Rc<RefCell<>> fieldIvan Molodetskikh
2023-09-14Add debug flag to wait for frame completionIvan Molodetskikh
2023-09-14tty: Plot vblank dispatch offsetsIvan Molodetskikh
2023-09-08Add initial monitor screencast portal implIvan Molodetskikh
DmaBuf monitor screencasting through xdg-dekstop-portal-gnome! Somewhat limited currently, e.g. the cursor is always embedded. But gets most of the job done.
2023-09-04Update Smithay and fix winit presentation timeIvan Molodetskikh
2023-09-04Fix refresh passed to presentation feedbackIvan Molodetskikh
2023-09-04Re-enable dmabufs but without overlay planesIvan Molodetskikh
2023-09-04tty: Add commented-out wait-for-sync spanIvan Molodetskikh
2023-09-04tty: Add commented-out no-color-transformation rendererIvan Molodetskikh
2023-09-04tty: Add Tracy vblank frame eventsIvan Molodetskikh
2023-09-04tty: Add name and presentation to vblank markIvan Molodetskikh
2023-09-04tty: Store surface nameIvan Molodetskikh
2023-09-04tty: Add Surface state structIvan Molodetskikh
2023-09-03Disable dmabufs for nowIvan Molodetskikh
For some reason they cause big rendering performance problems.
2023-09-03Send scanout feedbacks to surfacesIvan Molodetskikh
2023-09-03Add initial dmabuf feedback implementationIvan Molodetskikh
2023-09-03Move all traits one layer upIvan Molodetskikh
2023-09-03Move LoopData into niri fileIvan Molodetskikh
2023-09-03Move backends to subfolderIvan Molodetskikh