diff --git a/CHANGES b/CHANGES
index 5ec7f364..e7c0b6a9 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,35 @@
+Louvre (2.10.0-1)
+
+ # API Additions
+
+ * Added LTexture::setFence() and LRenderBuffer::setFence() to prevent partial updates when used as source textures.
+ * Added LTexture::setDataFromGL() to enable wrapping of already created OpenGL textures.
+
+ # Performance
+
+ * Replaced glFinish() calls with fences, ensuring synchronization without requiring CPU-side waiting.
+
+ # Bug Fixes
+
+ * Fixed issue of black textures appearing on proprietary NVIDIA drivers (and potentially others). Thanks @renhiyama and @kingdomkind for all your help!
+ * Fixed synchronization issues between threads that were causing partial texture updates.
+ * Replaced calls to wl_client_destroy with wl_resource_post_error when an unknown buffer type is committed, which was causing a segmentation fault. Thanks @Ramblurr for reporting it!
+ * Fixed segfault occurring when an idle inhibitor resource was destroyed.
+ * Wayland Backend: Resolved issue where modifier keys were not released when the window lost focus. Thanks @renhiyama for reporting it!
+
+ # Tests
+
+ * Added test to validate support for common texture formats and the synchronization of updates across threads.
+
+ # Dependencies
+
+ * Updated SRM dependency to version >= v0.8.0.
+
+ Special thanks to @renhiyama, @kingdomkind, and @Fox2Code for your invaluable support!
+
+ -- Eduardo Hopperdietzel Wed, 30 Oct 2024 22:10:55 -0300
+
+
Louvre (2.9.0-1)
# API Additions
diff --git a/README.md b/README.md
index 32c657c9..e1e723df 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
-
+
@@ -158,12 +158,12 @@ Similarly as with CPU consumption, we can observe that Louvre uses fewer GPU res
## 🔨 Upcoming Features
+* DRM Synchronization Object
+* Rootless XWayland
* Wlr Output Management
+* DRM Lease Protocol
* Cursor Shape Protocol
* DRM Overlay Planes Control
-* DRM Synchronization Object
-* DRM Lease Protocol
-* Rootless XWayland
* Tablet Events Protocol
* Virtual Keyboard Protocol
* Input Methods Protocol
\ No newline at end of file
diff --git a/VERSION b/VERSION
index c8e38b61..10c2c0c3 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.9.0
+2.10.0
diff --git a/doxygen/md/Downloads.md b/doxygen/md/Downloads.md
index 0a64e6f1..530e997b 100644
--- a/doxygen/md/Downloads.md
+++ b/doxygen/md/Downloads.md
@@ -17,7 +17,7 @@ Louvre relies on the following libraries:
* **egl** >= 1.5
* **glesv2** >= 3.2
* **libdrm** >= 2.4.113
-* **srm** >= 0.7.2
+* **srm** >= 0.8.0
* **libudev** >= 249
* **libinput** >= 1.20.0
* **xcursor** >= 1.2.0
diff --git a/src/backends/graphic/DRM/LGraphicBackendDRM.cpp b/src/backends/graphic/DRM/LGraphicBackendDRM.cpp
index 97b8b6da..5ba35446 100644
--- a/src/backends/graphic/DRM/LGraphicBackendDRM.cpp
+++ b/src/backends/graphic/DRM/LGraphicBackendDRM.cpp
@@ -347,6 +347,12 @@ bool LGraphicBackend::backendInitialize()
srmCoreDestroy(bknd->core);
goto fail;
}
+ else if (version->major == 0 && version->minor < 8)
+ {
+ LLog::fatal("[%s] Using SRM v%d.%d.%d but version >= v0.8.0 is required.", BKND_NAME, version->major, version->minor, version->patch);
+ srmCoreDestroy(bknd->core);
+ goto fail;
+ }
allocatorDevice = srmCoreGetAllocatorDevice(bknd->core);
diff --git a/src/lib/core/LSurface.h b/src/lib/core/LSurface.h
index 6b01c9a5..61b6ef48 100644
--- a/src/lib/core/LSurface.h
+++ b/src/lib/core/LSurface.h
@@ -469,7 +469,9 @@ class Louvre::LSurface : public LFactoryObject
*/
Protocols::Wayland::RSurface *surfaceResource() const noexcept;
- // TODO: add doc
+ /**
+ * @brief Idle Inhibitor Resources
+ */
std::vector idleInhibitorResources() const noexcept;
/**
diff --git a/src/meson.build b/src/meson.build
index d5cc535b..f0ac70ed 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -57,7 +57,7 @@ pixman_dep = dependency('pixman-1', version: '>= 0.40.0')
drm_dep = dependency('libdrm', version: '>= 2.4.113')
input_dep = dependency('libinput', version: '>= 1.20.0')
libseat_dep = dependency('libseat', version: '>= 0.6.4')
-srm_dep = dependency('SRM', version : '>=0.7.2')
+srm_dep = dependency('SRM', version : '>=0.8.0')
pthread_dep = cpp.find_library('pthread')
dl_dep = cpp.find_library('dl')
diff --git a/src/meson_options.txt b/src/meson_options.txt
index 4e84523d..76dceaf0 100644
--- a/src/meson_options.txt
+++ b/src/meson_options.txt
@@ -4,7 +4,7 @@ option('build_examples',
option('build_tests',
type : 'boolean',
- value : true)
+ value : false)
option('backend-drm',
type: 'boolean',