SRM (0.5.6-2)

  # Building

  * Add DRM headers dependency to all examples to resolve issues locating the drm_fourcc.h header, thanks to @EBADBEEF.
  * Remove unnecessary header include checks in meson.build.

-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Thu, 30 May 2024 21:39:15 -0400


SRM (0.5.6-1)

  # Bug Fixes

  * Implemented GL and EGL extension checks to prevent SRMBuffers creation when conditions to use them are not met.
  * Replaced the device used to retrieve the OpenGL texture ID of a framebuffer used in DUMB mode, resolving segfaults with nvidia-drm drivers. Special thanks to @dranull and @JaanDev for reporting and testing.

  # Environment

  * Added the SRM_DEVICES_BLACKLIST environment variable for disabling specific DRM devices.
  * By default, disabled cursor planes on Nvidia proprietary drivers, which were causing significant FPS drops when the cursor was updated. Also, added the SRM_NVIDIA_CURSOR environment variable to enable it if desired.
  
  # Documentation

  * Added Nvidia drivers section on the Environment page with recommended configurations.

-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Sat, 13 Apr 2024 12:37:03 -0400


SRM (0.5.5-1)

  # Bug Fixes

  * Corrected automatic allocator device selection on multi-GPU setups. Thanks to @rafalz1978 for reporting and testing.
  * Resolved atomic hardware cursor bug on connector initialization, ensuring the cursor pixmap update.

  # Environment

  * Introduced SRM_FORCE_GL_ALLOCATION environment variable to enforce main memory buffer allocation with OpenGL instead of GBM.
  * Added SRM_ALLOCATOR_DEVICE environment variable to allow manual override of the automatic allocator device chosen by SRM.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Sat, 16 Mar 2024 17:26:14 -0300


SRM (0.5.4-1)

  # Bug Fixes

  * Introduced glFinish() calls after initializeGL() and resizeGL(), and glFlush() before eglSwapBuffers() to resolve an AMDGPU bug causing issues with buffer allocation and rendering command processing. Gratitude to @2xsaiko for reporting the problem and testing the applied fixes.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Fri, 08 Mar 2024 23:00:21 -0300


SRM (0.5.3-1)

  # Bug Fixes

  * Addressed Nouveau bug failing to allocate buffers with GBM, thanks to @okcomput3 for reporting the issue.

  # Building

  * Replaced `<sys/poll.h>` include with `<poll.h>` to eliminate warning when building on musl-based distros.

  # Internal Changes

  * Removed unused and experimental code for parallelized buffer copy.
  * EGL and OpenGL extensions are now printed when using logging level >= 4.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Sat, 24 Feb 2024 08:10:50 -0300


SRM (0.5.2-1)

  # Bug Fixes

  * Addressed bug in the atomic API causing issues with the refresh rate and hardware cursor plane updates, thanks to @2xsaiko for reporting the issue.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Sun, 11 Feb 2024 00:36:48 -0300


SRM (0.5.1-1)

  # Bug Fixes

  * Correct debugging message that incorrectly announces the absence of gamma correction support when, in fact, it is supported.
  * Fix segmentation fault occurring during the uninitialization of multiple connectors using the DUMB rendering mode. This issue arises from the handling of a pending page flip event after the connectors have been uninitialized.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Thu, 08 Feb 2024 12:23:21 -0300


SRM (0.5.0-1)

  # New Features

  * Introduced srmConnectorGetSubPixel() to retrieve the subpixel layout of a connected display.
  * Added support for gamma correction through srmConnectorGetGammaSize() and srmConnectorSetGamma().
  * Introduced srmConnectorSetBufferDamageBoxes() to set connector damage using Pixman-style boxes.
  * Introduced new functions for vsync control: srmConnectorHasVSyncControlSupport(), srmConnectorIsVSyncEnabled(), and srmConnectorEnableVSync().
    Note: Support for the atomic DRM API requires Linux >= 6.8.
  * Added srmConnectorGetRefreshRateLimit() and srmConnectorSetRefreshRateLimit() functions to get and set the refresh rate limit of a connector when vsync is disabled.
  * Added srmConnectorGetPresentationClock() and srmConnectorGetPresentationTime() functions for querying presentation time information of framebuffers.

  # Security Improvements

  * Fixed a security vulnerability where the hardware cursor plane pointer reference used by a connector was set to NULL
    before the connector was completely uninitialized. This could have caused crashes due to racing conditions between threads.
  * Enabled compiler warning messages for SRMLog functions to alert when the value types to print do not match the specified string format.
  * Addressed a memory leak issue by ensuring the proper release of the connector mode blob ID after modifying a connector's mode.

  # Documentation

  * Enhanced the Doxygen layout to showcase member declarations at the top of each page, accompanied by brief descriptions for improved readability.
  * Added a "Pre-built Binaries" section on the Downloads page.

  # Building

  * Transformed the SRMTypes.h header into a configuration file, including macros to access the library version statically during compilation.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Mon, 29 Jan 2024 19:01:59 -0300


