lib/gpu/src/root.zig

daab053ee43316e1809a84551d573ddd1e5bf3d2

  1 //! Devices, memory, pipelines, surfaces and presentation for compiled
  2 //! kernels. A backend loads an artifact whose interface `choir_abi`
  3 //! describes, checks the artifact's requirements against the device, and
  4 //! launches it. The package links no compiler.
  5 
  6 const build_options = @import("build_options");
  7 
  8 pub const contract = @import("contract.zig");
  9 pub const host = @import("host.zig");
 10 pub const recording = @import("recording.zig");
 11 pub const webgpu = @import("webgpu.zig");
 12 pub const wasm = @import("wasm.zig");
 13 
 14 pub const cpu = if (build_options.native_backend_modules)
 15     @import("cpu.zig")
 16 else
 17     @compileError("The gpu CPU backend is only available in native builds");
 18 
 19 pub const cuda = if (build_options.native_backend_modules)
 20     @import("cuda.zig")
 21 else
 22     @compileError("The gpu CUDA backend is only available in native builds");
 23 
 24 pub const vulkan = if (build_options.native_backend_modules)
 25     @import("vulkan.zig")
 26 else
 27     @compileError("The gpu Vulkan backend is only available in native builds");
 28 
 29 pub const metal = if (build_options.native_backend_modules)
 30     @import("metal.zig")
 31 else
 32     @compileError("The gpu Metal backend is only available in native builds");
 33 
 34 pub const BackendError = contract.BackendError;
 35 pub const BackendKind = contract.BackendKind;
 36 pub const DeviceFamily = contract.DeviceFamily;
 37 pub const ArtifactFormat = contract.ArtifactFormat;
 38 pub const BackendMathTier = contract.BackendMathTier;
 39 pub const familyForBackendKind = contract.familyForBackendKind;
 40 pub const artifactFormatIsNativeCpu = contract.artifactFormatIsNativeCpu;
 41 pub const artifactFormatUsesHostLoopLaunch = contract.artifactFormatUsesHostLoopLaunch;
 42 pub const PayloadOwnership = contract.PayloadOwnership;
 43 pub const BufferOwnership = contract.BufferOwnership;
 44 pub const BufferAccess = contract.BufferAccess;
 45 pub const TextureOwnership = contract.TextureOwnership;
 46 pub const TextureFormat = contract.TextureFormat;
 47 pub const ColorSpace = contract.ColorSpace;
 48 pub const PresentMode = contract.PresentMode;
 49 pub const SurfaceAlphaMode = contract.SurfaceAlphaMode;
 50 pub const SurfacePlatformKind = contract.SurfacePlatformKind;
 51 pub const X11Surface = contract.X11Surface;
 52 pub const CocoaSurface = contract.CocoaSurface;
 53 pub const WebGpuCanvasSurface = contract.WebGpuCanvasSurface;
 54 pub const HeadlessSurface = contract.HeadlessSurface;
 55 pub const ExternalSurface = contract.ExternalSurface;
 56 pub const SurfacePlatform = contract.SurfacePlatform;
 57 pub const SurfaceExtent = contract.SurfaceExtent;
 58 pub const TextureExtent = contract.TextureExtent;
 59 pub const TextureUsage = contract.TextureUsage;
 60 pub const RenderArtifactFormat = contract.RenderArtifactFormat;
 61 pub const RenderBlendMode = contract.RenderBlendMode;
 62 pub const RenderPrimitiveTopology = contract.RenderPrimitiveTopology;
 63 pub const RenderVertexStepMode = contract.RenderVertexStepMode;
 64 pub const RenderVertexFormat = contract.RenderVertexFormat;
 65 pub const RenderBindingKind = contract.RenderBindingKind;
 66 pub const RenderIndexFormat = contract.RenderIndexFormat;
 67 pub const RenderVertexAttribute = contract.RenderVertexAttribute;
 68 pub const RenderVertexBufferLayout = contract.RenderVertexBufferLayout;
 69 pub const RenderBindingDesc = contract.RenderBindingDesc;
 70 pub const RenderViewport = contract.RenderViewport;
 71 pub const RenderScissor = contract.RenderScissor;
 72 pub const RenderDrawRange = contract.RenderDrawRange;
 73 pub const SyncScope = contract.SyncScope;
 74 pub const BackendObjectId = contract.BackendObjectId;
 75 pub const DTypeSet = contract.DTypeSet;
 76 pub const ArtifactFormatSet = contract.ArtifactFormatSet;
 77 pub const TextureFormatSet = contract.TextureFormatSet;
 78 pub const PresentModeSet = contract.PresentModeSet;
 79 pub const ColorSpaceSet = contract.ColorSpaceSet;
 80 pub const SurfacePlatformSet = contract.SurfacePlatformSet;
 81 pub const RenderArtifactFormatSet = contract.RenderArtifactFormatSet;
 82 pub const RenderBlendModeSet = contract.RenderBlendModeSet;
 83 pub const RenderPrimitiveTopologySet = contract.RenderPrimitiveTopologySet;
 84 pub const RenderVertexFormatSet = contract.RenderVertexFormatSet;
 85 pub const RenderBindingKindSet = contract.RenderBindingKindSet;
 86 pub const RenderIndexFormatSet = contract.RenderIndexFormatSet;
 87 pub const DeviceIdentity = contract.DeviceIdentity;
 88 pub const MemoryLimits = contract.MemoryLimits;
 89 pub const SubgroupFacts = contract.SubgroupFacts;
 90 pub const FloatControlWidths = contract.FloatControlWidths;
 91 pub const FloatControlIndependence = contract.FloatControlIndependence;
 92 pub const FloatArithmeticProfile = contract.FloatArithmeticProfile;
 93 pub const FloatControlFacts = contract.FloatControlFacts;
 94 pub const ThreadgroupFacts = contract.ThreadgroupFacts;
 95 pub const LayoutFeatures = contract.LayoutFeatures;
 96 pub const RuntimeRequirements = contract.RuntimeRequirements;
 97 pub const TextureCapabilities = contract.TextureCapabilities;
 98 pub const SurfaceCapabilities = contract.SurfaceCapabilities;
 99 pub const RasterCapabilities = contract.RasterCapabilities;
