diff --git a/libkms++/card.cpp b/libkms++/card.cpp
index 52a0f7a1008aa57368b8dcebe738c7538562c734..5f8dbd14fd6da02df86edbf13ea1eff0b43686cb 100644 (file)
--- a/libkms++/card.cpp
+++ b/libkms++/card.cpp
r = drmSetMaster(fd);
m_master = r == 0;
- r = drmSetClientCap(m_fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
- if (r)
- throw invalid_argument("Can't set universal planes");
+ if (getenv("LIBKMSXX_DISABLE_UNIVERSAL_PLANES") == 0) {
+ r = drmSetClientCap(m_fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
+ m_has_universal_planes = r == 0;
+ } else {
+ m_has_universal_planes = false;
+ }
- r = drmSetClientCap(m_fd, DRM_CLIENT_CAP_ATOMIC, 1);
- m_has_atomic = r == 0;
+ if (getenv("LIBKMSXX_DISABLE_ATOMIC") == 0) {
+ r = drmSetClientCap(m_fd, DRM_CLIENT_CAP_ATOMIC, 1);
+ m_has_atomic = r == 0;
+ } else {
+ m_has_atomic = false;
+ }
uint64_t has_dumb;
r = drmGetCap(fd, DRM_CAP_DUMB_BUFFER, &has_dumb);