pub enum RafxQueue {
Empty(RafxQueueEmpty),
}
Expand description
A queue allows work to be submitted to the GPU
Work that has been submitted to the same queue has some ordering guarantees.
Resources may only be accessed from one queue type at a time. If a resource is to be used by a different queue, a memory barrier on both the “sending” and “receiving” queue is required.
The default configuration is to return the same underlying queue every time create_queue() is called. A mutex protects against multiple threads submitting work to the queue at the same time.
Most applications can just create and use graphics queues freely, relying on the API returning the same underlying queue every time.
Variants§
Empty(RafxQueueEmpty)
Implementations§
source§impl RafxQueue
impl RafxQueue
pub fn device_context(&self) -> RafxDeviceContext
sourcepub fn queue_id(&self) -> u32
pub fn queue_id(&self) -> u32
Returns an opaque ID associated with this queue. It may be used to hash which queue a command pool is associated with
sourcepub fn queue_type(&self) -> RafxQueueType
pub fn queue_type(&self) -> RafxQueueType
Get the type of queue that this is
sourcepub fn create_command_pool(
&self,
command_pool_def: &RafxCommandPoolDef
) -> RafxResult<RafxCommandPool>
pub fn create_command_pool( &self, command_pool_def: &RafxCommandPoolDef ) -> RafxResult<RafxCommandPool>
Create a command pool for use with this queue
sourcepub fn submit(
&self,
command_buffers: &[&RafxCommandBuffer],
wait_semaphores: &[&RafxSemaphore],
signal_semaphores: &[&RafxSemaphore],
signal_fence: Option<&RafxFence>
) -> RafxResult<()>
pub fn submit( &self, command_buffers: &[&RafxCommandBuffer], wait_semaphores: &[&RafxSemaphore], signal_semaphores: &[&RafxSemaphore], signal_fence: Option<&RafxFence> ) -> RafxResult<()>
Submit command buffers for processing by the GPU.
Execution will not begin until all wait_semaphores
are signaled.
After execution, the given signal_semaphores
and signal_fence
are signaled as completed.
sourcepub fn present(
&self,
swapchain: &RafxSwapchain,
wait_semaphores: &[&RafxSemaphore],
image_index: u32
) -> RafxResult<RafxPresentSuccessResult>
pub fn present( &self, swapchain: &RafxSwapchain, wait_semaphores: &[&RafxSemaphore], image_index: u32 ) -> RafxResult<RafxPresentSuccessResult>
Presents an image in the swapchain.
Execution will not begin until all wait_semaphores
are signaled.
sourcepub fn wait_for_queue_idle(&self) -> RafxResult<()>
pub fn wait_for_queue_idle(&self) -> RafxResult<()>
Wait until all work submitted to this queue is completed
sourcepub fn empty_queue(&self) -> Option<&RafxQueueEmpty>
pub fn empty_queue(&self) -> Option<&RafxQueueEmpty>
Get the underlying metal API object. This provides access to any internally created metal objects.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for RafxQueue
impl Send for RafxQueue
impl Sync for RafxQueue
impl Unpin for RafxQueue
impl UnwindSafe for RafxQueue
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.