Skip to content

Releases: CuarzoSoftware/SRM

SRM v0.10.0-1

11 Nov 14:10
Compare
Choose a tag to compare

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

07 Nov 03:32
Compare
Choose a tag to compare

SRM (0.9.0-1)

API Additions

  • srmConnectorIsNonDesktop: Checks if a connector is not intended for desktop usage such as VR headsets.
  • srmDeviceSetUserData and srmDeviceGetUserData.

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

01 Nov 08:15
Compare
Choose a tag to compare

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

31 Oct 03:10
Compare
Choose a tag to compare

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, with glFinish() as a fallback.
  • srmBufferGetEGLImage: Retrieves an EGLImage of an SRMBuffer for a specific SRMDevice.
  • srmBufferCreateGLTextureWrapper: Creates SRMBuffers from existing OpenGL textures.
  • srmConnectorGetFramebufferID: Retrieves the ID of the currently bound OpenGL framebuffer.
  • srmConnectorGetContext: Retrieves the EGLContext associated with the connector's rendering thread.
  • srmSaveContext: Saves the current EGL context.
  • srmRestoreContext: Restores the context previously saved with srmSaveContext().

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 using glFinish(), 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

07 Sep 23:00
Compare
Choose a tag to compare

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

15 Aug 02:32
Compare
Choose a tag to compare

SRM (0.7.1-1)

Bug Fixes

  • Resolved segmentation fault occurring on certain EGL implementations when obtaining a GBM EGLDisplay through eglGetDisplay(). This was fixed by using eglGetPlatformDisplay() 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

23 Jul 15:44
Compare
Choose a tag to compare

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 with DRM_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 disabling srmConnectorSetCustomScanoutBuffer().

-- Eduardo Hopperdietzel [email protected] Tue, 23 Jul 2024 11:44:04 -0400

SRM v0.6.3-1

10 Jul 16:56
Compare
Choose a tag to compare

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

08 Jul 05:25
Compare
Choose a tag to compare

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

07 Jul 05:06
Compare
Choose a tag to compare

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