1
0
Fork 0
forked from wry/wry

drm: include st_rdev in Drm object

This commit is contained in:
Julian Orth 2024-10-09 13:39:57 +02:00
parent 9a084a53aa
commit b754e37bfe
9 changed files with 41 additions and 34 deletions

View file

@ -236,7 +236,13 @@ impl MetalBackend {
return;
}
};
let master = Rc::new(DrmMaster::new(&slf.state.ring, res.fd.clone()));
let master = match DrmMaster::new(&slf.state.ring, res.fd.clone()) {
Ok(m) => Rc::new(m),
Err(e) => {
log::error!("Could not open the drm device: {}", ErrorFmt(e));
return;
}
};
let dev = match slf.create_drm_device(dev, &master) {
Ok(d) => d,
Err(e) => {

View file

@ -59,7 +59,7 @@ use {
rc::Rc,
},
thiserror::Error,
uapi::{c::dev_t, Errno},
uapi::c::dev_t,
};
#[derive(Debug, Error)]
@ -114,8 +114,6 @@ pub enum XBackendError {
MapWindow(#[source] XconError),
#[error("Could not query device")]
QueryDevice(#[source] XconError),
#[error("Could not fstat the drm device")]
DrmDeviceFstat(#[source] Errno),
#[error("Render device does not support XRGB8888 format")]
XRGB8888,
}
@ -174,10 +172,7 @@ pub async fn create(state: &Rc<State>) -> Result<Rc<XBackend>, XBackendError> {
Err(e) => return Err(XBackendError::DriOpen(e)),
}
};
let drm_dev = match uapi::fstat(drm.raw()) {
Ok(s) => s.st_rdev,
Err(e) => return Err(XBackendError::DrmDeviceFstat(e)),
};
let drm_dev = drm.dev();
let gbm = GbmDevice::new(&drm)?;
let ctx = match state.create_gfx_context(&drm, None) {
Ok(r) => r,