summaryrefslogtreecommitdiff
path: root/src/render
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* renderer: Add rounding power setting to groupbar and gradient roundness. ↵Martin2025-08-161-0/+4
| | | | (#11420)
* internal: unify VT gettingvaxerski2025-08-141-5/+3
|
* refactor: Use new hyprutils casts (#11377)Kamikadze2025-08-148-74/+74
|
* 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-033-3/+103
| | | Adds xdg popup fade-in and fade-out
* renderer: apply default luma for reverting back to srgbVaxry2025-08-021-5/+8
| | | | fixes #11315
* screencopy: un-hdr screencopy buffers for cm-unaware clients (#11294)Vaxry2025-07-312-5/+11
|
* opengl: improve render fn arg clarity (#11286)Vaxry2025-07-318-159/+260
|
* renderer: use CRegion foreach over getRects (#10980)Tom Englund2025-07-303-39/+35
| | | | instead of allocating and returning a vector, use forEach to directly call a function on the rects.
* core: disable esync for non-linux kernelsVaxry2025-07-291-0/+5
| | | | ref #10437, BSD doesn't support timeline fds
* ci: correct tar command for xz compression & fix typos (#11213)xqso2025-07-254-5/+5
|
* 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: implement wp-color-management-v1 transfer functions (#11084)Thomas Müller2025-07-201-69/+157
|
* internal: replace unsafe strcpy with snprintf (#11128)MirzaSamadAhmedBaig2025-07-201-2/+1
|
* systeminfo: print more render infoVaxry2025-07-201-3/+3
|
* 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-193-6/+36
| | | | | (#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-162-0/+9
|
* 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-142-46/+58
| | | 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-1010-41/+41
| | | | | lets use unique ptrs instead of refcounting shared ptr when its not needed, use rvalue reference to construct in vector directly.
* renderer: Added a pointer position uniform to the screen shader. (#10821)FrancisTheCat2025-07-082-3/+20
|
* core: use new typed signals from hu (#10853)outfoxxed2025-07-081-1/+1
|
* Renderer: Implement new render scheduling (#10936)Vaxry2025-07-082-8/+8
| | | | | | | | | 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>
* opengl: avoid reallocations in EGLImage (#10960)Tom Englund2025-07-071-21/+24
| | | | | use a std::array instead of vector and avoid reallocations. it should at most be 49 entries, so make the array 50. and RASSERT check it incase more entries gets added in the future.
* pass: overload TexPass constructorTom Englund2025-07-075-7/+12
| | | | | 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
|
* texture: zero out the cached states in destroy (#10954)Tom Englund2025-07-071-0/+1
| | | | if destroyTexture is called outside of the texture destructor we need to empty out the cached states.
* renderer: add mouse zoom animations (#10882)aphelei2025-07-011-4/+5
| | | Adds animations for the mouse zoom effect.
* opengl: add missing skipcm if case (#10888)Tom Englund2025-07-011-0/+6
| | | | | missing skipcm if case so the CM uniforms where never added on the gradient2 renderBorder case, until the non gradient2 one had run atleast once. causing it to not render on first launch/delayed.
* shader: replace texture2d with texture (#10893)Tom Englund2025-07-018-26/+24
| | | | | | | | | | * shader: replace texture2d with texture remove unused v_color and replace deprecated texture2d with texture. * shader: use the more modern essl3 extension GL_OES_EGL_image_external_essl3 provides support for samplerExternalOES in texture function, aquamarine already use it. apply it here too.
* renderer: reduce a lot of glcalls and cache various states (#10757)Tom Englund2025-06-2524-886/+856
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * opengl: cache viewport state according to nvidia docs calling glViewPort unnecessarily on the same already set viewport is wasteful and can cause state changes when not needed. cache it in a struct and only call it when the viewport is actually changing. * opengl: cache glenable/gldisable state avoid making multiple glenable/gldisable calls on already set caps, can cause state changes and incur driver overhead. * opengl: cache glscissor box only call glscissor if the box actually has changed, try to avoid state changes. * opengl: cache gluniform calls cache the gluniform calls, the uniform values are cached in driver per program only the drawcalls setting the uniform yet again with the same value on same location is causing more overhead then caching it ourself and just no oping on it if no changes. * shader: rewrite handling of uniforms and state this is way faster as we don't need to mess with maps (hashing, etc) and instead can just use an array * opengl: stuff and 300 shaders * opengl: typo * opengl: get the uniform locations properly now that the legacy shaders are gone get the uniformlocations for SKIP_CM etc, so they can be properly set and used depending on if cm_enabled is set to false or true, before it was falling back to a legacy shader that didnt even have those uniforms. * opengl: check epsilon on float and remove extra glcall seems an extra unset glcall was added, remove it. and check the float epsilon on the glfloat. * opengl: remove instanced shader draw remove the instanced boolean from the vertex shader, might be neglible differences, needs more benchmark/work to see if its even worth it. * texture: cache texture paramaters parameters where occasionally set twice or more on same texture, short version wrap it and cache it. and move gpu churn to cpu churn. add a bind/unbind to texture aswell. * texture: use fast std::array caching cache the texparameter values in fast array lookups and incase we dont want it cached, apply it anyways. * shader: fix typo and hdr typo actually use Matrix4x2fv in the 4x2fv cache function, and send the proper float array for hdr. * texture: make caching not linear lookup make caching of texture params not linear. * minor style changes * opengl: revert drawarrays revert the mostly code style reduce loc change of drawarrays, and focus on the caching. its a if else case going wrong here breaking blur/contrast amongst others drawing. --------- Co-authored-by: Vaxry <vaxry@vaxry.net>
* renderer/cm: Add automatic hdr (#9785)UjinT342025-06-231-17/+30
|