summaryrefslogtreecommitdiff
path: root/src/protocols
Commit message (Collapse)AuthorAgeFilesLines
* renderer: more FP16 fixes (#14070)UjinT342026-05-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix fp16 blur with invalidation * restore tonemap code * fix fade outs * add sdr compat for unaware surfaces * use a better work space, not linear, only for sdr * fix hl tf -> wp tf * cache workbuffer descriptions * linear not normalised WIP * clear offload fb * CM math * fix includes * use precalculated cm for shadows * inner glow cm * quad cm * fix unmodified copy * codegen * cache color CM * mark blur dirty when CM/DS changes * avoid icc workbuffer * fp16 blur finish hack * fix output hdr luminances * use srgb for mirroring/sharing with fp16 * defaults people --------- Co-authored-by: Vaxry <vaxry@vaxry.net>
* layout/scrolling: handle fullscreen manually (#14190)Vaxry2026-05-071-3/+5
| | | Makes scroll handle fullscreen by itself, allowing for fs scrolls.
* xdg-shell: queue state updates for toplevel (#14227)Vaxry2026-04-302-29/+45
| | | ref https://github.com/hyprwm/Hyprland/discussions/14224
* xdg-foreign-v2: Keep invalid imported objects alive (#14166)Freevatar2026-04-272-25/+52
| | | | | * xdg-foreign-v2: validate toplevel surfaces correctly before exporting or parenting * xdg-foreign-v2: Keep invalid imported objects alive
* config/lua: init lua config manager, use lua if available (#13817)Vaxry2026-04-269-11/+11
| | | Adds a new lua config manager, which will automatically be used if there is a lua config present.
* protocols/compositor: fix presentFeedback being blockedVaxry2026-04-181-3/+0
| | | | ref #14105
* renderer: Various CM fixes, part 8 of refactors (#13860)UjinT342026-04-161-4/+6
| | | Part 8 of Ujin's refactors.
* egl: move over to use hyprgraphics (#12988)Tom Englund2026-04-054-6/+15
| | | use the hyprgraphics helpers instead.
* data/dnd: guard against expired dndPointerFocus and ensure consistent usage ↵Visal Vijay2026-04-051-4/+4
| | | | (#13996)
* protocols: avoid repeated per-client work in hot pathsPppp11162026-04-043-12/+24
|
* protocols: prune stale subsurface refs in hot traversalsPppp11162026-04-045-12/+61
|
* seat/compositor: fix minor issues (#13958)Pppp11162026-04-021-1/+6
|
* seat: store surface in pointerFocus before sendEnter (#13941)Visal Vijay2026-04-011-2/+4
| | | ptr could expire
* renderer: refactor part 7: api fixes (#13631)UjinT342026-03-283-5/+7
| | | | | | | Part 7 of ujin's refactors --------- Co-authored-by: Vaxry <vaxry@vaxry.net>
* clang-format: run formatterVaxry2026-03-261-1/+1
|
* renderer: small fixes in OpenGL.cpp and OpenGL.hpp (#13842)Pppp11162026-03-261-5/+7
| | | | | * render: add EGL error details to dmabuf query failures * linux-dmabuf: tighten plane modifier checks and feedback safety
* renderer/cm: Support wp-cm-v1 version 2 (#12817)UjinT342026-03-252-16/+87
|
* protocols: reimplement unstable/xdg-foreign-v2 (#13716)Chris Naporlee2026-03-234-37/+301
|
* config: cleanup the entire config infrastructure (#13785)Vaxry2026-03-203-7/+8
| | | | Massively refactors the config infrastructure, sorely needed and will be req'd for the lua stuff
* screencopy: fix crash in screensharing toplevel with invalid handle (#13781)ssareta2026-03-191-0/+5
|
* protocols/workspace: schedule done after output update (#13743)outfoxxed2026-03-171-2/+7
|
* source: c-f for new clang versionVaxry2026-03-151-1/+1
|
* desktop/rules: fix static rules and content type. (#13725)ItsOhen2026-03-151-2/+10
| | | | Hopefully for the last time in a while. Also a lot easier to add in new static types with the recheck done in window map instead of the rule.
* protocols: fix image-copy-capture stop handling and remove non protocol ↵outfoxxed2026-03-121-12/+3
| | | | | | | | | | errors (#13706) * protocols: send image-copy-capture stopped instead of destroy Fixes a protocol error where the resource was destroyed instead of sending stopped() to the client. * protocols: don't send protocol errors in image-copy-capture for server errors
* protocols/sessionLock: fix crash when monitor is gone during lock surface ↵matjam2026-03-101-4/+13
| | | | | | creation Move monitor signal listener registration inside the existing null guard, and validate output resource and monitor in onGetLockSurface.
* renderer: refactor resources and flags (#13471)UjinT342026-03-075-9/+8
|
* renderer: refactor Texture, Framebuffer and Renderbuffer (#13437)UjinT342026-03-065-19/+17
| | | Part 1 of the renderer refactors
* screenshare: improve destroy logic of objects (#13554)Ikalco2026-03-054-36/+16
|
* render/cm: add ICC profile pipeline (#12711)Vaxry2026-03-046-450/+26
| | | Adds an ICC profile pipeline, loading via config and applying via 3D LUTs.
* hyprpm: fix url sanitization in addVaxry2026-03-011-1/+1
| | | | this could've been used to exec additional commands with hyprpm
* screencopy: fix nullptr deref if shm format is weirdVaxry2026-03-011-0/+7
|
* renderer: better sdr eotf settings (#12812)UjinT342026-02-261-2/+7
|
* event: refactor HookSystem into a typed event bus (#13333)Vaxry2026-02-2212-103/+67
| | | | | Refactors the old HookSystem into a typed event bus with clear separation, discovery and types.
* protocols: implement image-capture-source-v1 and image-copy-capture-v1 (#11709)Ikalco2026-02-2213-1001/+1113
| | | Implements the new screencopy protocols
* layout: rethonk layouts from the ground up (#12890)Vaxry2026-02-211-1/+1
| | | | | 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.
* wayland/output: return all bound wl_output instances in outputResourceFrom ↵Vaxry2026-02-206-24/+46
| | | | | (#13315) ref https://github.com/hyprwm/Hyprland/discussions/13301
* desktop/window: add stable id and use it for foreignVaxry2026-02-191-9/+9
|
* compositor: dont unlock all states on empty commits (#13303)Tom Englund2026-02-181-1/+1
| | | | | | we cant unlock all states on empty commits, at best tryProcess them. for example if a state is locked and waiting for a fence to become readable, and another commit comes in we cant unlock it until the fence has actually signaled.
* commit-timing: avoid use-after-free in timer callback (#13271)Kamikadze2026-02-141-3/+3
|
* protocols: commit and presentation timing fixes (#13174)UjinT342026-02-108-58/+80
| | | | | | | | | | | | | | | | | | | | | | | | | * move commit timing fields to surface state * fix toTimespec init * update sendQueued api * update onPresented api * set zero copy flag * send clock id * move presented calcs inside condition * use only CLOCK_MONOTONIC for commit/presentation timings * fix setSetTimestamp * do not wait for commit timing while tearing * proto config * fix config defaults
* protocols/dmabuf: fix DMA-BUF checks and events (#12965)UjinT342026-02-071-11/+47
|
* proto/shm: update wl_shm to v2 (#13187)EvilLary2026-02-061-0/+1
|
* fifo: miscellaneous fifo fixes (#13136)UjinT342026-02-047-45/+80
| | | | | | | | | | | * LOGM: clang-tidy fix * fix fifo state and scheduling * disable fifo_pending_workaround by default * fix tearing * fix "empty" commit skipping
* buffer: add move constructor and operator to CHLBufferReference (#13157)Tom Englund2026-01-312-0/+20
| | | | add missing move constructor and operator, a lot of churn was done on always copying CHLBufferReference, also add a self copy check.
* renderer: fix frame sync (#13061)UjinT342026-01-225-27/+35
| | | | | | | | | * fix commit timing timer * fix surface state lock/unlock * debug state sync todos * debug solitary vrr
* protocols/toplevelExport: Support transparency in toplevel export (#12824)ArchSav2026-01-201-4/+6
|
* renderer: optimise shader usage further, split shaders and add more caching ↵Tom Englund2026-01-172-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#12992) * shader: split CM rgba/rgbx into discard ones make it branchless if we have no discards. * shader: ensure we dont stall on vbo uv buffer if we render a new texture before the previous was done gpu wise its going to stall until done, call glBufferData to orphan the data. this allows the driver to return a new memory block immediately if the GPU is still reading from the previous one * protocols: ensure we reset GL_PACK_ALIGNMENT reset GL_PACK_ALIGNMENT back to the default initial value of 4 * shader: use unsigned short in VAO loose a tiny bit of precision but gain massive bandwidth reductions. use GL_UNSIGNED_SHORT and set it as normalized. clamp and round the UV for uint16_t in customUv. * shader: interleave vertex buffers use std::array for fullverts, use a single interleaved buffer for position and uv, should in theory improve cache locality. and also remove the need to have two buffers around. * shader: revert precision drop we need the float precision because we might have 1.01 or similiar floats entering CM shader maths, and rounding/clamping those means the maths turns out wrong. so revert back to float, sadly higher bandwidth usage. * update doColorManagement api * convert primaries to XYZ on cpu * remove unused primaries uniform --------- Co-authored-by: UjinT34 <ujint34@mail.ru>
* protocols/cm: Fix image description info events (#12781)UjinT342026-01-132-11/+39
| | | | | | | | | | | | | | | | | | | | | | | * 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
* renderer/gl: add internal gl formats and reduce internal driver format ↵Tom Englund2026-01-072-8/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | conversions (#12879) * format: add internal formats for drm formats cross referenced with weston and added internal formats and types for a lot of missing ones. also added a isFormatYUV helper. * framebuffer: ensure we use right internalformat ensure we use the right internal format to avoid internal driver blitting, also since we only attach the GL_STENCIL_ATTACHMENT we might just aswell only use the GL_STENCIL_INDEX8 to not confuse drivers that we want a depth aswell. * texture: use external on yuv or non linear mods using external makes us use the gpu's internal detiler. and this is makes intel a lot happier then having to format convert it to a linear format internally. * shaders: add external support to CM frag add external support to CM frag, and correct ext.frag typo. * formats: remove duplicates and fix a typo in cm.frag remove duplicate formats and a typo in cm.frag * formats: add swizzle logic to all formats add swizzle logic from weston for all formats and use it in shm texture paths. * format: more format changes use monitor drm format instead of forcing something different. * shader: remove external from cm.frag drivers want this resolved at compiletime cant use both samplerExternalOES and sampler2d and then runtime branch it. * screencopy: swizzle textures in screencopy swizzle textures in screencopy, to get the right colors when copying. * screencopy: restore old behaviour try restore old behaviour before the gles3 format changes. glReadPixels had the wrong format, so i went to far trying to mitigate it. should be like before now.
* protocols/contentType: fix missing destroyVaxry2026-01-051-1/+1
|