@protocol MTLLibrary, MTLDevice; @interface MTLGPUBVHBuilder : MTLBVHBuilder { id _device; unsigned int _threadgroupSize; unsigned int _batchSize; unsigned int _batchThreshold; unsigned int _binningTGSize; unsigned int _spatialBinningTGSize; unsigned int _splitTGSize; unsigned int _dispatchBinsTGSize; unsigned int _dispatchBinsSmallTGSize; BOOL _supportsDispatchThreadsWithIndirectBuffer; id _library; struct PipelineCache { struct unordered_map::HashKey, PipelineValue, PipelineCache::Hasher, std::equal_to::HashKey>, std::allocator::HashKey, PipelineValue>>> { struct __hash_table::HashKey, PipelineValue>, std::__unordered_map_hasher::HashKey, std::__hash_value_type::HashKey, PipelineValue>, PipelineCache::Hasher, std::equal_to::HashKey>>, std::__unordered_map_equal::HashKey, std::__hash_value_type::HashKey, PipelineValue>, std::equal_to::HashKey>, PipelineCache::Hasher>, std::allocator::HashKey, PipelineValue>>> { struct unique_ptr::HashKey, PipelineValue>, void *> *> *[], std::__bucket_list_deallocator::HashKey, PipelineValue>, void *> *> *>>> { struct __compressed_pair::HashKey, PipelineValue>, void *> *> **, std::__bucket_list_deallocator::HashKey, PipelineValue>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator::HashKey, PipelineValue>, void *> *> *>> { struct __compressed_pair::HashKey, PipelineValue>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair::HashKey, PipelineValue>, void *> *>, std::allocator::HashKey, PipelineValue>, void *>>> { struct __hash_node_base::HashKey, PipelineValue>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair::HashKey, std::__hash_value_type::HashKey, PipelineValue>, PipelineCache::Hasher, std::equal_to::HashKey>>> { unsigned long long __value_; } __p2_; struct __compressed_pair::HashKey, std::__hash_value_type::HashKey, PipelineValue>, std::equal_to::HashKey>, PipelineCache::Hasher>> { float __value_; } __p3_; } __table_; } map; unsigned long long baseThreadgroupSize; struct function (const PipelineKey &)> { struct __value_func (const PipelineKey &)> { struct type { unsigned char __lx[24]; } __buf_; void *__f_; } __f_; } createPipeline; BOOL _supportsSIMDReduction; BOOL _supportsSIMDShuffleAndFill; BOOL _useFastBestObjectSplit; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _pipelineCacheLock; } _pipelineCache; struct { unsigned long long width; unsigned long long height; unsigned long long depth; } _maxThreadsPerThreadgroup; struct MTLGPUBVHBuilderPipelineInfo { char *x0; BOOL x1; BOOL x2; } *_pipelineInfos; unsigned int KERNEL_INDEX_DISPATCH_BINS; unsigned int KERNEL_INDEX_BIN_FRAGMENTS; unsigned int KERNEL_INDEX_CLEAR_BATCHES; unsigned int KERNEL_INDEX_CREATE_BVH_NODES; unsigned int KERNEL_INDEX_FIND_BEST_SPLIT; unsigned int KERNEL_INDEX_SPLIT_FRAGMENTS; unsigned int KERNEL_INDEX_BIN_FRAGMENTS_SPATIAL; unsigned int KERNEL_INDEX_FIND_BEST_SPATIAL_SPLIT; unsigned int KERNEL_INDEX_INITIALIZE_QUEUE; unsigned int KERNEL_INDEX_INITIALIZE_FRAGMENT_INDICES; unsigned int KERNEL_INDEX_INITIALIZE_FRAGMENTS; unsigned int KERNEL_INDEX_INITIALIZE_COUNTERS; unsigned int KERNEL_INDEX_INITIALIZE_BINNING_COUNTERS; unsigned int KERNEL_INDEX_ENQUEUE_LEAF_NODE_SPLITS; unsigned int KERNEL_INDEX_GET_POLYGON_FRAGMENTS; unsigned int KERNEL_INDEX_GET_BOUNDING_BOX_FRAGMENTS; unsigned int KERNEL_INDEX_GET_CURVE_FRAGMENTS; unsigned int KERNEL_INDEX_WRITE_BVH_METADATA; unsigned int KERNEL_INDEX_SET_COUNTERS; unsigned int KERNEL_INDEX_COPY_COUNTERS; unsigned int KERNEL_INDEX_DISPATCH_INDIRECT; unsigned int KERNEL_INDEX_ENCODE_MTL_BVH_NODE0; unsigned int KERNEL_INDEX_ENCODE_MTL_PRIMITIVE_BVH; unsigned int KERNEL_INDEX_ENCODE_MTL_INSTANCE_BVH; unsigned int KERNEL_INDEX_ENCODE_MTL_PRIMITIVE_BVH_INNER_NODE; unsigned int KERNEL_INDEX_ENCODE_MTL_INSTANCE_BVH_INNER_NODE; unsigned int KERNEL_INDEX_ENCODE_MTL_TRIANGLE_BVH_LEAF_NODE; unsigned int KERNEL_INDEX_ENCODE_MTL_BBOX_BVH_LEAF_NODE; unsigned int KERNEL_INDEX_ENCODE_MTL_CURVE_BVH_LEAF_NODE; unsigned int KERNEL_INDEX_ENCODE_MTL_CURVE_BVH_CONTROL_POINTS; unsigned int KERNEL_INDEX_ENCODE_MTL_INSTANCE_BVH_LEAF_NODE_DEFAULT; unsigned int KERNEL_INDEX_ENCODE_MTL_INSTANCE_BVH_LEAF_NODE_USER_ID; unsigned int KERNEL_INDEX_ENCODE_MTL_INSTANCE_BVH_LEAF_NODE_INDIRECT; unsigned int KERNEL_INDEX_ENCODE_MTL_INSTANCE_BVH_RESOURCE_IDS_DEFAULT; unsigned int KERNEL_INDEX_ENCODE_MTL_INSTANCE_BVH_RESOURCE_IDS_USER_ID; unsigned int KERNEL_INDEX_ENCODE_MTL_INSTANCE_BVH_RESOURCE_IDS_INDIRECT; unsigned int KERNEL_INDEX_GET_COMPACTED_MTL_BVH_SIZE_32; unsigned int KERNEL_INDEX_GET_COMPACTED_MTL_BVH_SIZE_64; unsigned int KERNEL_INDEX_GET_MTL_BVH_SIZE; unsigned int KERNEL_INDEX_GET_MTL_BVH_DEPTH; unsigned int KERNEL_INDEX_COPY_AND_COMPACT_MTL_BVH_HEADER; unsigned int KERNEL_INDEX_COPY_MTL_BVH_HEADER; unsigned int KERNEL_INDEX_COPY_MTL_BVH_INNER_NODES; unsigned int KERNEL_INDEX_COPY_MTL_BVH_LEAF_NODES; unsigned int KERNEL_INDEX_COPY_MTL_BVH_PRIMITIVES; unsigned int KERNEL_INDEX_COPY_MTL_BVH_GEOMETRIES; unsigned int KERNEL_INDEX_COPY_MTL_BVH_TRANSFORMS; unsigned int KERNEL_INDEX_COPY_MTL_PRIMITIVE_BVHS; unsigned int KERNEL_INDEX_COPY_MTL_BVH_CONTROL_POINTS; unsigned int KERNEL_INDEX_COPY_MTL_BVH_RESOURCE_IDS; unsigned int KERNEL_INDEX_GET_MTL_INSTANCE_BOUNDING_BOXES_DEFAULT; unsigned int KERNEL_INDEX_GET_MTL_INSTANCE_BOUNDING_BOXES_USER_ID; unsigned int KERNEL_INDEX_GET_MTL_INSTANCE_BOUNDING_BOXES_INDIRECT; unsigned int KERNEL_INDEX_COPY; unsigned int KERNEL_INDEX_REFIT_TRIANGLE_LEAF_NODE; unsigned int KERNEL_INDEX_REFIT_TRIANGLE_LEAF_NODE_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_BBOX_LEAF_NODE; unsigned int KERNEL_INDEX_REFIT_BBOX_LEAF_NODE_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_CURVE_LEAF_NODE; unsigned int KERNEL_INDEX_REFIT_CURVE_LEAF_NODE_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_CURVE_CONTROL_POINTS; unsigned int KERNEL_INDEX_REFIT_CURVE_CONTROL_POINTS_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_INSTANCE_LEAF_NODE_DEFAULT; unsigned int KERNEL_INDEX_REFIT_INSTANCE_LEAF_NODE_USER_ID; unsigned int KERNEL_INDEX_REFIT_INSTANCE_LEAF_NODE_INDIRECT; unsigned int KERNEL_INDEX_REFIT_INSTANCE_LEAF_NODE_DEFAULT_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_INSTANCE_LEAF_NODE_USER_ID_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_INSTANCE_LEAF_NODE_INDIRECT_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_INSTANCE_RESOURCE_IDS_DEFAULT; unsigned int KERNEL_INDEX_REFIT_INSTANCE_RESOURCE_IDS_USER_ID; unsigned int KERNEL_INDEX_REFIT_INSTANCE_RESOURCE_IDS_INDIRECT; unsigned int KERNEL_INDEX_REFIT_INSTANCE_RESOURCE_IDS_DEFAULT_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_INSTANCE_RESOURCE_IDS_USER_ID_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_INSTANCE_RESOURCE_IDS_INDIRECT_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_INNER_NODE; unsigned int KERNEL_INDEX_REFIT_INNER_NODE_IN_PLACE; unsigned int KERNEL_INDEX_REFIT_GEOMETRIES; unsigned int KERNEL_INDEX_REFIT_GEOMETRIES_IN_PLACE; unsigned int KERNEL_INDEX_GET_SERIALIZED_MTL_BVH_SIZE; unsigned int KERNEL_INDEX_GET_SERIALIZED_MTL_BVH_RAW_SIZE; unsigned int KERNEL_INDEX_GET_DESERIALIZED_MTL_BVH_SIZE; unsigned int KERNEL_INDEX_GET_DESERIALIZED_MTL_PRIMITIVE_BVH_SIZES; unsigned int KERNEL_INDEX_WRITE_MTL_BVH_SERIALIZATION_DATA; unsigned int KERNEL_INDEX_WRITE_SERIALIZED_MTL_BVH; unsigned int KERNEL_INDEX_WRITE_DESERIALIZED_MTL_BVH; unsigned int KERNEL_INDEX_GET_GEOMETRY_SIZE; unsigned int KERNEL_INDEX_GET_GEOMETRY_PRIMITIVE_COUNT; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_PRIMITIVES; unsigned int KERNEL_INDEX_WRITE_MTL_BVH_SIZES_1_1; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_HEADER_1_1; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_INNER_NODES; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_LEAF_NODES_1_1; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_PRIMITIVE_NODES; unsigned int KERNEL_INDEX_PATCH_SERIALIZED_MTL_BVH; unsigned int KERNEL_INDEX_PATCH_DESERIALIZED_MTL_BVH; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_GEOMETRY; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_TRANSFORMS; unsigned int KERNEL_INDEX_DISPATCH_INDIRECT_64; unsigned int KERNEL_INDEX_DISPATCH_BINS_WIDE; unsigned int KERNEL_INDEX_MEMCPY_INDIRECT_64; unsigned int KERNEL_INDEX_BREADTH_FIRST_LAYOUT_INIT; unsigned int KERNEL_INDEX_BREADTH_FIRST_LAYOUT_FINISH_ITERATION; unsigned int KERNEL_INDEX_BREADTH_FIRST_LAYOUT_CLASSIFY; unsigned int KERNEL_INDEX_BREADTH_FIRST_LAYOUT; unsigned int KERNEL_INDEX_PREFIX_SUM; unsigned int KERNEL_INDEX_PREFIX_SUM_REDUCE; unsigned int KERNEL_INDEX_PREFIX_SUM_ADD; unsigned int KERNEL_INDEX_COPY_FRAGMENT_INDICES; unsigned int KERNEL_INDEX_WRITE_MTL_BVH_SIZES_1_0; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_HEADER_1_0; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_LEAF_NODES_1_0; unsigned int KERNEL_INDEX_WRITE_SERIALIZATION_DATA; unsigned int KERNEL_INDEX_ENCODE_PRIMITIVE_DATA; unsigned int KERNEL_INDEX_REFIT_PRIMITIVE_DATA; unsigned int KERNEL_INDEX_REFIT_PRIMITIVE_DATA_IN_PLACE; unsigned int KERNEL_INDEX_COPY_PRIMITIVE_DATA; unsigned int KERNEL_INDEX_EXTRACT_PRIMITIVE_DATA; unsigned int KERNEL_INDEX_WRITE_MTL_BVH_SIZES_1_2; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_GEOMETRY_1_2; unsigned int KERNEL_INDEX_REFIT_HEADER; unsigned int KERNEL_INDEX_REFIT_HEADER_IN_PLACE; unsigned int KERNEL_INDEX_FINISH_BUILD_ITERATION; unsigned int KERNEL_INDEX_THREADGROUP_BREADTH_FIRST_LAYOUT; unsigned int KERNEL_INDEX_BIN_FRAGMENTS_TEMPORAL; unsigned int KERNEL_INDEX_FIND_BEST_TEMPORAL_SPLIT; unsigned int KERNEL_INDEX_EXTRACT_MTL_BVH_LEAF_NODES_1_3; unsigned int KERNEL_INDEX_WRITE_MTL_BVH_SIZES_1_3; unsigned int KERNEL_INDEX_SPLIT_FRAGMENTS_PREFIX_SUM; unsigned int KERNEL_INDEX_ZERO_BUFFER; } + (BOOL)supportsDevice:(id)a0; + (unsigned long long)breadthFirstLayoutScratchBufferSizeWithLeafNodeCapacity:(unsigned long long)a0; + (unsigned long long)getMaxAccelerationStructureTraversalDepth:(unsigned long long)a0; + (unsigned long long)prefixSumScratchBufferSizeWithCapacity:(unsigned long long)a0; - (void)dealloc; - (id).cxx_construct; - (BOOL)isCompatibleWithAccelerationStructure:(struct { unsigned int x0; unsigned int x1; })a0; - (id)initWithDevice:(id)a0; - (void).cxx_destruct; - (void)dispatchIndirect:(id)a0 indirectBuffer:(id)a1 indirectBufferOffset:(unsigned long long)a2 counterBuffer:(id)a3 counterBufferOffset:(unsigned long long)a4 counterIndex:(unsigned long long)a5 threadgroupDivisor:(unsigned long long)a6 encoder:(id)a7; - (unsigned long long)getGenericBVHSizeForDescriptor:(id)a0; - (BOOL)useResourceBufferForDescriptor:(id)a0; - (void)addPrefixSumsWithEncoder:(id)a0 inputBuffer:(id)a1 inputBufferOffset:(unsigned long long)a2 reducedBuffer:(id)a3 reducedBufferOffset:(unsigned long long)a4 countBuffer:(id)a5 countBufferOffset:(unsigned long long)a6 capacity:(unsigned long long)a7; - (void)buildGenericBVHWithEncoder:(id)a0 descriptor:(id)a1 outputBuffer:(id)a2 outputBufferOffset:(unsigned long long)a3 scratchBuffer:(id)a4 scratchBufferOffset:(unsigned long long)a5; - (void)buildGenericBVHWithEncoder:(id)a0 descriptor:(id)a1 outputBuffer:(id)a2 outputBufferOffset:(unsigned long long)a3 scratchBuffer:(id)a4 scratchBufferOffset:(unsigned long long)a5 primitiveCountBuffer:(id)a6 primitiveCountBufferOffset:(unsigned long long)a7; - (void)buildWithEncoder:(id)a0 descriptor:(id)a1 scratchBuffer:(id)a2 scratchBufferOffset:(unsigned long long)a3 fragmentBuffer:(id)a4 fragmentBufferOffset:(unsigned long long)a5 fragmentIndexBuffer0:(id)a6 fragmentIndexBuffer0Offset:(unsigned long long)a7 nodeBuffer:(id)a8 nodeBufferOffset:(unsigned long long)a9 childIndexBuffer:(id)a10 childIndexBufferOffset:(unsigned long long)a11 counterBuffer:(id)a12 counterBufferOffset:(unsigned long long)a13 fragmentCountBuffer:(id)a14 fragmentCountBufferOffset:(unsigned long long)a15 boundsMinBuffer:(id)a16 boundsMinBufferOffset:(unsigned long long)a17 boundsMaxBuffer:(id)a18 boundsMaxBufferOffset:(unsigned long long)a19 boundsEndMinBuffer:(id)a20 boundsEndMinBufferOffset:(unsigned long long)a21 boundsEndMaxBuffer:(id)a22 boundsEndMaxBufferOffset:(unsigned long long)a23 boundsEndTimeBuffer:(id)a24 boundsEndTimeBufferOffset:(unsigned long long)a25 boundsStartTimeBuffer:(id)a26 boundsStartTimeBufferOffset:(unsigned long long)a27 scratchBufferOffsets:(struct ScratchBufferOffset { id x0; unsigned long long x1; unsigned long long x2; } *)a28; - (void)copyAndCompactMTLSWBVHWithEncoder:(id)a0 sourceBuffer:(id)a1 sourceBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 destinationBufferOffset:(unsigned long long)a4 destinationMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a5 destinationAccelerationStructureUniqueIdentifier:(unsigned long long)a6; - (void)copyAndCompactMTLSWBVHWithEncoder:(id)a0 sourceBuffer:(id)a1 sourceBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 destinationBufferOffset:(unsigned long long)a4 destinationMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a5 destinationUniqueIdentifier:(unsigned long long)a6; - (void)copyFromBuffer:(id)a0 sourceBufferOffset:(unsigned long long)a1 toBuffer:(id)a2 destinationBufferOffset:(unsigned long long)a3 length:(unsigned long long)a4 encoder:(id)a5; - (void)copyFromBuffer:(id)a0 toBuffer:(id)a1 encoder:(id)a2; - (void)copyMTLSWBVHWithEncoder:(id)a0 sourceBuffer:(id)a1 sourceBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 destinationBufferOffset:(unsigned long long)a4 destinationMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a5 destinationAccelerationStructureUniqueIdentifier:(unsigned long long)a6; - (void)copyMTLSWBVHWithEncoder:(id)a0 sourceBuffer:(id)a1 sourceBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 destinationBufferOffset:(unsigned long long)a4 destinationMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a5 destinationAccelerationStructureUniqueIdentifier:(unsigned long long)a6 compact:(BOOL)a7 copyVertexData:(BOOL)a8 copyPerPrimitiveData:(BOOL)a9; - (void)copyMTLSWBVHWithEncoder:(id)a0 sourceBuffer:(id)a1 sourceBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 destinationBufferOffset:(unsigned long long)a4 destinationMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a5 destinationUniqueIdentifier:(unsigned long long)a6; - (void)copyMTLSWBVHWithEncoder:(id)a0 sourceBuffer:(id)a1 sourceBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 destinationBufferOffset:(unsigned long long)a4 destinationMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a5 destinationUniqueIdentifier:(unsigned long long)a6 compact:(BOOL)a7 copyVertexData:(BOOL)a8 copyPerPrimitiveData:(BOOL)a9; - (void)dispatchIndirect64:(id)a0 indirectBuffer:(id)a1 indirectBufferOffset:(unsigned long long)a2 threadCountBuffer:(id)a3 threadCountBufferOffset:(unsigned long long)a4 threadCountIndex:(unsigned long long)a5 threadgroupDivisor:(unsigned long long)a6 encoder:(id)a7; - (void)dispatchIndirect:(id)a0 counterBuffer:(id)a1 counterBufferOffset:(unsigned long long)a2 counterIndex:(unsigned long long)a3 threadgroupSize:(unsigned long long)a4 encoder:(id)a5; - (void)dispatchIndirect:(id)a0 counterBuffer:(id)a1 counterBufferOffset:(unsigned long long)a2 threadgroupSize:(unsigned long long)a3 encoder:(id)a4; - (void)dispatchIndirect:(id)a0 indirectBuffer:(id)a1 indirectBufferOffset:(unsigned long long)a2 counterBuffer:(id)a3 counterBufferOffset:(unsigned long long)a4 counterIndex:(unsigned long long)a5 threadgroupDivisor:(unsigned long long)a6 threadgroupSize:(unsigned long long)a7 encoder:(id)a8; - (void)dispatchIndirect:(id)a0 indirectBuffer:(id)a1 indirectBufferOffset:(unsigned long long)a2 threadCountBuffer:(id)a3 threadCountBufferOffset:(unsigned long long)a4 threadCountIndex:(unsigned long long)a5 threadgroupDivisor:(unsigned long long)a6 encoder:(id)a7; - (void)dispatchIndirect:(id)a0 indirectBuffer:(id)a1 indirectBufferOffset:(unsigned long long)a2 threadCountBuffer:(id)a3 threadCountBufferOffset:(unsigned long long)a4 threadCountIndex:(unsigned long long)a5 threadgroupDivisor:(unsigned long long)a6 threadgroupSize:(unsigned long long)a7 encoder:(id)a8; - (void)encodeMTLSWBVHWithEncoder:(id)a0 descriptor:(id)a1 bvhDescriptor:(id)a2 outputBuffer:(id)a3 outputBufferOffset:(unsigned long long)a4 genericBVHBuffer:(id)a5 genericBVHBufferOffset:(unsigned long long)a6 scratchBuffer:(id)a7 scratchBufferOffset:(unsigned long long)a8 accelerationStructureUniqueIdentifier:(unsigned long long)a9; - (void)encodeMTLSWBVHWithEncoder:(id)a0 descriptor:(id)a1 bvhDescriptor:(id)a2 outputBuffer:(id)a3 outputBufferOffset:(unsigned long long)a4 genericBVHBuffer:(id)a5 genericBVHBufferOffset:(unsigned long long)a6 scratchBuffer:(id)a7 scratchBufferOffset:(unsigned long long)a8 gpuResourceID:(struct MTLResourceID { unsigned long long x0; })a9 accelerationStructureUniqueIdentifier:(unsigned long long)a10; - (void)encodeMTLSWBVHWithEncoder:(id)a0 descriptor:(id)a1 bvhDescriptor:(id)a2 outputBuffer:(id)a3 outputBufferOffset:(unsigned long long)a4 genericBVHBuffer:(id)a5 genericBVHBufferOffset:(unsigned long long)a6 scratchBuffer:(id)a7 scratchBufferOffset:(unsigned long long)a8 uniqueIdentifier:(unsigned long long)a9; - (void)fastIndirectGPUMemcpyWithEncoder:(id)a0 indirectBuffer:(id)a1 indirectBufferOffset:(unsigned long long)a2 srcBuffer:(id)a3 srcBufferOffset:(unsigned long long)a4 dstBuffer:(id)a5 dstBufferOffset:(unsigned long long)a6 lengthBuffer:(id)a7 lengthOffset:(unsigned long long)a8 retainedResources:(id)a9; - (unsigned long long)fragmentScratchSizeForDescriptor:(id)a0; - (unsigned long long)fragmentTotalThreadgroupCountForDescriptor:(id)a0; - (void)getBoundingBoxFragmentsWithEncoder:(id)a0 descriptor:(id)a1 outputBuffer:(id)a2 outputBufferOffset:(unsigned long long)a3 primitiveCountBuffer:(id)a4 primitiveCountBufferOffset:(unsigned long long)a5 fragmentBuffer:(id)a6 fragmentBufferOffset:(unsigned long long)a7 fragmentCountBuffer:(id)a8 fragmentCountBufferOffset:(unsigned long long)a9 boundsMinBuffer:(id)a10 boundsMinBufferOffset:(unsigned long long)a11 boundsMaxBuffer:(id)a12 boundsMaxBufferOffset:(unsigned long long)a13 boundsEndMinBuffer:(id)a14 boundsEndMinBufferOffset:(unsigned long long)a15 boundsEndMaxBuffer:(id)a16 boundsEndMaxBufferOffset:(unsigned long long)a17 boundsEndTimeBuffer:(id)a18 boundsEndTimeBufferOffset:(unsigned long long)a19 boundsStartTimeBuffer:(id)a20 boundsStartTimeBufferOffset:(unsigned long long)a21 fragmentScratchBuffer:(id)a22 fragmentScratchBufferOffset:(unsigned long long)a23; - (unsigned long long)getBuildScratchBufferSizeForDescriptor:(id)a0; - (void)getCurveFragmentsWithEncoder:(id)a0 descriptor:(id)a1 outputBuffer:(id)a2 outputBufferOffset:(unsigned long long)a3 primitiveCountBuffer:(id)a4 primitiveCountBufferOffset:(unsigned long long)a5 fragmentBuffer:(id)a6 fragmentBufferOffset:(unsigned long long)a7 fragmentCountBuffer:(id)a8 fragmentCountBufferOffset:(unsigned long long)a9 boundsMinBuffer:(id)a10 boundsMinBufferOffset:(unsigned long long)a11 boundsMaxBuffer:(id)a12 boundsMaxBufferOffset:(unsigned long long)a13 boundsEndMinBuffer:(id)a14 boundsEndMinBufferOffset:(unsigned long long)a15 boundsEndMaxBuffer:(id)a16 boundsEndMaxBufferOffset:(unsigned long long)a17 boundsEndTimeBuffer:(id)a18 boundsEndTimeBufferOffset:(unsigned long long)a19 boundsStartTimeBuffer:(id)a20 boundsStartTimeBufferOffset:(unsigned long long)a21; - (unsigned long long)getEncodeMTLSWBVHScratchBufferSizeForDescriptor:(id)a0 bvhDescriptor:(id)a1; - (unsigned long long)getGenericBVHSizeForDescriptor:(id)a0 nodeOffset:(unsigned long long *)a1 fragmentOffset:(unsigned long long *)a2 fragmentIndexOffset:(unsigned long long *)a3 childIndexOffset:(unsigned long long *)a4; - (void)getMTLInstanceBoundingBoxesWithEncoder:(id)a0 descriptor:(id)a1 boundingBoxBuffer:(id)a2 boundingBoxBufferOffset:(unsigned long long)a3; - (struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; unsigned long long x11; })getMTLSWBVHSizeAndOffsetsForDescriptor:(id)a0 bvhDescriptor:(id)a1; - (unsigned long long)getMTLSWBVHSizeForDescriptor:(id)a0 bvhDescriptor:(id)a1; - (unsigned long long)getMTLSWBVHSizeForDescriptor:(id)a0 bvhDescriptor:(id)a1 refitDataOffset:(unsigned long long *)a2 innerNodeOffset:(unsigned long long *)a3 leafNodeOffset:(unsigned long long *)a4 primitiveOffset:(unsigned long long *)a5 controlPointOffset:(unsigned long long *)a6 primitiveRefitDataOffset:(unsigned long long *)a7 geometryOffset:(unsigned long long *)a8 primitiveBVHOffset:(unsigned long long *)a9 transformOffset:(unsigned long long *)a10 instancedResourceIDsOffset:(unsigned long long *)a11; - (void)getPolygonFragmentsWithEncoder:(id)a0 descriptor:(id)a1 outputBuffer:(id)a2 outputBufferOffset:(unsigned long long)a3 primitiveCountBuffer:(id)a4 primitiveCountBufferOffset:(unsigned long long)a5 fragmentBuffer:(id)a6 fragmentBufferOffset:(unsigned long long)a7 fragmentCountBuffer:(id)a8 fragmentCountBufferOffset:(unsigned long long)a9 boundsMinBuffer:(id)a10 boundsMinBufferOffset:(unsigned long long)a11 boundsMaxBuffer:(id)a12 boundsMaxBufferOffset:(unsigned long long)a13 boundsEndMinBuffer:(id)a14 boundsEndMinBufferOffset:(unsigned long long)a15 boundsEndMaxBuffer:(id)a16 boundsEndMaxBufferOffset:(unsigned long long)a17 boundsEndTimeBuffer:(id)a18 boundsEndTimeBufferOffset:(unsigned long long)a19 boundsStartTimeBuffer:(id)a20 boundsStartTimeBufferOffset:(unsigned long long)a21; - (unsigned long long)getRefitScratchBufferSizeForDescriptor:(id)a0 bvhDescriptor:(id)a1; - (void)initPipelinesWithDevice:(id)a0; - (void)initializeCounterBuffer:(id)a0 counterBuffer:(id)a1 counterBufferOffset:(unsigned long long)a2; - (void)layoutNodesBreadthFirstWithEncoder:(id)a0 descriptor:(id)a1 BVHBuffer:(id)a2 BVHBufferOffset:(unsigned long long)a3 counterBuffer:(id)a4 counterBufferOffset:(unsigned long long)a5 nodeMappingBuffer:(id)a6 nodeMappingBufferOffset:(unsigned long long)a7 levelOffsetsBuffer:(id)a8 levelOffsetsBufferOffset:(unsigned long long)a9 levelCountsBuffer:(id)a10 levelCountsBufferOffset:(unsigned long long)a11 scratchBuffer:(id)a12 scratchBufferOffset:(unsigned long long)a13; - (unsigned long long)maxDepthForDescriptor:(id)a0; - (id)newGeometryBufferWithGeometryDescriptors:(id)a0 retainedResources:(id)a1; - (id)newIndirectBufferWithCapacity:(unsigned long long)a0 withRetainedResources:(id)a1 indirectBufferStride:(unsigned long long *)a2; - (id)newInstanceBufferWithBVHs:(id)a0 retainedResources:(id)a1 encoder:(id)a2; - (id)newInstanceBufferWithBVHs:(id)a0 retainedResources:(id)a1 encoder:(id)a2 encodedStride:(unsigned long long *)a3; - (id)newPrimitiveCountBufferWithEncoder:(id)a0 descriptor:(id)a1 retainedResources:(id)a2; - (id)newResourceBufferWithDescriptor:(id)a0 retainedResources:(id)a1; - (void)prefixSumWithEncoder:(id)a0 inputBuffer:(id)a1 inputBufferOffset:(unsigned long long)a2 reducedBuffer:(id)a3 reducedBufferOffset:(unsigned long long)a4 scratchBuffer:(id)a5 scratchBufferOffset:(unsigned long long)a6 countBuffer:(id)a7 countBufferOffset:(unsigned long long)a8 capacity:(unsigned long long)a9; - (void)refitMTLSWBVHWithEncoder:(id)a0 descriptor:(id)a1 bvhDescriptor:(id)a2 sourceBuffer:(id)a3 sourceBufferOffset:(unsigned long long)a4 destinationBuffer:(id)a5 destinationBufferOffset:(unsigned long long)a6 destinationMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a7 destinationAccelerationStructureUniqueIdentifier:(unsigned long long)a8 scratchBuffer:(id)a9 scratchBufferOffset:(unsigned long long)a10; - (void)refitMTLSWBVHWithEncoder:(id)a0 descriptor:(id)a1 bvhDescriptor:(id)a2 sourceBuffer:(id)a3 sourceBufferOffset:(unsigned long long)a4 destinationBuffer:(id)a5 destinationBufferOffset:(unsigned long long)a6 destinationMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a7 destinationAccelerationStructureUniqueIdentifier:(unsigned long long)a8 scratchBuffer:(id)a9 scratchBufferOffset:(unsigned long long)a10 options:(unsigned long long)a11; - (void)refitMTLSWBVHWithEncoder:(id)a0 descriptor:(id)a1 bvhDescriptor:(id)a2 sourceBuffer:(id)a3 sourceBufferOffset:(unsigned long long)a4 destinationBuffer:(id)a5 destinationBufferOffset:(unsigned long long)a6 destinationMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a7 destinationUniqueIdentifier:(unsigned long long)a8 scratchBuffer:(id)a9 scratchBufferOffset:(unsigned long long)a10; - (void)refitMTLSWBVHWithEncoder:(id)a0 descriptor:(id)a1 bvhDescriptor:(id)a2 sourceBuffer:(id)a3 sourceBufferOffset:(unsigned long long)a4 destinationBuffer:(id)a5 destinationBufferOffset:(unsigned long long)a6 destinationMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a7 destinationUniqueIdentifier:(unsigned long long)a8 scratchBuffer:(id)a9 scratchBufferOffset:(unsigned long long)a10 options:(unsigned long long)a11; - (void)refitPrimitiveData:(id)a0 inPlace:(BOOL)a1 bvhDescriptor:(id)a2; - (void)refitVertexDataWithEncoder:(id)a0 descriptor:(id)a1 bvhDescriptor:(id)a2 inPlace:(BOOL)a3 sourceBuffer:(id)a4 sourceBufferOffset:(unsigned long long)a5 scratchBuffer:(id)a6 scratchBufferOffset:(unsigned long long)a7 retainedResources:(id)a8 innerNodeCapacity:(unsigned long long)a9 leafNodeCapacity:(unsigned long long)a10; - (id)retainedResourcesArrayWithEncoder:(id)a0; - (void)setCounters:(const struct CounterValue { unsigned long long x0; unsigned int x1; unsigned int x2; } *)a0 numCounters:(unsigned long long)a1 encoder:(id)a2; - (void)setGeometryBufferWithGeometryDescriptors:(id)a0 retainedResources:(id)a1 onEncoder:(id)a2 atIndex:(unsigned long long)a3; - (void)setResourceBufferWithDescriptor:(id)a0 retainedResources:(id)a1 onEncoder:(id)a2 atIndex:(unsigned long long)a3; - (void)threadgroupPrefixSumWithEncoder:(id)a0 inputBuffer:(id)a1 inputBufferOffset:(unsigned long long)a2 reducedBuffer:(id)a3 reducedBufferOffset:(unsigned long long)a4 countBuffer:(id)a5 countBufferOffset:(unsigned long long)a6 capacity:(unsigned long long)a7; - (BOOL)useSpatialSplitsForDescriptor:(id)a0; - (void)writeAccelerationStructureSerializationDataWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 offset:(unsigned long long)a4; - (void)writeBVHHeaderWithEncoder:(id)a0 descriptor:(id)a1 tmpCounterBuffer:(id)a2 tmpCounterBufferOffset:(unsigned long long)a3 nodeBuffer:(id)a4 nodeBufferOffset:(unsigned long long)a5 headerBuffer:(id)a6 headerBufferOffset:(unsigned long long)a7 nodeOffset:(unsigned long long)a8 fragmentOffset:(unsigned long long)a9 fragmentIndexOffset:(unsigned long long)a10 childIndexOffset:(unsigned long long)a11 size:(unsigned long long)a12; - (void)writeCompactedMTLSWBVHSizeWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 sizeBufferOffset:(unsigned long long)a4 sizeDataType:(unsigned long long)a5; - (void)writeDeserializedMTLSWBVHSizeWithEncoder:(id)a0 serializedBuffer:(id)a1 serializedBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 sizeBufferOffset:(unsigned long long)a4; - (void)writeDeserializedMTLSWBVHWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 primitiveAccelerationStructures:(id)a3 fromBuffer:(id)a4 serializedBufferOffset:(unsigned long long)a5 accelerationStructureMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a6 accelerationStructureUniqueIdentifier:(unsigned long long)a7; - (void)writeDeserializedMTLSWBVHWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 primitiveAccelerationStructures:(id)a3 fromBuffer:(id)a4 serializedBufferOffset:(unsigned long long)a5 accelerationStructureMTLResourceID:(struct MTLResourceID { unsigned long long x0; })a6 uniqueIdentifier:(unsigned long long)a7; - (void)writeDeserializedMTLSWPrimitiveBVHSizesWithEncoder:(id)a0 serializedBuffer:(id)a1 serializedBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 sizesBufferOffset:(unsigned long long)a4; - (void)writeGenericBVHStructureSizesWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 sizesBufferOffset:(unsigned long long)a4; - (BOOL)writeGenericBVHStructureSizesWithEncoder:(id)a0 version:(unsigned long long)a1 BVHBuffer:(id)a2 BVHBufferOffset:(unsigned long long)a3 toBuffer:(id)a4 sizesBufferOffset:(unsigned long long)a5; - (void)writeGenericBVHStructureWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 header:(id)a3 headerBufferOffset:(unsigned long long)a4 innerNodes:(id)a5 innerNodeBufferOffset:(unsigned long long)a6 leafNodes:(id)a7 leafNodeBufferOffset:(unsigned long long)a8 primitives:(id)a9 primitiveBufferOffset:(unsigned long long)a10 geometry:(id)a11 geometryOffset:(unsigned long long)a12 instanceTransform:(id)a13 instanceTransformOffset:(unsigned long long)a14; - (BOOL)writeGenericBVHStructureWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 into:(id)a3; - (void)writeMTLSWBVHAccelerationStructureDepthWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 sizeBufferOffset:(unsigned long long)a4; - (void)writeMTLSWBVHSizeWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 sizeBufferOffset:(unsigned long long)a4; - (void)writeSerializationDataWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 destinationBufferOffset:(unsigned long long)a4; - (void)writeSerializedGeometryPrimitiveCountWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 countBufferOffset:(unsigned long long)a4; - (void)writeSerializedGeometrySizeWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 sizeBufferOffset:(unsigned long long)a4; - (void)writeSerializedGeometryWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 geometryBufferOffset:(unsigned long long)a4; - (void)writeSerializedMTLSWBVHRawSizeWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 sizeBufferOffset:(unsigned long long)a4; - (void)writeSerializedMTLSWBVHSizeWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 toBuffer:(id)a3 sizeBufferOffset:(unsigned long long)a4; - (void)writeSerializedMTLSWBVHWithEncoder:(id)a0 BVHBuffer:(id)a1 BVHBufferOffset:(unsigned long long)a2 primitiveAccelerationStructures:(id)a3 toBuffer:(id)a4 serializedBufferOffset:(unsigned long long)a5; @end