diff --git a/src/gallium/frontends/rusticl/mesa/pipe/screen.rs b/src/gallium/frontends/rusticl/mesa/pipe/screen.rs index 8e158d044aa..cbbb78bfffc 100644 --- a/src/gallium/frontends/rusticl/mesa/pipe/screen.rs +++ b/src/gallium/frontends/rusticl/mesa/pipe/screen.rs @@ -4,6 +4,7 @@ use crate::compiler::nir::NirShader; use crate::pipe::context::*; use crate::pipe::device::*; +use crate::pipe::fence::PipeFence; use crate::pipe::resource::*; use crate::util::disk_cache::*; @@ -442,6 +443,11 @@ impl PipeScreen { } } + pub fn create_semaphore(self: &Arc) -> Option { + let fence = unsafe { self.screen().semaphore_create.unwrap()(self.screen.as_ptr()) }; + PipeFence::new(fence, self) + } + pub(super) fn unref_fence(&self, mut fence: *mut pipe_fence_handle) { unsafe { self.screen().fence_reference.unwrap()( @@ -470,6 +476,10 @@ impl PipeScreen { } Some(info) } + + pub fn has_semaphore_create(&self) -> bool { + self.screen().semaphore_create.is_some() + } } impl Drop for PipeScreen {