Revert "apply patch 2"

This reverts commit 43e46cb0c4.
This commit is contained in:
Samuel Cobb 2024-07-24 15:17:19 +01:00
parent 69106015ec
commit c9f4b7cf9e
2 changed files with 15 additions and 1 deletions

View File

@ -113,7 +113,7 @@ namespace Aquamarine {
void removeIdleEvent(Hyprutils::Memory::CSharedPointer<std::function<void(void)>> pfn);
// utils
int reopenDRMNode(int drmFD, bool allowRenderNode = false);
int reopenDRMNode(int drmFD, bool allowRenderNode = true);
struct {
Hyprutils::Signal::CSignal newOutput;

View File

@ -271,6 +271,20 @@ void Aquamarine::CBackend::dispatchIdle() {
// Yoinked from wlroots, render/allocator/allocator.c
// Ref-counting reasons, see https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/110
int Aquamarine::CBackend::reopenDRMNode(int drmFD, bool allowRenderNode) {
if (drmIsMaster(drmFD)) {
// Only recent kernels support empty leases
uint32_t lesseeID = 0;
int leaseFD = drmModeCreateLease(drmFD, nullptr, 0, O_CLOEXEC, &lesseeID);
if (leaseFD >= 0) {
return leaseFD;
} else if (leaseFD != -EINVAL && leaseFD != -EOPNOTSUPP) {
log(AQ_LOG_ERROR, "reopenDRMNode: drmModeCreateLease failed");
return -1;
}
log(AQ_LOG_DEBUG, "reopenDRMNode: drmModeCreateLease failed, falling back to open");
}
char* name = nullptr;
if (allowRenderNode)
name = drmGetRenderDeviceNameFromFd(drmFD);