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 @@ Louvre is released under the MIT license. - Current Louvre version. + Current Louvre version.

@@ -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',