SRM is a C library that simplifies the development of Linux DRM/KMS API applications.

With SRM, you can focus on the OpenGL ES 2.0 logic of your application. For each available display, you can start a rendering thread that triggers common events like initializeGL(), paintGL(), resizeGL(), pageFlipped() and uninitializeGL().

SRM allows you to use multiple GPUs simultaneously and automatically finds the most efficient configuration. It also offers functions for creating OpenGL textures, which are automatically shared among GPUs.

Features

  • Multiple GPUs support
  • Automatic optimal GPUs/connectors configuration
  • Automatic texture sharing between GPUs
  • Texture allocation from CPU buffers, DMA buffers, GBM BOs, Flink Handles, Wayland DRM buffers.
  • Multi seat support (libseat can be used to open DRM devices for example)
  • GPU hot-plugging event listener
  • Connectors hot-plugging event listener
  • Hardware cursor compositing
  • V-Sync
  • Frame buffer damage (improves performance when DMA is not supported)
  • Access to renderbuffers as textures.

Project Activity

See All Activity >

License

GNU General Public License version 3.0 (GPLv3)

Follow SRM

SRM Web Site

Other Useful Business Software
Go From AI Idea to AI App Fast Icon
Go From AI Idea to AI App Fast

One platform to build, fine-tune, and deploy ML models. No MLOps team required.

Access Gemini 3 and 200+ models. Build chatbots, agents, or custom models with built-in monitoring and scaling.
Try Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of SRM!

Additional Project Details

Operating Systems

Linux

Intended Audience

Developers, Education, Engineering

Programming Language

C

Related Categories

C Graphics Software, C Embedded Systems Software

Registered

2023-09-24