ComputeContext

Struct ComputeContext 

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

Main context for compute operations

This is the primary entry point for the Kronos Compute API. It manages the Vulkan instance, device, and queue, and provides methods to create buffers, pipelines, and execute commands.

Implementations§

Source§

impl ComputeContext

Source

pub fn device(&self) -> VkDevice

Get the underlying Vulkan device (for advanced usage)

Source

pub fn queue(&self) -> VkQueue

Get the compute queue

Source

pub fn device_properties(&self) -> VkPhysicalDeviceProperties

Get device properties

Source

pub fn icd_info(&self) -> Option<IcdInfo>

Get information about the ICD bound to this context (process-wide)

Source§

impl ComputeContext

Source

pub fn create_buffer<T>(&self, data: &[T]) -> Result<Buffer>
where T: Copy + 'static,

Create a buffer with data

Source

pub fn create_buffer_uninit(&self, size: usize) -> Result<Buffer>

Create an uninitialized buffer

Source§

impl ComputeContext

Source

pub fn load_shader<P: AsRef<Path>>(&self, path: P) -> Result<Shader>

Load a shader from SPIR-V file

Source

pub fn create_shader_from_spirv(&self, spirv: &[u8]) -> Result<Shader>

Create a shader from SPIR-V bytes

Source

pub fn create_pipeline(&self, shader: &Shader) -> Result<Pipeline>

Create a compute pipeline with default configuration

Source

pub fn create_pipeline_with_config( &self, shader: &Shader, config: PipelineConfig, ) -> Result<Pipeline>

Create a compute pipeline with custom configuration

Source§

impl ComputeContext

Source

pub fn dispatch(&self, pipeline: &Pipeline) -> CommandBuilder

Start building a compute dispatch

Source§

impl ComputeContext

Source

pub fn create_fence(&self, signaled: bool) -> Result<Fence>

Create a new fence

Source

pub fn create_semaphore(&self) -> Result<Semaphore>

Create a new semaphore

Source§

impl ComputeContext

Entry point for the unified API

Example:

use kronos_compute::api;
 
let ctx = api::ComputeContext::builder()
    .app_name("My Compute App")
    .enable_validation()
    .build()?;
Source

pub fn new() -> Result<Self>

Create a new ComputeContext with default settings

Source

pub fn builder() -> ContextBuilder

Create a builder for customized context creation

Trait Implementations§

Source§

impl Clone for ComputeContext

Source§

fn clone(&self) -> ComputeContext

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Drop for ComputeContext

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Send for ComputeContext

Source§

impl Sync for ComputeContext

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.