Commit Graph
6255 Commits
Author SHA1 Message Date
outfoxxed 78e9eddfb6 core: use new typed signals from hu (#10853) 2025-07-08 18:56:40 +02:00
Tom Englund 2f34ef141b compositor: fix race to finish on null buffer (#10970)
if a null buffer is commited and a pending state is awaiting, drop the
pending state so we dont end up in race to finish brokeness.
2025-07-08 18:55:46 +02:00
VaxryandMihai Fufezan 8f948827a6 Renderer: Implement new render scheduling (#10936)
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>
2025-07-08 12:41:10 +02:00
Tom Englund 9856563f89 opengl: avoid reallocations in EGLImage (#10960)
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.
2025-07-07 23:44:35 +02:00
Tom Englund bb958a9e13 pass: overload TexPass constructor
overload it with a rvalue to allow us to move the data directly avoiding
an extra copy. because SRenderData is not trivially copyable.
2025-07-07 18:09:34 +02:00
Tom Englund c75f85098c renderer: move render calculation behind if case
the durationUs is not used unless debug overlay is enabled, lets not
calculate it each call to rendermonitor if not enabled. same with
renderStart.
2025-07-07 18:09:34 +02:00
Tom Englund 4a30e2acd9 eventloop: RAII the even source on readable fd
RAII remove the event source and honor rule by 5
2025-07-07 18:09:34 +02:00
Tom Englund ceec1943ff compositor: dont send around int max values
we know the buffersize use it instead of int max values that can
potentially cause math issues and slowdowns. minor improvement to
glmark2 aswell.
2025-07-07 18:09:34 +02:00
jmanc3 83c453cb82 plugins: made currentWindow available in RENDER_PRE_WINDOW (#10957) 2025-07-07 18:06:42 +02:00
Tom Englund 54369adffa internal: iso C++ prohibits anonymous structs (#10955)
turn on -Wpedantic and name the anonymous struct.
2025-07-07 16:18:06 +02:00
vaxerski d23ed852fc [gha] Nix: update inputs 2025-07-07 11:34:38 +00:00
Tom Englund a16d0c76a6 texture: zero out the cached states in destroy (#10954)
if destroyTexture is called outside of the texture destructor we need to
empty out the cached states.
2025-07-07 13:33:22 +02:00
Mihai Fufezan 6a5f4f5954 Nix: fix overlay application
Should fix hyprwm/hyprland-plugins#412
2025-07-05 14:18:38 +03:00
MightyPlaza b99c193e46 internal: handle setGroupCurrent properly on fs groups (#10920) 2025-07-05 00:16:25 +02:00
bobrat 9b51d73a1e hyprpm: print all dependencies that are missing (#10907) 2025-07-04 14:43:46 +02:00
Tiago Dinis 3c9447ca53 nix: update aquamarine 2025-07-04 01:33:31 +03:00
Mihai Fufezan 90c8609cbb CMake: disable tests by default (#10899) 2025-07-01 23:18:34 +02:00
Vaxry b246f33ab1 inputmgr: remove unused var 2025-07-01 23:18:01 +02:00
aphelei e9c5594186 renderer: add mouse zoom animations (#10882)
Adds animations for the mouse zoom effect.
2025-07-01 11:33:48 +02:00
Tom Englund e827b75e22 opengl: add missing skipcm if case (#10888)
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.
2025-07-01 11:32:49 +02:00
Tom Englund 9adacef70b buffer: check if buffer fd already readable (#10894)
check if buffer fd is already readable, to avoid a lot of unnecessery
systemcalls and churn.
2025-07-01 11:32:17 +02:00
Tom Englund f464dfbefa shader: replace texture2d with texture (#10893)
* 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.
2025-07-01 11:32:00 +02:00
Tom Englund 8c37d2ce25 sessionlock: restore cursor if hidden on unlock (#10889)
if session locks have hidden the cursor its gonna be missing unless a
new cursor shape is set, hovering windows makes us get one, moving the
wallpaper/desktop does not. set it again to left_ptr as is default on
compositor start.
2025-07-01 11:31:10 +02:00
Karun Sandhu ee8978b961 flake.lock: update 2025-06-29 19:29:36 +03:00
Vaxry ab900d8752 screencopy: fix improper box calculations for transforms (#10870) 2025-06-28 17:01:14 +02:00
Vaxry 0fea173fc8 unbind: add unbind all 2025-06-28 14:55:13 +02:00
Mihai Fufezan a01d20cfe8 CI/Nix: fix rebase oopsie 2025-06-27 16:56:52 +03:00
Vaxry e4b6fedfb9 tester: simplify adding test files 2025-06-27 12:18:45 +02:00
Vaxry 1fc7e80bdb README: update previews 2025-06-27 12:06:21 +02:00
Mike Will b850b35778 snap: move gapOffset logic outside of for loop (#10861) 2025-06-27 12:01:45 +02:00
Mihai Fufezan 2796ec1cf2 CI/Nix: separate xdph from hl 2025-06-26 23:38:23 +03:00
VaxryandMihai Fufezan 3d6476c902 Core: Add a test suite (#9297)
Adds a test suite for testing hyprland's features with a runtime tester

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2025-06-26 19:43:39 +02:00
rafiq 9a67e0421b renderer: clamp rounding_power (#10816) 2025-06-26 19:26:46 +02:00
outfoxxed 3bbdf9dc5a protocols: add ext-workspace implementation (#10818) 2025-06-26 18:32:44 +02:00
sam 1f337a7a5e hyprctl: replace read-only strings with std::string_view (#10851) 2025-06-26 12:28:35 +02:00
UjinT34 452a158107 config: use parseScale for monitorv2 (#10852) 2025-06-26 12:28:21 +02:00
Tom EnglundandVaxry f4f090e4b2 renderer: reduce a lot of glcalls and cache various states (#10757)
* 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>
2025-06-25 12:42:32 +02:00
Mihai Fufezan 5a348fb7df Nix: filter src using fileset
Allows reusing already-built derivation when changing files outside the
ones defined in the fileset.
2025-06-24 21:39:42 +03:00
Vaxry aea8132001 buffer: don't use crazy listener::emit() 2025-06-24 15:23:53 +02:00
UjinT34 cf7e3aa448 renderer/cm: Add automatic hdr (#9785) 2025-06-23 14:33:09 +02:00
Vaxry c7c8ca475b config: add missing description for enforce_permissions 2025-06-23 13:56:02 +02:00
Vaxry 24e5f9974d hyprctl: print no open windows instead of invalid request on empty clients 2025-06-23 13:49:30 +02:00
Vaxry dd33128c2f input: fix mouseDown triggering hl ops on locked (#10809) 2025-06-22 12:49:13 +02:00
zacoons 8b1d5560cf renderer: add wrapping options to renderTextureWithBlur method (#10807) 2025-06-21 19:03:28 +02:00
vaxerski 2388874738 [gha] Nix: update inputs 2025-06-21 14:22:28 +00:00
Vladimir-csp 4be32dbff4 xwayland: Don't leave shell process (#10802) 2025-06-21 16:21:08 +02:00
fufexan 8ebff1948f [gha] build man pages 2025-06-19 22:49:42 +00:00
Mihai Fufezan a301d54df8 treewide: hyprland.org -> hypr.land 2025-06-20 01:49:20 +03:00
Mihai Fufezan ff2f85641a CI/Nix: add cache-nix-action
Use nixbuild/nix-quick-install-action which pairs well with
nix-community/cache-nix-action.

Should help with build times by reducing the number of packages needing
to be re-downloaded on each run.

Parameters are taken from https://github.com/nix-community/cache-nix-action
and may be tweaked later.
2025-06-20 01:37:59 +03:00
Jasson b49d0ca20e xwayland: Fix crash when copying from wayland to xwayland (#10786) 2025-06-19 19:44:38 +02:00