Skip to content

Instantly share code, notes, and snippets.

View gulafaran's full-sized avatar

Tom Englund gulafaran

View GitHub Profile
#include <wayland-client.h>
#include <wayland-egl.h>
#include <EGL/egl.h>
#include <EGL/eglplatform.h>
#include <GLES2/gl2.h>
#include "xdg-shell-client-protocol.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <vulkan/vulkan.h>
#include <unistd.h> // For close(fd)
#include <iostream>
// Function to create exportable Vulkan memory
VkDeviceMemory allocateExportableMemory(VkDevice device, VkDeviceSize size, uint32_t memoryTypeIndex, int* outFd) {
VkExportMemoryAllocateInfo exportAllocInfo{};
exportAllocInfo.sType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO;
exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT;
diff --git a/src/protocols/Screencopy.cpp b/src/protocols/Screencopy.cpp
index aae5caf1..701987ca 100644
--- a/src/protocols/Screencopy.cpp
+++ b/src/protocols/Screencopy.cpp
@@ -221,6 +221,9 @@ bool CScreencopyFrame::copyDmabuf() {
g_pHyprOpenGL->m_RenderData.blockScreenShader = true;
g_pHyprRenderer->endRender();
+ auto sync = g_pHyprOpenGL->createEGLSync();
+ sync->wait();
This file has been truncated, but you can view the full file.
[1688110.631] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2)
[1688110.645] {Default Queue} -> wl_display#1.sync(new id wl_callback#3)
[1688110.676] {Display Queue} wl_display#1.delete_id(3)
[1688110.679] {Default Queue} wl_registry#2.global(1, "wl_seat", 9)
[1688110.681] {Default Queue} -> wl_registry#2.bind(1, "wl_seat", 1, new id [unknown]#4)
[1688110.683] {Default Queue} wl_registry#2.global(2, "wl_data_device_manager", 3)
[1688110.684] {Default Queue} wl_registry#2.global(3, "wl_compositor", 6)
[1688110.686] {Default Queue} -> wl_registry#2.bind(3, "wl_compositor", 4, new id [unknown]#5)
[1688110.687] {Default Queue} wl_registry#2.global(4, "wl_subcompositor", 1)
[1688110.688] {Default Queue} wl_registry#2.global(5, "wl_shm", 1)
This file has been truncated, but you can view the full file.
[1688110.631] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2)
[1688110.645] {Default Queue} -> wl_display#1.sync(new id wl_callback#3)
[1688110.676] {Display Queue} wl_display#1.delete_id(3)
[1688110.679] {Default Queue} wl_registry#2.global(1, "wl_seat", 9)
[1688110.681] {Default Queue} -> wl_registry#2.bind(1, "wl_seat", 1, new id [unknown]#4)
[1688110.683] {Default Queue} wl_registry#2.global(2, "wl_data_device_manager", 3)
[1688110.684] {Default Queue} wl_registry#2.global(3, "wl_compositor", 6)
[1688110.686] {Default Queue} -> wl_registry#2.bind(3, "wl_compositor", 4, new id [unknown]#5)
[1688110.687] {Default Queue} wl_registry#2.global(4, "wl_subcompositor", 1)
[1688110.688] {Default Queue} wl_registry#2.global(5, "wl_shm", 1)
This file has been truncated, but you can view the full file.
[1344146.084] {Default Queue} -> wl_display#1.get_registry(new id wl_registry#2)
[1344146.101] {Default Queue} -> wl_display#1.sync(new id wl_callback#3)
[1344146.134] {Display Queue} wl_display#1.delete_id(3)
[1344146.137] {Default Queue} wl_registry#2.global(1, "wl_seat", 9)
[1344146.139] {Default Queue} -> wl_registry#2.bind(1, "wl_seat", 1, new id [unknown]#4)
[1344146.141] {Default Queue} wl_registry#2.global(2, "wl_data_device_manager", 3)
[1344146.142] {Default Queue} wl_registry#2.global(3, "wl_compositor", 6)
[1344146.144] {Default Queue} -> wl_registry#2.bind(3, "wl_compositor", 4, new id [unknown]#5)
[1344146.145] {Default Queue} wl_registry#2.global(4, "wl_subcompositor", 1)
[1344146.146] {Default Queue} wl_registry#2.global(5, "wl_shm", 1)
diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp
index a9fe33db..23b42aeb 100644
--- a/src/protocols/core/Compositor.cpp
+++ b/src/protocols/core/Compositor.cpp
@@ -471,12 +471,10 @@ void CWLSurfaceResource::commitPendingState(SSurfaceState& state) {
nullptr);
}
- // release the buffer if it's synchronous as update() has done everything thats needed
+ // release the buffer as update() has done everything thats needed
DATE KI_VENDOR VERSION CONF_ROOT LAYOUT INITRD_GEN UKI_GEN BOOT_ROOT KERNEL_REL_PATH INITRD_REL_PATH PLUGIN_OVERRIDE
Mon Jan 13 20:15:19 CET 2025 systemd 6.12.9-gentoo-tom /usr/lib/kernel compat dracut none /boot kernel-6.12.9-gentoo-tom initramfs-6.12.9-gentoo-tom.img notset
Mon Jan 13 20:20:15 CET 2025 systemd 6.12.9-gentoo-tom /usr/lib/kernel compat dracut none /boot kernel-6.12.9-gentoo-tom initramfs-6.12.9-gentoo-tom.img notset
Mon Jan 13 20:20:51 CET 2025 systemd 6.12.9-gentoo-tom /usr/lib/kernel compat dracut none /boot kernel-6.12.9-gentoo-tom initramfs-6.12.9-gentoo-tom.img notset
Tue Jan 14 08:37:54 CET 2025 systemd 6.12.9-gentoo-tom /usr/lib/kernel compat dracut none /boot kernel-6.12.9-gentoo-tom initramfs-6.12.9-gentoo-tom.img notset
Sat Jan 18 05:50:16 CET 2025 systemd 6.12.10-gentoo-tom /usr/lib/kernel compat dracut none /boot kernel-6.12.10-gentoo-tom initramfs-6.12.10-gentoo-tom.img notset
Sun Jan 19 04:37:31 CET 2025 systemd 6.12.10-gentoo-tom /usr/lib/kernel compat dracut none /boot kernel
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.13.0-gentoo Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Gentoo 14.2.1_p20241221 p7) 14.2.1 20241221"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=140201
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=24301
diff --git a/src/nvidia/src/kernel/rmapi/event_notification.c b/src/nvidia/src/kernel/rmapi/event_notification.c
index cf78eadd..d6937cac 100644
--- a/src/nvidia/src/kernel/rmapi/event_notification.c
+++ b/src/nvidia/src/kernel/rmapi/event_notification.c
@@ -286,11 +286,11 @@ static NV_STATUS _gpuEngineEventNotificationListNotify
portSyncSpinlockAcquire(pEventNotificationList->pSpinlock);
{
// We don't expect this to be called multiple times in parallel
- NV_ASSERT_OR_ELSE(pEventNotificationList->pendingEventNotifyCount == 0,
+ if (pEventNotificationList->pendingEventNotifyCount != 0)