summaryrefslogtreecommitdiff
path: root/src/protocols
Commit message (Collapse)AuthorAgeFilesLines
* fix: address copilot review commentsclip-permlittleblack1112026-02-152-1/+85
| | | | | | | | - Fix log level from INFO to DEBUG in DataDevice.cpp for offer operations - Remove unused permissionToHumanString function - Add I18n keys for clipboard read/write permissions - Add primary selection permission check in XWM.cpp (was only checking clipboard) - Add async permission handling in DataDeviceWlr.cpp for zwlr protocol
* fix: use correct log levels for clipboard permission messageslittleblack1112026-02-152-14/+14
| | | | | | Use Log::INFO instead of Log::LOG (which doesn't exist) in DataDeviceWlr.cpp and DataDevice.cpp. Also use the new Log::logger->log() style in XWM.cpp instead of the deprecated Debug::log().
* clang said it redundant so..littleblack1112026-02-151-1/+1
|
* cliplittleblack1112026-02-152-1/+114
|
* 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
|
* protocols/contentType: fix typo in already constructed checkVaxry2026-01-051-1/+1
|
* core/compositor: immediately do readable if adding waiter fails for ↵Vaxry2026-01-051-1/+4
| | | | scheduling state
* protocols/cm: fix CColorManagementSurface m_imageDescription init (#12734)UjinT342025-12-271-1/+2
|
* render/cm: various updates, remove old protocols (#12693)UjinT342025-12-2710-1175/+189
| | | | | | | | | | | | | * fix named primaries * default to gamma22 * mark mastering primaries as supported * remove xx-cm and frog support * immutable primaries and image descriptions * clang-format
* rules/windowRuleApplicator: fix min/max size effects (#12491)Vaxry2025-12-274-5/+5
| | | fixes #12412
* protocols/xdg-shell: fix crash on null parent in pin (#12694)UjinT342025-12-211-3/+4
|
* window: automatically pin child windows (#12224)ArchSav2025-12-201-1/+10
|
* debug: move to hyprutils' logger (#12673)Vaxry2025-12-1856-425/+427
|
* protocols/datadevice: avoid double leaveVaxry2025-12-112-2/+11
| | | | ref https://github.com/hyprwm/Hyprland/discussions/12494
* protocols/compositor: fix null deref on unassigned surface image descVaxry2025-12-081-1/+1
| | | | ref #12603
* desktop: cleanup, unify desktop elements as views (#12563)Vaxry2025-12-0826-70/+79
|
* renderer/cm: higher-quality tonemapping (#12204)Dominick DiMaggio2025-12-071-0/+21
|
* renderer/cm: fix typo on color simage description op (#12551)SAM2025-12-051-2/+3
| | | fix: typo on color simage description op
* renderer: add quirks:prefer_hdr to fix HDR activation for some clients (#12436)UjinT342025-12-031-0/+4
|
* src/protocols/types/DMABuffer.cpp: <sys/ioctl.h> is required for ioctl(), ↵SASANO Takayoshi2025-11-271-1/+1
| | | | not only linux (#12483)
* protocols/lock: fix missing output enter on surface (#12448)Tom Englund2025-11-261-1/+5
|
* buffers: revert state merging (#12461)Tom Englund2025-11-254-36/+14
| | | | | | 8e8bfbb0b146fb1f3234b2a3e3e92b63989e1993 added fifo and merged non buffer states before comitting them, something about certain xwl non buffer commits expects a commit to happend and causes regressions as in low fps.
* compositor: Configurable behavior when window to be focused conflicts with ↵Nikolai Nechaev2025-11-256-18/+23
| | | | | | | | | | fullscreen (#12033) Renames `misc:new_window_takes_over_fullscreen` into `misc:on_focus_under_fullscreen` and implements the following behavior: - By default, when a tiling window is being focused on a workspace where a fullscreen/maximized window exists, respect the `misc:on_focus_under_fullscreen` config variable.
* protocols/workspace: avoid crash on inert outputsVaxry2025-11-251-0/+3
|
* protocols/workspace: fix crash in initial group sendingVaxry2025-11-212-3/+8
| | | | fixes #12419
* windowrules: rewrite completely (#12269)Vaxry2025-11-177-8/+20
| | | | | | | Reworks the window rule syntax completely --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* screencopy: fix possible crash in renderMon()Vaxry2025-11-121-1/+2
|
* renderer: fix noscreenshare layerrule popups (#12260)usering-around2025-11-111-17/+23
|
* presentation: only send sync output on presented (#12255)Tom Englund2025-11-111-1/+1
| | | | | | | as protocol states there is two events. 'presented' or 'discarded'. wp_presentation_feedback::sync_output As presentation can be synchronized to only one output at a time, this event tells which output it was. This event is only sent prior to the presented event.
* renderer: Allow DS for surfaces with inert subsurfaces (#12133)Dominick DiMaggio2025-11-112-0/+14
|
* protocols/layershell: do not raise protocol error if layer surface is not ↵Aurelle2025-11-091-1/+1
| | | | anchored (#12241)
* protocols/outputMgmt: fix wlr-randr by defering success event until monitor ↵nikromen2025-11-082-2/+30
| | | | | | | | | | | reloads (#12236) wlr-randr disconnects immediately after receiving success event, but before applying the monitor configuration. This causes the state to be lost when performMonitorReload() is called. By postponing the success event until the call of the hook monitorLayoutChanged we ensure the configuration to remain valid during the reload process.
* chore: fix non-relative imports (#12228)Amadej Kastelic2025-11-062-2/+2
|
* protocols: add Fifo-v1 and commit-timing-v1 (#12052)Tom Englund2025-11-0621-120/+730
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * protocols: add Fifo-v1 introduce fifo-v1 * fifo: only present locked surfaces dont present to unlocked surfaces and commit pending states from the fifo protocol. * fifo: cformat cformat * protocols: add committiming and surface state queue introduce CSurfaceStateQueue and commit-timing-v1 * fifo: schedule a frame if waiting on barrier if we are waiting on a barrier the state doesnt commit until the next refresh cycle meaning the monitor might have no pending damage and we never get onPresented to unlock the barrier, moment 22. so schedule a frame. * fifo: properly check monitor intersection check for m_enteredoutputs or monitor intersection if client hasnt bound one yet, and dont fifo lock it until the surface is mapped. * buffer: try to merge states before committing them try to merge states before committing them meaning way less churn and surface commits if a surface sends multiple small ones while we wait for buffer readyness from either fifo locks or simply fences. * buffer: dont commit states past the buffer certain changes are relative to the buffer attached, cant go beyond it and apply those onto the next buffer. * buffer: set the lockmask directly cant use .lock since the state hasnt been queued yet, set the lockmask directly when exporting buffer fence. * fifo: dont fifo lock on tearing dont fifo lock on tearing. * buffer: queue the state directly queue the state directly and use the .lock function instead of directly modify the lockMask on the state. * buffer: revert creating texture at commit time fifo barriers introduces such long wait that upon commit time a race happends with current xdg configure implentation that the buffer and image is actually destroyed when entering commitState, doing it at buffer creation time with EGL_PRESERVED_KHR means it sticks around until we are done. so revert 82759d4 and 32f3233 for now. * buffer: rename enum and lockreasons eLockReason and LOCK_REASON_NONE. * fifo: workaround direct scanout lock workaround cursor commits causing fifo to get forever locked, this entire thing needs to be worked out.
* protocols/dmabuf: handle null pointer in ↵André Silva2025-11-041-1/+5
| | | | CLinuxDMABufV1Protocol::resetFormatTable (#12207)
* sessionlock: fix crash when sendScale is called on a disconnected (#12171)Matteo Golinelli2025-10-311-1/+7
|
* cursor: refactor override handling (#12166)Vaxry2025-10-311-4/+5
| | | much cleaner and more reliable. Should fix https://github.com/hyprwm/Hyprland/issues/12088
* protocols/core: round dnd drop surface boxVaxry2025-10-291-1/+1
|
* screencopy: wait longer to re-enable DS (#12135)Dominick DiMaggio2025-10-261-0/+4
|