summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* renderer: more FP16 fixes (#14070)UjinT342026-05-071-8/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix fp16 blur with invalidation * restore tonemap code * fix fade outs * add sdr compat for unaware surfaces * use a better work space, not linear, only for sdr * fix hl tf -> wp tf * cache workbuffer descriptions * linear not normalised WIP * clear offload fb * CM math * fix includes * use precalculated cm for shadows * inner glow cm * quad cm * fix unmodified copy * codegen * cache color CM * mark blur dirty when CM/DS changes * avoid icc workbuffer * fp16 blur finish hack * fix output hdr luminances * use srgb for mirroring/sharing with fp16 * defaults people --------- Co-authored-by: Vaxry <vaxry@vaxry.net>
* layout/scrolling: handle fullscreen manually (#14190)Vaxry2026-05-071-7/+27
| | | Makes scroll handle fullscreen by itself, allowing for fs scrolls.
* windows/focus: add fallbacks when focussing workspaces (#14270)fazzi2026-05-041-4/+1
|
* render: scale background to monitor resolution (#14250)davc0n2026-05-041-7/+10
| | | | | | | | | | | | | * render: scale background to monitor resolution Currently the background is not scaled, e.g. 8k size image always uses ~128Mb of VRAM. We could reduce the consumption for low-end devices and monitors with lower resolution: - ~8Mb for 1080p - ~16Mb for 2k - ~32Mb for 4k * render: use gpu to scale bgtex and fix missing reset on size change
* monitor: fix centered floating windows off-screen in special workspace (#14203)Zebra27112026-04-301-1/+1
| | | Signed-off-by: Zebra2711 <zebra2711t@gmail.com>
* desktop/window: refactor over fullscreen stateVaxry2026-04-291-1/+1
|
* desktop/window: expand hidden into proper statesVaxry2026-04-291-1/+1
|
* monitor: set format back after failing DS activation (#14168)fazzi2026-04-261-1/+10
| | | | | we do run m_lastScanout.reset(), but m_lastScanout might sometimes not be set. cache format from before attempting DS, and set back to it on activation failure.
* config/lua: init lua config manager, use lua if available (#13817)Vaxry2026-04-261-16/+16
| | | Adds a new lua config manager, which will automatically be used if there is a lua config present.
* errorOverlay: modernize, refactor, use GPU rendering (#14122)Vaxry2026-04-191-5/+5
| | | | | | | Improves the overlay's rendering: - GPU accelerated - supports gradients - wraps - cleaner code a bit
* renderer: Various CM fixes, part 8 of refactors (#13860)UjinT342026-04-161-21/+49
| | | Part 8 of Ujin's refactors.
* notifications: move and small refactor (#14094)Vaxry2026-04-161-5/+6
| | | moves to notification/, and adds a new style manager getter.
* monocle: avoid repeated workspace monitor lock() calls (#14085)Visal Vijay2026-04-161-10/+11
| | | | | | | | | * refactor(monocle): avoid repeated workspace monitor lock() calls * clang-format * cleanup: avoid repeated weak_ptr::lock() calls * style: shorten variable name PMONITORWORKSPACEOWNER to PMONITOR
* monitor: ensure swapchain is updated before mode test (#14065)Visal Vijay2026-04-141-4/+13
| | | | | | | | | | | * monitor: ensure swapchain is updated before mode test * monitor: ensure swapchain update via helper for all mode set paths * monitor: fix formatting * monitor: move swapchain helper to CMonitorState * monitor: move swapchain helper to CMonitorState
* renderer: skip redundant render-path workPppp11162026-04-041-2/+8
|
* monitor: centralize solitary and scanout eligibility checksPppp11162026-04-041-29/+84
|
* refactor: improve readability of monitor rule comparison (#13884)Visal Vijay2026-03-311-14/+20
|
* renderer: refactor part 7: api fixes (#13631)UjinT342026-03-281-7/+40
| | | | | | | Part 7 of ujin's refactors --------- Co-authored-by: Vaxry <vaxry@vaxry.net>
* config: cleanup the entire config infrastructure (#13785)Vaxry2026-03-201-97/+127
| | | | Massively refactors the config infrastructure, sorely needed and will be req'd for the lua stuff
* config/workspacerule: add animation style (#13380)ItsOhen2026-03-131-2/+4
|
* renderer: move m_renderData to renderer (#13474)UjinT342026-03-071-1/+1
|
* renderer: refactor resources and flags (#13471)UjinT342026-03-071-7/+29
|
* renderer: refactor Texture, Framebuffer and Renderbuffer (#13437)UjinT342026-03-061-1/+1
| | | Part 1 of the renderer refactors
* renderer: shader variants refactor (#13434)UjinT342026-03-061-0/+10
| | | Part 0 of renderer reworks.
* render/cm: add ICC profile pipeline (#12711)Vaxry2026-03-041-20/+104
| | | Adds an ICC profile pipeline, loading via config and applying via 3D LUTs.
* monitor: damage old special monitor on changeVaxry2026-02-281-0/+1
| | | | ref https://github.com/hyprwm/Hyprland/discussions/13419
* monitor: update pinned window states properly on changeWorkspace (#13441)Vaxry2026-02-281-1/+1
| | | ref https://github.com/hyprwm/Hyprland/discussions/13440
* monitor: keep workspace monitor bindings on full reconnect (#13384)Zynix2026-02-281-11/+25
| | | When all monitors disconnect, non-active workspaces could migrate to the wrong output after reconnect. Preserve workspace ownership and re-apply assigned monitor bindings on connect.
* renderer: better sdr eotf settings (#12812)UjinT342026-02-261-9/+32
|
* event: refactor HookSystem into a typed event bus (#13333)Vaxry2026-02-221-8/+8
| | | | | Refactors the old HookSystem into a typed event bus with clear separation, discovery and types.
* protocols: implement image-capture-source-v1 and image-copy-capture-v1 (#11709)Ikalco2026-02-221-4/+7
| | | Implements the new screencopy protocols
* layout: rethonk layouts from the ground up (#12890)Vaxry2026-02-211-12/+11
| | | | | Rewrites layouts to be much smaller, and deal with much less annoying BS. Improves the overall architecture, unifies handling of pseudotiling, and various other improvements.
* multigpu: fix multi gpu checking (#13277)Tom Englund2026-02-211-1/+2
| | | | | | | | | | | | | | | * multigpu: fix multi gpu checking drmFD() from allocators is not always equal, because we reopen them inside AQ for refcounting, meaning they get duplicated and become their own fds, so checking if fd1 == fd2 ends up wrong. introduce sameGpu in MiscFunctions that checks the actual drmDevice meaning we can now even check if a rendernode is the same gpu as a display node if we want. * multigpu: move sameGpu to DRM namespace move sameGpu out of MiscFunctions to DRM namespace.
* cm: block DS for scRGB in HDR mode (#13262)Dominick DiMaggio2026-02-171-1/+1
|
* renderer: fix dgpu directscanout explicit sync (#13229)Tom Englund2026-02-131-1/+12
| | | | | | | | | | | | | * directscanout: fix dgpu directscanout explicit sync without setting an infence, AQ doesnt explicit sync, nor recreate the dgpu fence for the blit work. and as such attemptdirectscanout path artifacts and breaks. create a dummy CEGLSync even tho we dont really have any pending glwork to get a proper fence, and set it. * monitor: dont use new scheduling if direct scanout using the new_render_scheduling makes no sense in the direct scanout path, add a if guard against it.
* protocols: commit and presentation timing fixes (#13174)UjinT342026-02-101-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | * move commit timing fields to surface state * fix toTimespec init * update sendQueued api * update onPresented api * set zero copy flag * send clock id * move presented calcs inside condition * use only CLOCK_MONOTONIC for commit/presentation timings * fix setSetTimestamp * do not wait for commit timing while tearing * proto config * fix config defaults
* renderer: allow tearing with DS with invisible cursors (#13155)UjinT342026-02-071-7/+5
|
* monitor: revert "remove disconnected monitor before unsafe state #12544" ↵EvilLary2026-02-031-2/+3
| | | | (#13154)
* renderer: fix mouse motion in VRR (#12665)Szwagi2026-01-311-2/+4
|
* renderer: fix frame sync (#13061)UjinT342026-01-221-3/+6
| | | | | | | | | * fix commit timing timer * fix surface state lock/unlock * debug state sync todos * debug solitary vrr
* renderer: fix non shader cm reset (#13027)UjinT342026-01-211-9/+14
|
* protocols/cm: Fix image description info events (#12781)UjinT342026-01-131-46/+89
| | | | | | | | | | | | | | | | | | | | | | | * fix image description info events * always send some target primaries * set edid values as target primaries and luminances * init monitor image description * set default luminances for tf * fix BT1886 luminances * fix mastering values and overrides * set maxCLL & maxFALL * typo * add FALL & CLL to preferred HDR image description * fix ref luminances
* fix: handle fullscreen windows on special workspaces (#12851)John Mylchreest2026-01-081-4/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix: handle fullscreen windows on special workspaces inFullscreenMode() only checked m_activeWorkspace, missing fullscreen windows on special workspaces. This caused crashes and incorrect behavior when fullscreen windows were on special workspaces. Changes: - inFullscreenMode() now checks special workspace first since it renders on top of regular workspaces - Added getFullscreenWindow() helper to safely get fullscreen window from either active or special workspace - Updated callers (shouldSkipScheduleFrameOnMouseEvent, Renderer, getFSImageDescription) to use the new helper - Reset m_aboveFullscreen for layer surfaces when opening, closing, or stealing special workspaces between monitors * test: add special workspace fullscreen detection tests Add tests for the new special workspace fullscreen handling introduced in the previous commit. The tests cover: 1. Fullscreen detection on special workspace - verifies that a window made fullscreen on a special workspace is correctly detected 2. Special workspace fullscreen precedence - verifies that when both regular and special workspaces have fullscreen windows, the special workspace window can be focused when the special workspace is opened 3. Toggle special workspace behavior - verifies that toggling the special workspace off properly hides it and returns focus to the regular workspace's fullscreen window These tests exercise the key code paths modified in the fix: - inFullscreenMode() checking special workspace first - getFullscreenWindow() helper returning correct window - Layer surface m_aboveFullscreen reset on special workspace toggle
* cm: allow force disabling WCG and HDR per monitor (#12733)UjinT342025-12-281-2/+13
|
* render/cm: various updates, remove old protocols (#12693)UjinT342025-12-271-67/+63
| | | | | | | | | | | | | * fix named primaries * default to gamma22 * mark mastering primaries as supported * remove xx-cm and frog support * immutable primaries and image descriptions * clang-format
* rules/windowRuleApplicator: fix min/max size effects (#12491)Vaxry2025-12-271-2/+2
| | | fixes #12412
* Desktop/history: Move history to desktop (#12676)Vaxry2025-12-201-23/+0
|
* debug: move to hyprutils' logger (#12673)Vaxry2025-12-181-66/+66
|
* desktop/layer: store aboveFs property and use thatVaxry2025-12-161-0/+6
|
* cm: handle CM for SDR content with cm=hdr, cm_sdr_eotf=2 (#12127)Dominick DiMaggio2025-12-111-5/+8
|