Skip to content

SRM v0.8.0-1

Compare
Choose a tag to compare
@ehopperdietzel ehopperdietzel released this 31 Oct 03:10
· 13 commits to main since this release

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