kms/device: Don't advertise drm_node on software devices
This commit is contained in:
parent
a840b52930
commit
70cd1842c1
1 changed files with 23 additions and 14 deletions
|
|
@ -237,7 +237,7 @@ impl State {
|
|||
|
||||
let gbm = GbmDevice::new(fd)
|
||||
.with_context(|| format!("Failed to initialize GBM device for {}", path.display()))?;
|
||||
let (render_node, render_formats) = {
|
||||
let (render_node, render_formats, is_software) = {
|
||||
let egl = init_egl(&gbm)?;
|
||||
|
||||
let render_node = egl
|
||||
|
|
@ -248,7 +248,7 @@ impl State {
|
|||
.unwrap_or(drm_node);
|
||||
let render_formats = egl.context.dmabuf_texture_formats().clone();
|
||||
|
||||
(render_node, render_formats)
|
||||
(render_node, render_formats, egl.device.is_software())
|
||||
};
|
||||
|
||||
let token = self
|
||||
|
|
@ -271,8 +271,11 @@ impl State {
|
|||
)
|
||||
.with_context(|| format!("Failed to add drm device to event loop: {}", dev))?;
|
||||
|
||||
let socket = match self.create_socket(dh, render_node, render_formats.clone()) {
|
||||
Ok(socket) => Some(socket),
|
||||
let socket = match (!is_software)
|
||||
.then(|| self.create_socket(dh, render_node, render_formats.clone()))
|
||||
.transpose()
|
||||
{
|
||||
Ok(socket) => socket,
|
||||
Err(err) => {
|
||||
warn!(
|
||||
?err,
|
||||
|
|
@ -282,6 +285,21 @@ impl State {
|
|||
}
|
||||
};
|
||||
|
||||
let leasing_global = match (!is_software)
|
||||
.then(|| DrmLeaseState::new::<State>(dh, &drm_node))
|
||||
.transpose()
|
||||
{
|
||||
Ok(global) => global,
|
||||
Err(err) => {
|
||||
// TODO: replace with inspect_err, once stable
|
||||
warn!(
|
||||
?err,
|
||||
"Failed to initialize drm lease global for: {}", drm_node
|
||||
);
|
||||
None
|
||||
}
|
||||
};
|
||||
|
||||
let drm = GbmDrmOutputManager::new(
|
||||
drm,
|
||||
GbmAllocator::new(
|
||||
|
|
@ -311,16 +329,7 @@ impl State {
|
|||
gbm,
|
||||
|
||||
leased_connectors: Vec::new(),
|
||||
leasing_global: DrmLeaseState::new::<State>(dh, &drm_node)
|
||||
.map_err(|err| {
|
||||
// TODO: replace with inspect_err, once stable
|
||||
warn!(
|
||||
?err,
|
||||
"Failed to initialize drm lease global for: {}", drm_node
|
||||
);
|
||||
err
|
||||
})
|
||||
.ok(),
|
||||
leasing_global,
|
||||
active_leases: Vec::new(),
|
||||
active_buffers: HashSet::new(),
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue