pub mod batch;
pub mod budget;
pub mod config;
pub mod error;
pub mod executor;
pub mod fallback;
pub mod job;
pub mod memory;
pub mod planner;
pub mod report;
pub mod resources;
#[cfg(feature = "shader-gen")]
pub mod shader;
#[cfg(feature = "shader-gen")]
pub mod shader_utils;
pub mod telemetry;
pub use batch::{pack_by_bytes, BatchSpan, ByteSized, GpuBatchPlan, WorkItem};
pub use budget::{
GpuMemoryBudget, DEFAULT_FILL_RATIO, DEFAULT_SAFE_VRAM_BYTES, MAX_FILL_RATIO, MIN_FILL_RATIO,
};
pub use config::{ExecutionMode, ExecutorConfig, ShaderOpt, TelemetrySink};
pub use error::{ExecutionError, ExecutorInitError, GpuError, GpuFailure};
pub use executor::GpuExecutor;
pub use fallback::{run_cpu_fallback, FallbackPolicy};
pub use job::{
BufferRole, ComputeShader, DispatchSize, EncodedBatch, EncodedBuffer, GpuJob, JobError,
};
#[cfg(feature = "gpu")]
pub use memory::{
estimate_gpu_memory_availability_from_limits, query_gpu_memory_availability,
resolve_gpu_memory_availability,
};
pub use memory::{GpuMemoryAvailability, MemoryBudget, GPU_AVAILABLE_BYTES_ENV};
pub use report::{BatchPath, BatchReport, ExecutionPath, JobReport};
#[cfg(feature = "gpu")]
pub use resources::{create_mapped_buffer, create_zeroed_buffer, storage_binding};
pub use resources::{
read_u32, u32_slice_bytes, BufferLease, BufferPool, BufferUse, ResourceCache, ResourceEntry,
};
#[cfg(feature = "shader-gen")]
pub use shader::{BindingDesc, ShaderBuilder, WgslField, WgslStruct};
#[cfg(feature = "shader-gen")]
pub use shader_utils::{
ShaderSource, ShaderSourceBuilder, BATCH_METADATA_STRUCT, COMMON_COMPUTE_UTILS,
};
pub use telemetry::{
measure_phase, GpuPhase, GpuTelemetry, TelemetryCollector, TelemetryPhase, TelemetryReport,
};