SRM (0.4.0-1)

  # New Features

  * Introduced srmPlaneGetFormats() to retrieve the supported formats/modifiers of an SRMPlane.
  * Implemented srmDeviceGetGLExtensions() for checking the support of common OpenGL extensions.
  * Added srmCoreGetVersion() to retrieve the current SRM version.

  # Building

  * Incorporated soversion in meson.build, special thanks to @sudipm-mukherjee.
  
  # Internal Changes

  * Set rendering OpenGL contexts to high priority.
  * Removed GL_BGRA format dependency in DUMB and CPU render modes.
  * Reduced the frequency of calls to eglMakeCurrent() in all render modes.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Fri, 15 Dec 2023 20:24:22 -0300


SRM (0.3.2-2)

  # Building

  * Implemented pkgconfig in meson.build to enhance dependency management, with special thanks to @jengelh.
  
  # Documentation Changes

  * Refactored meson.build for clarity in the tutorial.
  * Added the missing math.h header to the tutorial.
  * Added ldconfig command in the build instructions of the downloads page.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Sat, 18 Nov 2023 22:30:15 -0300


SRM (0.3.2-1)

  # Bug Fixes

  * Fixed build failure on Debian GNU/Linux 11.3 ARM64 caused by incorrect inclusion 
    of drm_fourcc.h in SRMTypes.h, thanks to Thomas Curley - @tomus85.
  
  # Internal Changes

  * Enforced the use of the legacy API in srmRenderModeCommonInitCrtc().

  # Documentation Changes

  * Added the missing libseat-dev dependency to the Debian building instructions.
  * Expanded the tested hardware section to include AMD GPU.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Fri, 17 Nov 2023 23:59:26 -0300


SRM (0.3.1-1)

  # Internal Changes

  * Implemented caching for frequently used shared DRM formats/modifiers, enhancing access speed.
  * Introduced the O_CLOEXEC flag to DMA, UDEV, and EPOLL file descriptors to prevent unintentional leakage to child processes.

  # Bug Fixes

  * Fixed crash occurring when a connector is hotplugged during a session switch.
  * Rectified a flawed DRM atomic commit that was preventing the configuration of CRTCs during connectors initialization.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Sun, 12 Nov 2023 21:13:17 -0300


SRM (0.3.0-1)

  # Additions

  * SRMBuffer now supports external OpenGL ES 2.0 textures.
  * Introduce srmBufferGetTextureTarget() for retrieving the OpenGL texture target of an SRMBuffer.

  # Bug Fixes

  * Disabled ITSELF rendering mode on Nouveau in multi-GPU setups to prevent crashes in drivers that do not support multitreading.
  * Fixed tearing of the first rendered frame when triple buffering is enabled.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Tue, 17 Oct 2023 14:57:31 -0300


SRM (0.2.0-1)

  # Additions

  * Introduce srmCoreSuspend() and srmCoreResume() functions to manage libseat session switching.
  * Add srmConnectorGetRendererDevice() function to simplify the retrieval of SRMBuffer OpenGL texture IDs, 
    reducing the need for repetitive calls to srmDeviceGetRendererDevice(srmConnectorGetDevice(connector)).

  # Internal Changes

  * Transition from using poll to epoll for handling udev monitor events.

  # Bug Fixes

  * Udev hotplugging events are now queued while SRM is suspended and emitted upon restoration. 
    This resolves the issue where connectors failed to initialize when connected while the session was suspended.
  * Fixed the bug where connectors rendering threads did not block when suspended.
  
-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Tue, 03 Oct 2023 20:11:15 -0300


SRM (0.1.0-2)

  * Clean up meson.build, thanks to @godalming123
  * Fix srmCoreProccessMonitor > srmCoreProcessMonitor typo, thanks to @godalming123

-- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Sun, 24 Sep 2023 12:25:07 -0300


SRM (0.1.0-1)

  * First release.

 -- Eduardo Hopperdietzel <ehopperdietzel@gmail.com>  Tue, 05 Sep 2023 23:41:13 -0300
