summaryrefslogtreecommitdiff
path: root/src/helpers
diff options
context:
space:
mode:
authorTom Englund <tomenglund26@gmail.com>2025-08-24 09:57:37 +0200
committerGitHub <noreply@github.com>2025-08-24 08:57:37 +0100
commitced38b1b0f46f9fbdf9d37644d27bdbd2a29af1d (patch)
tree1518e6ba2d2ad3803ae74be86f6921321cf7e305 /src/helpers
parentd9cf1cb78ef3dfd82f03965aab70792bbe25c9e2 (diff)
disable buffer readability checks on intel (#11515)
* 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.
Diffstat (limited to 'src/helpers')
-rw-r--r--src/helpers/sync/SyncTimeline.cpp4
-rw-r--r--src/helpers/sync/SyncTimeline.hpp2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/helpers/sync/SyncTimeline.cpp b/src/helpers/sync/SyncTimeline.cpp
index 614a7c5b..9fe2e406 100644
--- a/src/helpers/sync/SyncTimeline.cpp
+++ b/src/helpers/sync/SyncTimeline.cpp
@@ -64,7 +64,7 @@ std::optional<bool> CSyncTimeline::check(uint64_t point, uint32_t flags) {
return ret == 0;
}
-bool CSyncTimeline::addWaiter(const std::function<void()>& waiter, uint64_t point, uint32_t flags) {
+bool CSyncTimeline::addWaiter(std::function<void()>&& waiter, uint64_t point, uint32_t flags) {
auto eventFd = CFileDescriptor(eventfd(0, EFD_CLOEXEC));
if (!eventFd.isValid()) {
@@ -77,7 +77,7 @@ bool CSyncTimeline::addWaiter(const std::function<void()>& waiter, uint64_t poin
return false;
}
- g_pEventLoopManager->doOnReadable(std::move(eventFd), waiter);
+ g_pEventLoopManager->doOnReadable(std::move(eventFd), std::move(waiter));
return true;
}
diff --git a/src/helpers/sync/SyncTimeline.hpp b/src/helpers/sync/SyncTimeline.hpp
index 37d5b301..5b5aa224 100644
--- a/src/helpers/sync/SyncTimeline.hpp
+++ b/src/helpers/sync/SyncTimeline.hpp
@@ -25,7 +25,7 @@ class CSyncTimeline {
// std::nullopt on fail
std::optional<bool> check(uint64_t point, uint32_t flags);
- bool addWaiter(const std::function<void()>& waiter, uint64_t point, uint32_t flags);
+ bool addWaiter(std::function<void()>&& waiter, uint64_t point, uint32_t flags);
Hyprutils::OS::CFileDescriptor exportAsSyncFileFD(uint64_t src);
bool importFromSyncFileFD(uint64_t dst, Hyprutils::OS::CFileDescriptor& fd);
bool transfer(SP<CSyncTimeline> from, uint64_t fromPoint, uint64_t toPoint);