summaryrefslogtreecommitdiff
path: root/src/render
Commit message (Collapse)AuthorAgeFilesLines
* windowrules: rewrite completely (#12269)Vaxry2025-11-175-30/+31
| | | | | | | Reworks the window rule syntax completely --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* groupbar: fix rounding logic for edge cases (#12366)Jochim2025-11-171-7/+9
|
* renderer: fix fractional scale artifacts (#12287)bea4dev2025-11-161-2/+6
|
* i18n: init localization for ANR, Permissions and Notifications (#12316)Vaxry2025-11-162-2/+5
| | | | | | | | 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>
* deco/groupbar: add groupbar blur (#12310)Jochim2025-11-161-37/+24
|
* render/cm: change non_shader_cm ignore behavior and set default to it (#12210)UjinT342025-11-071-1/+2
|
* cm: follow preferred srgb eotf for screencopy (#12230)Dominick DiMaggio2025-11-071-1/+3
|
* 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-293-5/+16
|
* pass/surface: check for LS size anim for misaligned fractionalVaxry2025-10-271-1/+2
|
* EGL: minor egl changes (#12132)Tom Englund2025-10-251-5/+5
| | | | | | | | | | | * opengl: use EGLint and we dont have to cast data use EGLint in the attrib array and we dont have to cast the resulting data. * opengl: add linear to correct vector drop empty check, what if we get mods that isnt linear. then it wont be added, also add it to the result vector that we actually return.
* screencopy: fix missing XBGR2101010 format with screencopy_force_8b (#12125)ccos892025-10-251-1/+1
| | | | | | | | | Adds missing DRM_FORMAT_XBGR2101010 to screencopy_force_8b that leads to "no more input formats" Pipewire error for monitors set to 10-bit color depth/where currentFormat is XBGR2101010. Fixes implementation of #11623 Fixes hyprwm/xdg-desktop-portal-hyprland#270 Fixes hyprwm/xdg-desktop-portal-hyprland#102
* 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-205-22/+200
| | | | | | | | | | | | 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: add 1fv and 2fv uniform support (#12080)Mozzarella322025-10-182-7/+29
|
* renderer: add cursor:zoom_disable_aa for controlling AA on zoom (#12025)Vaxry2025-10-151-2/+3
|
* renderer: round box in damageBoxVaxry2025-10-151-1/+1
|
* compositor: make wl_surface::frame follow pending states (#11953)Tom Englund2025-10-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * compositor: make pending states store frame callbacks move frame callbacks to pending states so they are only committed in the order they came depending on the buffer wait for readyness. * buffer: damage is relative to current commit ensure the damage is only used once, or we are constantly redrawing things on state commits that isnt a buffer. thanks PlasmaPower. * compositor: move callbacks back to compositor move SSurfaceStateFrameCB back to compositor in the class CWLCallbackResource as per request, but still keep the state as owning. * compositor: ensure commits come in order if a buffer is waiting any commits after it might be non buffer commits from the "future" and applying directly. and when the old buffer that was waiting becomes ready it applies its states and overwrites the future changes. move things to scheduleState and add a m_pendingWaiting guard. and schedule the next pending state from the old buffer commit when done. and as such it loops itself and keeps thing orderly.
* core/compositor: revert make wl_surface::frame follow pending states (#11896)Vaxry2025-10-061-3/+0
| | | | | | | This reverts commit 17e77e0407bebd5d24521012ee1d04b156d6b9f4. Reverted due to severe performance degradation due to accumulating frame callbacks
* core/compositor: make wl_surface::frame follow pending states (#11896)Tom Englund2025-10-061-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * compositor: make pending states store frame callbacks move frame callbacks to pending states so they are only committed in the order they came depending on the buffer wait for readyness. * buffer: damage is relative to current commit ensure the damage is only used once, or we are constantly redrawing things on state commits that isnt a buffer. thanks PlasmaPower. * compositor: move callbacks back to compositor move SSurfaceStateFrameCB back to compositor in the class CWLCallbackResource as per request, but still keep the state as owning. * compositor: ensure commits come in order if a buffer is waiting any commits after it might be non buffer commits from the "future" and applying directly. and when the old buffer that was waiting becomes ready it applies its states and overwrites the future changes. move things to scheduleState and add a m_pendingWaiting guard. and schedule the next pending state from the old buffer commit when done. and as such it loops itself and keeps thing orderly.
* renderer: add render:non_shader_cm and fixes (#11900)UjinT342025-10-021-4/+5
|
* renderer: fix popup fadeout blur (#11756)Vaxry2025-10-023-13/+22
| | | popups dont get no xray
* renderer: optimize border drawcalls (#11891)Vaxry2025-10-011-22/+18
| | | calculates the specific border region to avoid sampling on regions where the border cannot be at
* internal: fix clang-tidy "errors" (#11862)UjinT342025-09-291-4/+4
|
* deco: reduce virtual calls in drop shadowTom Englund2025-09-281-10/+12
| | | | | | | | damageEntire() in CHyprdDropShadow is pretty much called per window per frame, instead of all the PWINDOW-> virtual calls, store pos and size once and move the duplicated code to a lambda. reducing it a bit. shows up in profiling as minor waste.
* opengl: move from unordered_set to arrayTom Englund2025-09-282-10/+34
| | | | | | | setCapStatus is a a heavy used function in hot rendering paths, it shows up in profiling as using a bit of cpu just because of unordered_set hashing etc, move to a enum and array and cache only the heavily used ones.
* decoration: reduce virtual callsTom Englund2025-09-284-10/+15
| | | | | | | | this shows up as top contender in idle cpu usage, because decos in animations keeps locking weak pointers to shared pointers per window per frame when its not really needed, use weakpointers all the way and it drops to a bottom contender. marginal gains in the big picture. but gains is gains.
* renderer: disable anti-aliasing on cursor:zoom_factor (#6135) (#11828)João V. Farias2025-09-251-0/+10
| | | use nearest-neighbor filtering for cursor scaling to avoid blurriness
* renderer: fix uv scaling detection (#11789)Vaxry2025-09-221-2/+2
|
* renderer: fix uv calculations once and for all (#11770)Vaxry2025-09-212-41/+46
| | | fixes synchronization of ackd sizes, fixes wrong xdg stuff
* renderer: fix inconsistent border thickness for roundingPower < 2 (#11752)REVO92025-09-192-8/+14
|
* renderer: asynchronously load background tex (#11749)Vaxry2025-09-185-76/+151
| | | | | | | Bumps required hyprgraphics to 0.1.6 --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* core: fix clang-formatVaxry2025-09-171-1/+1
|
* renderer: clamp blur:passes 1-8Vaxry2025-09-152-5/+10
| | | | | | fixes some UB and dumb things ref #11707
* windows: fix no decorate not disabling borders (#11673)ItsOhen2025-09-131-1/+2
|
* render/OpenGL: fix compilation for 32bit systems (#11667)Florian "sp1rit2025-09-111-1/+1
|
* screencopy: add force 8 bit to fix 10b screensharing (#11623)Vaxry2025-09-081-1/+11
| | | ref https://github.com/hyprwm/xdg-desktop-portal-hyprland/issues/270
* renderer: Fix CM for DS and SDR passthrough (#11503)UjinT342025-08-292-30/+61
|
* 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-243-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-242-0/+10
| | | | | | | | | | | | * 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-222-105/+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-223-24/+29
|
* render: include numbers header (#11475)Linux User2025-08-191-0/+1
| | | Fixes error `no member named 'numbers' in namespace 'std'` on llvm/musl
* 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-162-29/+2
| | | Removes `animations:first_launch_animation` as it's useless now