Commit Graph

976 Commits

Author SHA1 Message Date
Vaxry af4a13452b thanks ikalco 2024-07-20 12:42:58 +02:00
UjinT34 8ea06338f9 add scheduleFrame reasons (#6799) 2024-07-20 12:42:58 +02:00
Vaxry aa6ae13845 make explicit sync setting actually disable it 2024-07-20 12:42:58 +02:00
Vaxry d786094fb9 stuff 2024-07-20 12:42:58 +02:00
UjinT34 6289612958 reset explicit fences before commit (#6841) 2024-07-20 12:42:58 +02:00
UjinT34 805a054389 Explicit sync fixes (#6829)
* explicit sync fixes

* more logging

* reremove wlroots

* close explicit fds on rollback

* limit presentFeedback explicit sync to direct scanout mode only

* explicit sync for texture render

* cursor explicit sync initial

* common wait for explicit sync point code

* code style fixes
2024-07-20 12:42:58 +02:00
Vaxry 13af7fb2fb explicit sync stuff 2024-07-20 12:42:58 +02:00
Vaxry 95ddf9e7eb stuff for aq alloc split 2024-07-20 12:42:58 +02:00
Vaxry 76b8be2349 some fixes to dmabuf 2024-07-20 12:42:58 +02:00
Vaxry 4aa77b26e8 fixeroni crasheroni 2024-07-20 12:42:58 +02:00
Vaxry ab428222c2 fix crasheroni 2024-07-20 12:42:57 +02:00
Vaxry 1b4a5fc4fc stuf 2024-07-20 12:42:57 +02:00
Vaxry e09e76aa4a avoid spam 2024-07-20 12:42:57 +02:00
Vaxry f4c8789aec explicit sync 2024-07-20 12:42:57 +02:00
Vaxry 82e27597db xcursors mmm 2024-07-20 12:42:57 +02:00
Vaxry c6b9b292dd fix mirrors, thanks virtcode 2024-07-20 12:42:57 +02:00
Vaxry 590e706cde damage oops 2024-07-20 12:42:57 +02:00
Vaxry 9235728166 fix nvidia crasherino lmao 2024-07-20 12:42:57 +02:00
Vaxry c03f25e6fb rid of wlr more 2024-07-20 12:42:57 +02:00
Vaxry aeb500df17 drop wlroots 2024-07-20 12:42:57 +02:00
Vaxry c1adf83484 rollback on fail 2024-07-20 12:42:57 +02:00
Vaxry bcea65ab09 stuff I already forgot what I did 2024-07-20 12:42:26 +02:00
Vaxry 2b26c738b7 get dma formats from aq 2024-07-20 12:42:26 +02:00
Vaxry c2b4b25346 ye test 2024-07-20 12:42:26 +02:00
Vaxry 1491a853c5 reenable direct scanout 2024-07-20 12:42:26 +02:00
Vaxry 7dee974be8 minor fixes for wl 2024-07-20 12:42:26 +02:00
Vaxry c49ab9e9f3 fix dt issues 2024-07-20 12:42:26 +02:00
Vaxry 2b7c89474b minor fixes for new drm stuff 2024-07-20 12:42:26 +02:00
Vaxry 2dbb77b16b bring back renderer session scan 2024-07-20 12:42:26 +02:00
Vaxry d93791e25d Core: Move to aquamarine 2024-07-20 12:42:25 +02:00
Party Wumpus 293e687389
renderer: Make shader time always count from zero (#6903)
* testing out an initialtime variable

* Make time universally start at zero instead of exposing an initial time

* Appease the CI
2024-07-16 22:03:10 +02:00
Mihai Fufezan da956c8a97
config: use hyprutils helper (#6891)
* flake.lock: update

nix/overlays: remove xwayland overlay (merged upstream)

* config: use hyprutils helper

* flake.lock: update

* CMake & Meson: update required versions
2024-07-16 21:23:37 +02:00
MightyPlaza ed6c701144
renderer: partially revert previous xray fix (#6868)
modified:   src/render/OpenGL.cpp
2024-07-13 20:29:07 +02:00
Vaxry 13bc7e1e14 style: fix clang-format 2024-07-13 12:36:35 +02:00
Junxuan Liao 7486576fa7
session-lock: send `locked` after the lock screen is properly rendered (#6850)
The protocol says:
> The locked event "must not be sent until a new "locked" frame (either from a
> session lock surface or the compositor blanking the output) has been presented
> on all outputs and no security sensitive normal/unlocked content is possibly
> visible".

This helps users ensure the screen is properly locked before suspending
the machine. (e.g. with swaylock --ready-fd)
2024-07-13 12:32:08 +02:00
MightyPlaza f85c6416c6
renderer: fix a few xray regressions (#6855)
* fix xray unset
modified:   src/render/OpenGL.cpp

* fix xwray unset
modified:   src/render/OpenGL.cpp
2024-07-12 23:05:19 +02:00
MightyPlaza a443902abc
core: Improve handling of window properties (#6776)
* add mWindowProperties

modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.cpp
modified:   src/desktop/Window.hpp
modified:   src/events/Windows.cpp

* support int values
modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.cpp
modified:   src/desktop/Window.hpp

* create m_sWindowData

modified:   src/Compositor.cpp
modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.cpp
modified:   src/desktop/Window.hpp
modified:   src/events/Windows.cpp
modified:   src/layout/DwindleLayout.cpp
modified:   src/layout/IHyprLayout.cpp
modified:   src/layout/MasterLayout.cpp
modified:   src/managers/AnimationManager.cpp
modified:   src/managers/KeybindManager.cpp
modified:   src/managers/XWaylandManager.cpp
modified:   src/render/OpenGL.cpp
modified:   src/render/Renderer.cpp
modified:   src/render/decorations/CHyprBorderDecoration.cpp
modified:   src/render/decorations/CHyprDropShadowDecoration.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp

* simplify some properties
modified:   src/Compositor.cpp
modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.cpp
modified:   src/desktop/Window.hpp
modified:   src/managers/KeybindManager.cpp

* store multiple values in CWindowOverridableVar
modified:   src/Compositor.cpp
modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.cpp
modified:   src/desktop/Window.hpp
modified:   src/events/Windows.cpp
modified:   src/layout/IHyprLayout.cpp
modified:   src/managers/AnimationManager.cpp
modified:   src/managers/KeybindManager.cpp
modified:   src/managers/XWaylandManager.cpp
modified:   src/render/OpenGL.cpp
modified:   src/render/Renderer.cpp
modified:   src/render/decorations/CHyprBorderDecoration.cpp
modified:   src/render/decorations/CHyprDropShadowDecoration.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp

* clean up
modified:   src/Compositor.cpp
modified:   src/Compositor.hpp
modified:   src/config/ConfigManager.cpp
modified:   src/config/ConfigManager.hpp
modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.cpp
modified:   src/desktop/Window.hpp
modified:   src/events/Windows.cpp
modified:   src/layout/DwindleLayout.cpp
modified:   src/layout/IHyprLayout.cpp
modified:   src/layout/IHyprLayout.hpp
modified:   src/layout/MasterLayout.cpp
modified:   src/managers/KeybindManager.cpp

* use SET_PROP priority for exec rules
modified:   src/config/ConfigManager.hpp
modified:   src/desktop/Window.cpp

* add default value
modified:   src/Compositor.cpp
modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.cpp
modified:   src/desktop/Window.hpp
modified:   src/events/Windows.cpp
modified:   src/layout/IHyprLayout.cpp
modified:   src/managers/KeybindManager.cpp
modified:   src/managers/XWaylandManager.cpp
modified:   src/render/OpenGL.cpp
modified:   src/render/Renderer.cpp
modified:   src/render/decorations/CHyprBorderDecoration.cpp
modified:   src/render/decorations/CHyprDropShadowDecoration.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp

* add setprop toggle
modified:   src/config/ConfigManager.hpp
modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.cpp

* add setprop toggle
modified:   src/debug/HyprCtl.cpp

* make window rules functional
modified:   src/config/ConfigManager.cpp
modified:   src/desktop/Window.cpp

* minor fixes
modified:   src/Compositor.cpp
modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.hpp

* properly clean layout data
modified:   src/desktop/Window.cpp
modified:   src/desktop/Window.hpp
modified:   src/events/Windows.cpp
modified:   src/layout/DwindleLayout.cpp
modified:   src/layout/IHyprLayout.cpp
modified:   src/layout/IHyprLayout.hpp
modified:   src/layout/MasterLayout.cpp

* remove newline
modified:   src/events/Windows.cpp

* fixes
modified:   src/config/ConfigManager.hpp
modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.cpp
modified:   src/desktop/Window.hpp

* use CamelCase
modified:   src/Compositor.cpp
modified:   src/debug/HyprCtl.cpp
modified:   src/desktop/Window.cpp
modified:   src/desktop/Window.hpp
modified:   src/events/Windows.cpp
modified:   src/layout/IHyprLayout.cpp
modified:   src/managers/AnimationManager.cpp
modified:   src/managers/KeybindManager.cpp
modified:   src/managers/XWaylandManager.cpp
modified:   src/render/OpenGL.cpp
modified:   src/render/Renderer.cpp
modified:   src/render/decorations/CHyprBorderDecoration.cpp
modified:   src/render/decorations/CHyprDropShadowDecoration.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp
2024-07-11 16:10:42 +02:00
Vaxry 6247a6b537 renderer: don't skip back background on preBlurQueued
fixes #6332
2024-07-02 18:40:27 +02:00
Tom Englund ac11771348
core: fix a few ubsan issues reported at exit of hyprland (#6699)
* watchdog: dont detach and cause race condition

instead of detaching and causing a race condition on destruction where
the thread is alive and watchdog has been destroyed, check if its
joinable and join it on destruction.

causes heap use after free on exit of compositor.

* render: add checks for compositor shutting down

avoid member call on null pointer, if the g_pHyprRenderer is destroyed
we can call the member makeEGLCurrent on it, causes undefined behaviour
on destruction of the compositor/hyprrenderer.

found with ubsan.
2024-06-28 22:24:32 +02:00
Vaxry 95782de966 renderer: don't use the surface counter in popup iterations
fixes #6663
2024-06-25 20:04:02 +02:00
Vaxry 4a8b13ea4f renderer: shrink occlusion rect if blur is used
if we are blurring, we cannot be sure whether the occluded region won't be included in the expanded damage. If it is, we'd get dark shimmers.

fixes #6547
2024-06-21 19:25:34 +02:00
Vaxry def5fcb212 damageRing: move to hyprland impl
A small wlroots utility we were still using.
2024-06-19 18:25:25 +02:00
Vaxry fb15b7aa2a core: Move to hyprutils for Math
Moves CRegion, CBox and Vector2D over to hyprutils.

Requires hyprutils>=0.1.4
2024-06-19 16:20:15 +02:00
Vaxry 1360677478 subcompositor/renderer: fixup handling of subsurfaces below the main one
some apps (notably vlc 4) place a subsurface below the main surface (which is kinda cursed) but we have to accomodate for that
2024-06-17 12:42:39 +02:00
Vaxry 2f278dc883 egl: fixup format modifier lookups with implicit modifiers
ref #6485
2024-06-14 21:59:21 +02:00
UjinT34 a9d53a2252
vrr: add option to fix mouse breaking vrr (#6483)
* option to fix mouse breaking vrr

* skip damage on mouse move

* remove this-> & cleanup

* add cursor:min_refresh_rate to avoid cursor freezing

* run clang-format

---------

Co-authored-by: UjinT34 <ujin@uvpn.ru>
2024-06-14 13:45:32 +02:00
Tom Englund e6d10539af
core: fix a few small memory leaks on exit (#6470)
* renderer: add destructor and destroy event source

add destructor and destroy the event source.
one less leak on exit of compositor reported by asan.

* compositor: cleanup eventloop on exit

destruct hyprctl to release the event sources, and properly cleanup the
event loop on exit of compositor. less leaks on exit reported by asan

* threadmgr: destroy event source on destruction

destroy the event source on destruction.

* eventloopmgr: reset eventloopmgr on exit aswell

reset the eventloopmanager on exit of compositor and free the leaking
last idle frame on monitor destroy.
2024-06-13 12:08:02 +02:00
Ikalco 38132ffaf5
renderer: properly software lock cursors with zoom_factor (#6434) 2024-06-12 19:28:52 +02:00
MightyPlaza 32283ed706
groupbar: fix groupbar position rounding (#6433)
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp
2024-06-12 15:56:35 +02:00
zakk4223 b17381eb81
groupbar: Don't apply monitor scale twice to groupbar text (#6411) 2024-06-11 17:00:50 +02:00