summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
Commit message (Collapse)AuthorAgeFilesLines
* layout: rethonk layouts from the ground up (#12890)Vaxry2026-02-211-3/+4
| | | | | 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.
* monitor: fix DS deactivation (#13188)UjinT342026-02-041-1/+3
|
* renderer: fix mouse motion in VRR (#12665)Szwagi2026-01-311-26/+26
|
* renderer: fix frame sync (#13061)UjinT342026-01-221-37/+37
| | | | | | | | | * 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-1/+1
|
* core: optimize some common branchesVaxry2026-01-161-9/+9
|
* protocols/cm: Fix image description info events (#12781)UjinT342026-01-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | * 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-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* render/cm: various updates, remove old protocols (#12693)UjinT342025-12-271-6/+10
| | | | | | | | | | | | | * 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-3/+3
| | | fixes #12412
* tablet: added option to hide cursor (#12525)fuyu1472025-12-191-2/+8
|
* debug: move to hyprutils' logger (#12673)Vaxry2025-12-181-43/+43
|
* desktop/view: use aliveAndVisible for most things (#12631)Vaxry2025-12-111-4/+5
|
* desktop: cleanup, unify desktop elements as views (#12563)Vaxry2025-12-081-42/+31
|
* renderer/cm: make needsHDRupdate per-monitor state (#12564)byddha2025-12-071-6/+4
| | | Co-authored-by: drzbida <55928036+drzbida@users.noreply.github.com>
* renderer: avoid crash on arrangeLayers for an empty monVaxry2025-12-061-1/+1
|
* desktop: rewrite reserved area handling + improve tests (#12383)Vaxry2025-12-051-30/+5
|
* renderer: fix uv sufrace calc with scales < 1 (#12481)EvilLary2025-11-291-1/+1
|
* compositor: Configurable behavior when window to be focused conflicts with ↵Nikolai Nechaev2025-11-251-4/+5
| | | | | | | | | | fullscreen (#12033) Renames `misc:new_window_takes_over_fullscreen` into `misc:on_focus_under_fullscreen` and implements the following behavior: - By default, when a tiling window is being focused on a workspace where a fullscreen/maximized window exists, respect the `misc:on_focus_under_fullscreen` config variable.
* renderer: stop looping over null texture surfaces (#12446)Vaxry2025-11-241-2/+46
| | | fixes #12445
* animation: improve animations on multi refresh rate monitors (#12418)bea4dev2025-11-231-0/+3
|
* renderer: fix render_unfocusedVaxry2025-11-211-0/+7
|
* windowrules: rewrite completely (#12269)Vaxry2025-11-171-17/+19
| | | | | | | Reworks the window rule syntax completely --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* renderer: fix fractional scale artifacts (#12287)bea4dev2025-11-161-2/+6
|
* i18n: init localization for ANR, Permissions and Notifications (#12316)Vaxry2025-11-161-1/+3
| | | | | | | | Adds localization support for en, it, pl and jp --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net> Co-authored-by: Aaron Blasko <blaskoazzolaaaron@gmail.com>
* render/cm: change non_shader_cm ignore behavior and set default to it (#12210)UjinT342025-11-071-1/+2
|
* renderer: fix fractional scale artifact (#12219)bea4dev2025-11-061-7/+5
|
* renderer/cm: allow gamma 2.2 instead of sRGB EOTF (#12094)Dominick DiMaggio2025-10-291-2/+3
|
* hyprctl: include color management presets and sdr information (#12019)Filip Mikina2025-10-241-2/+2
| | | | | | * move string parsing for eCMType to its own namespace, similar to how `src/protocols/types/ContentType.cpp` is done * expose cm type and sdr settings in `hyprctl monitors`, format floats to .2f
* renderer: add more uniforms to the screen shader (#11986)Mozzarella322025-10-201-1/+40
| | | | | | | | | | | | These are: pointer_shape from the cursor-shape-v1 protocol prepared for v2, along with left_ptr...bottom_right_corner and killing (Hyprland specific) pointer_shape_previous with pointer_switch_time to blend between shapes pointer_size scaled size as used by the normal cursor pointer_pressed_positions[32] with pointer_pressed_times[32] and pointer_pressed_killed(32 bits) for click/touch animations and if they killed something pointer_inactive_timeout with pointer_last_active to smoothly fade the pointer out pointer_hidden to hide it when the cursor is hidden (excluding by cursor:invisible as this config value can be used to turn off the normal cursor, which is useful when drawing it with the screen shader)
* renderer: clean up surface UV size calcs, fix issues (#12070)Vaxry2025-10-191-7/+22
|
* renderer: round box in damageBoxVaxry2025-10-151-1/+1
|
* renderer: add render:non_shader_cm and fixes (#11900)UjinT342025-10-021-4/+5
|
* renderer: fix popup fadeout blur (#11756)Vaxry2025-10-021-8/+8
| | | popups dont get no xray
* renderer: fix uv scaling detection (#11789)Vaxry2025-09-221-2/+2
|
* renderer: fix uv calculations once and for all (#11770)Vaxry2025-09-211-32/+31
| | | fixes synchronization of ackd sizes, fixes wrong xdg stuff
* renderer: asynchronously load background tex (#11749)Vaxry2025-09-181-10/+13
| | | | | | | Bumps required hyprgraphics to 0.1.6 --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* renderer: Fix CM for DS and SDR passthrough (#11503)UjinT342025-08-291-22/+53
|
* input: Add fully configurable trackpad gestures (#11490)Vaxry2025-08-281-1/+1
| | | Adds configurable trackpad gestures
* syncobj: use rendernode for timelines (#11087)Tom Englund2025-08-241-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * syncobj: use rendernode for timelines use rendernode for timelines instead of the drmfd, some devices dont support to use the drmfd for this. * opengl: use rendernode if available use rendernode if available for CHyprOpenglImpl * MesaDRM: use the m_drmRenderNodeFD if it exist try use the rendernode we got from AQ if it exist. * linuxdmabuf: use rendernode if available use the rendernode if available already from AQ * syncobj: prefer rendernode over displaynode prefer the rendernode over the displaynode, and log a error if attempting to use the protocol without explicit sync support on any of the nodes. * syncobj: check support on both nodes always check support on both nodes always so it can be used later for preferring rendernode if possible in syncobj protocol. * syncobj: remove old var in non linux if else case remove old m_bDrmSyncobjTimelineSupported from non linux if else case that will fail to compile on non linux. the nodes sets support by default to false, and if non linux it wont check for support and set it to true. * build: bump aq requirement bump to 0.9.3 where rendernode support got added. * flake.lock: update * renderer: glfinish on software renderer software renderers apparently bug out on implicit sync, use glfinish as with nvidia case on implicit paths. * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* disable buffer readability checks on intel (#11515)Tom Englund2025-08-241-0/+8
| | | | | | | | | | | | * dmabuf: disable buffer read check on intel readability checks directly on buffer fds on some intel laptops is broken, see https://gitlab.freedesktop.org/drm/intel/-/issues/9415 * sync: use rvalue ref in addwaiter doonreadable use rvalue reference in addwaiter and doonreadable, because we store the function in the SReadableWaiter a lot of the time, move it into place there when that happends or let it go out of scope after function call.
* internal: Solitary clients with single subsurface & verbose ↵UjinT342025-08-221-104/+10
| | | | | solitary/tearing/DS checks (#11228) Adds more verbose checks for various conditional rendering mechanisms
* renderer: add eRenderStage::RENDER_POST_WALLPAPER (#11501)jmanc32025-08-221-0/+4
| | | Comes after the wallpaper is rendered, but before all windows and docks are rendered
* hdr: scRGB, HLG and SDR -> HDR fixes (#11499)UjinT342025-08-221-5/+7
|
* hdr: fix overrides and missing edid hdr metadata (#11476)UjinT342025-08-191-6/+5
|
* renderer: improve modeset timings (#11461)Vaxry2025-08-171-1/+1
| | | | | some CRTCs will just happily eat frames and we can't do much. Some will eat one. Adds a 5-frame buffer to DPMS and Added animations. Better than nothing.
* renderer: add dpms animations (#11452)Vaxry2025-08-171-0/+8
|
* renderer: improve zoom in anims (#11453)Vaxry2025-08-161-27/+2
| | | Removes `animations:first_launch_animation` as it's useless now
* refactor: Use new hyprutils casts (#11377)Kamikadze2025-08-141-19/+19
|
* renderer: minor fixups to uv calcs (#11375)Vaxry2025-08-081-9/+12
| | | Fixes #11374