luxlabs header browser preview


@protocol MTLLibrary, MTLDevice;

@interface MTLGPUBVHBuilder : MTLBVHBuilder {
    id<MTLDevice> _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<MTLLibrary> _library;
    struct PipelineCache<PipelineKey> { struct unordered_map<PipelineCache<PipelineKey>::HashKey, PipelineValue, PipelineCache<PipelineKey>::Hasher, std::equal_to<PipelineCache<PipelineKey>::HashKey>, std::allocator<std::pair<const PipelineCache<PipelineKey>::HashKey, PipelineValue>>> { struct __hash_table<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, std::__unordered_map_hasher<PipelineCache<PipelineKey>::HashKey, std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, PipelineCache<PipelineKey>::Hasher, std::equal_to<PipelineCache<PipelineKey>::HashKey>>, std::__unordered_map_equal<PipelineCache<PipelineKey>::HashKey, std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, std::equal_to<PipelineCache<PipelineKey>::HashKey>, PipelineCache<PipelineKey>::Hasher>, std::allocator<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>>> { struct unique_ptr<std::__hash_node_base<std::__hash_node<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, void *> *> *[], std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, void *> *> *>>> { struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, void *> *> **, std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, void *> *> *>> { struct __compressed_pair<unsigned long, std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, void *> *>, std::allocator<std::__hash_node<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, void *>>> { struct __hash_node_base<std::__hash_node<std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair<unsigned long, std::__unordered_map_hasher<PipelineCache<PipelineKey>::HashKey, std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, PipelineCache<PipelineKey>::Hasher, std::equal_to<PipelineCache<PipelineKey>::HashKey>>> { unsigned long long __value_; } __p2_; struct __compressed_pair<float, std::__unordered_map_equal<PipelineCache<PipelineKey>::HashKey, std::__hash_value_type<PipelineCache<PipelineKey>::HashKey, PipelineValue>, std::equal_to<PipelineCache<PipelineKey>::HashKey>, PipelineCache<PipelineKey>::Hasher>> { float __value_; } __p3_; } __table_; } map; unsigned long long baseThreadgroupSize; struct function<id<MTLComputePipelineState> (const PipelineKey &)> { struct __value_func<id<MTLComputePipelineState> (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