100 pub const BackendCapabilities = contract.BackendCapabilities;
101 pub const ArtifactPayload = contract.ArtifactPayload;
102 pub const ExternalPayload = contract.ExternalPayload;
103 pub const KernelArtifactDesc = contract.KernelArtifactDesc;
104 pub const KernelArtifact = contract.KernelArtifact;
105 pub const LoadedArtifact = contract.LoadedArtifact;
106 pub const RenderPipelineDesc = contract.RenderPipelineDesc;
107 pub const RenderArtifactDesc = contract.RenderArtifactDesc;
108 pub const RenderArtifact = contract.RenderArtifact;
109 pub const LoadedRenderArtifact = contract.LoadedRenderArtifact;
110 pub const BufferHandle = contract.BufferHandle;
111 pub const StreamHandle = contract.StreamHandle;
112 pub const EventHandle = contract.EventHandle;
113 pub const SurfaceHandle = contract.SurfaceHandle;
114 pub const TextureHandle = contract.TextureHandle;
115 pub const TextureView = contract.TextureView;
116 pub const SurfaceFrame = contract.SurfaceFrame;
117 pub const BufferAllocation = contract.BufferAllocation;
118 pub const BufferImport = contract.BufferImport;
119 pub const TextureAllocation = contract.TextureAllocation;
120 pub const SurfaceCreationRequest = contract.SurfaceCreationRequest;
121 pub const SurfaceFrameAcquireRequest = contract.SurfaceFrameAcquireRequest;
122 pub const PresentRequest = contract.PresentRequest;
123 pub const SurfaceClearColor = contract.SurfaceClearColor;
124 pub const SurfaceFrameWriteOp = contract.SurfaceFrameWriteOp;
125 pub const SurfaceFrameWriteRequest = contract.SurfaceFrameWriteRequest;
126 pub const StreamAllocation = contract.StreamAllocation;
127 pub const EventAllocation = contract.EventAllocation;
128 pub const BufferBinding = contract.BufferBinding;
129 pub const BufferWriteRequest = contract.BufferWriteRequest;
130 pub const BufferFillRequest = contract.BufferFillRequest;
131 pub const BufferReadRequest = contract.BufferReadRequest;
132 pub const LaunchRequest = contract.LaunchRequest;
133 pub const RenderRequest = contract.RenderRequest;
134 pub const RenderBundleSubmit = contract.RenderBundleSubmit;
135 pub const TextureWriteRequest = contract.TextureWriteRequest;
136 pub const TextureReadRequest = contract.TextureReadRequest;
137 pub const RenderCompare = contract.RenderCompare;
138 pub const RenderDepthState = contract.RenderDepthState;
139 pub const RenderDepthBias = contract.RenderDepthBias;
140 pub const RenderFilter = contract.RenderFilter;
141 pub const RenderAddressMode = contract.RenderAddressMode;
142 pub const RenderSampler = contract.RenderSampler;
143 pub const RenderSampledTexture = contract.RenderSampledTexture;
144 pub const RenderResource = contract.RenderResource;
145 pub const RenderBindingsRequest = contract.RenderBindingsRequest;
146 pub const RenderBindings = contract.RenderBindings;
147 pub const RenderColorLoad = contract.RenderColorLoad;
148 pub const RenderDepthLoad = contract.RenderDepthLoad;
149 pub const RenderColorAttachment = contract.RenderColorAttachment;
150 pub const RenderDepthAttachment = contract.RenderDepthAttachment;
151 pub const RenderBufferRange = contract.RenderBufferRange;
152 pub const RenderDraw = contract.RenderDraw;
153 pub const RenderPass = contract.RenderPass;
154 pub const RenderBundle = contract.RenderBundle;
155 pub const CompileRequest = contract.CompileRequest;
156 pub const CompilePayload = contract.CompilePayload;
157 pub const SyncRequest = contract.SyncRequest;
158 pub const EventQueryRequest = contract.EventQueryRequest;
159 pub const EventRecordRequest = contract.EventRecordRequest;
160 pub const EventElapsedRequest = contract.EventElapsedRequest;
161 pub const BackendVTable = contract.BackendVTable;
162 pub const BackendHandle = contract.BackendHandle;