Struct QueryPool

Source
pub struct QueryPool { /* private fields */ }
Expand description

A collection of one or more queries of a particular type.

Implementations§

Source§

impl QueryPool

Source

pub fn new( device: Arc<Device>, create_info: QueryPoolCreateInfo, ) -> Result<Arc<QueryPool>, Validated<VulkanError>>

Creates a new QueryPool.

Source

pub unsafe fn from_handle( device: Arc<Device>, handle: QueryPool, create_info: QueryPoolCreateInfo, ) -> Arc<QueryPool>

Creates a new QueryPool from a raw object handle.

§Safety
  • handle must be a valid Vulkan object handle created from device.
  • create_info must match the info used to create the object.
Source

pub fn query_type(&self) -> QueryType

Returns the query type of the pool.

Source

pub fn query_count(&self) -> u32

Returns the number of query slots of this query pool.

Source

pub fn pipeline_statistics(&self) -> QueryPipelineStatisticFlags

Returns the pipeline statistics flags of this query pool.

Source

pub const fn result_len(&self, result_flags: QueryResultFlags) -> DeviceSize

Returns the number of QueryResultElements that are needed to hold the result of a single query of this type.

Source

pub fn get_results<T>( &self, range: Range<u32>, destination: &mut [T], flags: QueryResultFlags, ) -> Result<bool, Validated<VulkanError>>

Copies the results of a range of queries to a buffer on the CPU.

self.ty().result_len() will be written for each query in the range, plus 1 extra element per query if WITH_AVAILABILITY is enabled. The provided buffer must be large enough to hold the data.

true is returned if every result was available and written to the buffer. false is returned if some results were not yet available; these will not be written to the buffer.

See also copy_query_pool_results.

Source

pub unsafe fn reset( &self, range: Range<u32>, ) -> Result<(), Box<ValidationError>>

Resets a range of queries.

The host_query_reset feature must be enabled on the device.

§Safety

For the queries indicated by range:

  • There must be no operations pending or executing on the device.
  • There must be no calls to reset* or get_results* executing concurrently on another thread.

Trait Implementations§

Source§

impl Debug for QueryPool

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl DeviceOwned for QueryPool

Source§

fn device(&self) -> &Arc<Device>

Returns the device that owns self.
Source§

impl Drop for QueryPool

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Hash for QueryPool

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for QueryPool

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl VulkanObject for QueryPool

Source§

type Handle = QueryPool

The type of the object.
Source§

fn handle(&self) -> Self::Handle

Returns the raw Vulkan handle of the object.
Source§

impl Eq for QueryPool

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> DeviceOwnedVulkanObject for T

Source§

fn set_debug_utils_object_name( &self, object_name: Option<&str>, ) -> Result<(), VulkanError>

Assigns a human-readable name to the object for debugging purposes. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.