summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
* popup: imorove logging, use fadeAlpha for opacityVaxry2025-08-031-1/+7
|
* renderer: fix snapshot coordsVaxry2025-08-031-1/+2
|
* renderer: add popup fade-in-out (#11313)Vaxry2025-08-031-3/+99
| | | Adds xdg popup fade-in and fade-out
* renderer: use CRegion foreach over getRects (#10980)Tom Englund2025-07-301-3/+1
| | | | instead of allocating and returning a vector, use forEach to directly call a function on the rects.
* ci: correct tar command for xz compression & fix typos (#11213)xqso2025-07-251-2/+2
|
* core: move workspace ptrs to weak (#11194)Vaxry2025-07-241-5/+4
| | | | Fixes some race conditions that come up in tests. We only clean up workspaces when we render a frame. With this, they are always cleared instantly.
* renderer: Add cursor:invisible to allow to hide the cursor (#11058)Mozzarella322025-07-201-1/+2
|
* opengl: detect android fence support and disable explicit if it's missing ↵Vaxry2025-07-191-5/+17
| | | | | (#11077) Checks for explicit sync support via the android fences, and falls back to implicit sync if it isn't
* config: disable hw on mgpu nvidia by default (#11018)Vaxry2025-07-161-0/+7
|
* renderer: use makeUnique for session-lock render passes (#11019)Maximilian Seidler2025-07-141-3/+3
| | | Fixup for a merge conflict introduced by #10865.
* session-lock: don't render workspaces when locked (#10865)Maximilian Seidler2025-07-141-46/+57
| | | Avoid rendering the workspace behind if we are locked
* presentation: move to unique ptrsTom Englund2025-07-101-2/+2
| | | | less refcounting, move by rvalue.
* renderpass: use unique ptr instead of shared ptrTom Englund2025-07-101-20/+20
| | | | | lets use unique ptrs instead of refcounting shared ptr when its not needed, use rvalue reference to construct in vector directly.
* Renderer: Implement new render scheduling (#10936)Vaxry2025-07-081-7/+6
| | | | | | | | | Implements a new render scheduling method, where we triple buffer when necessary. Enabled by default, improves FPS on underpowered devices. --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* pass: overload TexPass constructorTom Englund2025-07-071-3/+3
| | | | | overload it with a rvalue to allow us to move the data directly avoiding an extra copy. because SRenderData is not trivially copyable.
* renderer: move render calculation behind if caseTom Englund2025-07-071-6/+6
| | | | | | the durationUs is not used unless debug overlay is enabled, lets not calculate it each call to rendermonitor if not enabled. same with renderStart.
* plugins: made currentWindow available in RENDER_PRE_WINDOW (#10957)jmanc32025-07-071-3/+3
|
* renderer: add mouse zoom animations (#10882)aphelei2025-07-011-4/+5
| | | Adds animations for the mouse zoom effect.
* renderer/cm: Add automatic hdr (#9785)UjinT342025-06-231-17/+30
|
* config: nuke explicit_sync settingsVaxry2025-06-191-27/+0
| | | | were not used anymore, explicit is on by default
* renderer: make lock fail textures dynamically loadedVaxry2025-06-191-4/+12
| | | | this should reduce idle vram usage by a whopping 16MB, but also might fix the tty unknown issue.
* config/monitor: Add monitor v2 HDR rules (#10623)UjinT342025-06-151-4/+1
|
* internal: clean up dead snapshot codeVaxry2025-06-151-46/+2
|
* renderer: fixup some missing fadeout cases with specialVaxry2025-06-111-28/+31
| | | | | | | | | | fixes some fadeout missing cases: - closing last window - closing above fs - closing in general fixes #10283
* renderer: refuse rendering invalid resolutionsVaxry2025-06-111-0/+5
| | | | sometimes a driver fails to assign any reasonable mode in which case we might render 0x0 which will make us crash. Don't do that. Part 1 of #10678
* internal: refactor to use empty() (#10599)Kamikadze2025-05-311-1/+1
|
* refactor: use std::ranges whenever possible (#10584)Kamikadze2025-05-301-5/+5
|
* opengl: optimize shaders and reduce unneeded drawcalls (#10364)Tom Englund2025-05-111-3/+0
| | | | | | | | | | | | | | | | | | | | | | | * opengl: remove unnecessery glflush calls glflushing forces the driver to break batching and issue commands prematurely and prevents optimisations like command reordering and merging. many glFunctions already internally glflushes and eglsync creation still has a glflush at end render. so lets reduce the overhead of these calls. * opengl: reduce glUseProgram calls apitrace shows cases where the same program gets called multiple times, add a helper function that keeps track of current program and only call it once on same program. reduces slight overhead. * opengl: use more efficient vertex array object use a more modern vertex array object approach with the shaders, makes it a onetime setup on shader creation instead of once per drawcall, also should make the driver not have to revalidate the vertex format on each call.
* renderer: use alpha for the lockttytext textureVaxry2025-05-111-1/+1
| | | | ref #10348
* renderer: minor damage fixesVaxry2025-05-101-2/+1
|
* renderer: render blur on fade out (#10356)Vaxry2025-05-101-27/+45
|
* renderer: always render snapshots as 8bitvaxerski2025-05-091-3/+3
| | | | fixes issues with transparent windows on 10b
* renderer: precompute fullalpha (#10319)Tom Englund2025-05-071-5/+7
| | | | precompute it once instead of calculating it every single call, was showing up as a lot of time wasted in profiling.
* render: refactor class member vars (#10292)davc0n2025-05-051-161/+160
| | | | | * render: refactor class member vars * render: fix clang format
* protocols: refactor class member vars (u-z) (#10282)davc0n2025-05-041-2/+2
| | | | | * protocols: refactor class member vars (u-z) * protocols: fix clang format
* protocols: refactor class member vars (a-m) (#10265)davc0n2025-05-041-1/+1
|