Skip to main content

jxr_metal/
lib.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2
3//! Metal planning and resource-lifecycle boundary for JPEG XR reconstruction.
4//!
5//! CPU entropy output is retained in a five-phase Metal plan. Submission is
6//! exposed only because every packaged phase covers the accepted Main-profile
7//! matrix; the portable scalar implementation remains the arithmetic oracle.
8
9#[cfg(target_os = "macos")]
10mod abi;
11#[cfg(target_os = "macos")]
12mod buffer_pool;
13mod coefficient_staging;
14mod destination;
15#[cfg(target_os = "macos")]
16mod encode;
17mod error;
18mod kernels;
19#[cfg(target_os = "macos")]
20mod metal_types;
21#[cfg(target_os = "macos")]
22mod output_plan;
23#[cfg(target_os = "macos")]
24mod overlap_plan;
25mod plan;
26mod resident;
27mod route;
28#[cfg(target_os = "macos")]
29mod runtime;
30mod session;
31mod shared_image;
32mod stage_timing;
33mod submission;
34#[cfg(target_os = "macos")]
35mod upload_cache;
36
37#[cfg(target_os = "macos")]
38pub use buffer_pool::{MetalBufferPoolDiagnostics, MetalBufferPoolsDiagnostics};
39pub use coefficient_staging::{MetalCoefficientArena, MetalCoefficientStaging};
40pub use destination::{DenseMetalBatchLayout, MetalBatchDestination, MetalDestination};
41pub use error::MetalError;
42pub use jxr_core::SurfaceLayout;
43pub use kernels::{KernelStage, MetalKernelManifest, RECONSTRUCTION_KERNELS};
44pub use plan::MetalDecodePlan;
45pub use resident::{MetalResidentBatch, ResidentMetalImage};
46pub use route::{METAL_AUTO_THRESHOLD, MetalRouteDecision, plan_metal_route};
47pub use session::MetalDecoderSession;
48pub use shared_image::SharedMetalImage;
49pub use stage_timing::MetalStageDiagnostics;
50#[cfg(target_os = "macos")]
51pub use submission::MetalConsumerWait;
52pub use submission::{
53    MetalBatchDestinationCompletion, MetalBatchDestinationSubmission, MetalBatchSubmission,
54    MetalDestinationCompletion, MetalDestinationSubmission, MetalResidentBatchSubmission,
55    MetalSubmission,
56};
57#[cfg(target_os = "macos")]
58pub use upload_cache::MetalUploadCacheDiagnostics;