Releases: CuarzoSoftware/SRM
SRM v0.10.0-1
SRM (0.10.0-1)
API Additions
srmConnectorGetSerial
: Retrieves the serial number of a connected display.
-- Eduardo Hopperdietzel [email protected] Mon, 11 Nov 2024 10:47:07 -0300
SRM v0.9.0-1
SRM (0.9.0-1)
API Additions
srmConnectorIsNonDesktop
: Checks if a connector is not intended for desktop usage such as VR headsets.srmDeviceSetUserData
andsrmDeviceGetUserData
.
Packaging
- Added a new Arch AUR (devel branch) to the downloads page. Thanks @kingdomkind!
-- Eduardo Hopperdietzel [email protected] Thu, 07 Nov 2024 00:28:01 -0300
SRM v0.8.0-2
SRM (0.8.0-2)
Packaging
- Added official Fedora COPR link to the downloads page.
-- Eduardo Hopperdietzel [email protected] Wed, 31 Oct 2024 21:21:08 -0300
SRM v0.8.0-1
SRM (0.8.0-1)
Bug Fixes
- Fixed buffer allocation issues, particularly on NVIDIA proprietary drivers, which resulted in black textures.
- Corrected framebuffer rendering order in proprietary NVIDIA drivers.
- Resolved partial buffer updates by implementing fences.
- Fixed bug preventing the use of DRM framebuffers with explicit modifiers.
API Additions
srmDeviceMakeCurrent
: Makes the EGL display and context associated with a device current for the calling thread, or creates a new shared one if it doesn't exist.srmDeviceSyncWait
: Forces pending rendering commands to finish using fences, withglFinish()
as a fallback.srmBufferGetEGLImage
: Retrieves anEGLImage
of anSRMBuffer
for a specificSRMDevice
.srmBufferCreateGLTextureWrapper
: CreatesSRMBuffers
from existing OpenGL textures.srmConnectorGetFramebufferID
: Retrieves the ID of the currently bound OpenGL framebuffer.srmConnectorGetContext
: Retrieves theEGLContext
associated with the connector's rendering thread.srmSaveContext
: Saves the current EGL context.srmRestoreContext
: Restores the context previously saved withsrmSaveContext()
.
Internal Changes
- All rendering modes now use renderbuffers instead of
EGLSurfaces
to prevent buffer ordering issues. - Fences are used to synchronize buffer updates and access, providing better performance and ensuring no partial updates occur.
IN_FENCE_FD
and sync files are now used when available to wait for rendering commands to finish instead of usingglFinish()
, improving performance.
Thanks @renhiyama, @kingdomkind, and @Fox2Code for your invaluable help!
-- Eduardo Hopperdietzel [email protected] Wed, 30 Oct 2024 21:21:08 -0300
SRM v0.7.2-1
SRM (0.7.2-1)
New Environment Variables
- SRM_FORCE_LEGACY_CURSOR: Allows forcing the use of legacy DRM cursor IOCTLs.
- SRM_DISABLE_CURSOR: Allows disabling cursor planes for all drivers.
- SRM_ENABLE_WRITEBACK_CONNECTORS: Allows toggling the writeback DRM client capability.
Internal Changes
- Legacy cursor IOCTLs are now used by default, even when using the atomic API, unless SRM_FORCE_LEGACY_CURSOR is set to 0. This is because legacy IOCTLs are asynchronous and provide a much smoother experience.
- Cursor planes are now disabled by default for NVIDIA proprietary drivers unless SRM_NVIDIA_CURSOR is set to 1. This is because updating cursors occasionally causes screen stuttering.
Dependencies
- Specify the minimum required version of all dependencies.
-- Eduardo Hopperdietzel [email protected] Sat, 07 Sep 2024 16:51:58 -0400
SRM v0.7.1-1
SRM (0.7.1-1)
Bug Fixes
- Resolved segmentation fault occurring on certain EGL implementations when obtaining a GBM
EGLDisplay
througheglGetDisplay()
. This was fixed by usingeglGetPlatformDisplay()
instead. Credits to @burgerindividual .
Downloads
- Added link to Fedora package. Credits to @Conan-Kudo .
Dependencies
- Updated EGL dependency to version 1.5 or higher.
-- Eduardo Hopperdietzel [email protected] Wed, 14 Aug 2024 22:06:30 -0400
SRM v0.7.0-1
SRM (0.7.0-1)
API Additions
- Added
srmConnectorSetCustomScanoutBuffer()
function to override the primary plane framebuffer for specific frames. - Introduced
srmFormatGetAlphaSubstitute()
function to retrieve the translucent or opaque version of DRM formats.
Examples
- Added
srm-direct-scanout
example.
Internal Changes
- Integrated legacy plane supported formats into
SRMPlane
withDRM_FORMAT_MOD_INVALID
. - Implemented internal EGL Image creation for CPU buffers allocated through OpenGL.
- Incorporated an internal reference counter to
SRMBuffer
.
Environment
- Added
SRM_DISABLE_CUSTOM_SCANOUT
env to enforce disablingsrmConnectorSetCustomScanoutBuffer()
.
-- Eduardo Hopperdietzel [email protected] Tue, 23 Jul 2024 11:44:04 -0400
SRM v0.6.3-1
SRM (0.6.3-1)
Bug Fixes
- Fallback to using implicit framebuffer modifiers in all rendering modes if
drmModeAddFB2WithModifiers()
fails. Thanks to @RogerDavenport for reporting the issue.
-- Eduardo Hopperdietzel [email protected] Wed, 10 Jul 2024 12:44:04 -0400
SRM v0.6.2-1
SRM (0.6.2-1)
Bug Fixes
- Fixed incorrect default linear gamma table calculation in atomic API.
- Added mutex to prevent racing conditions with external threads when updating the atomic changes flags.
-- Eduardo Hopperdietzel [email protected] Mon, 08 Jul 2024 00:13:05 -0400
SRM v0.6.1-1
SRM (0.6.1-1)
Performance
- New PRIME rendering mode introduced to enhance performance on multi-GPU setups with limited common DMA formats/modifiers.
- Integrated GPUs are now designated as the default allocator device (primary device), promoting lower power consumption and improved performance.
Bug Fixes
- Added small validation tests to ensure proper selection of main-memory buffer allocation APIs, preventing texture glitches on drivers that do not fully support GBM APIs.
Environment
- All rendering modes now default to double buffering, with optional support for triple buffering. The single buffering option has been deprecated.
Examples
- Added link to example that uses Skia as renderer.
-- Eduardo Hopperdietzel [email protected] Sat, 06 Jul 2024 23:28:04 -0400