@class __end_cap_, NSData, NSMutableArray, __end_; @protocol MTLBuffer, MTLDepthStencilState, MTLArgumentEncoder, MTLComputePipelineState, MTLRenderPipelineState; @interface MTLGPUDebugDevice : MTLToolsDevice { struct MetalBufferHeap { struct mutex { struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } __m_; } _mutex; struct vector, std::allocator>> { __end_ **__begin_; __end_cap_ **x0; struct __compressed_pair *, std::allocator>> { id *__value_; } x1; } _buffers; struct vector> { unsigned int *__begin_; unsigned int *__end_; struct __compressed_pair> { unsigned int *__value_; } __end_cap_; } _freeList; int _currentFreeIndex; unsigned long long _totalMemoryAllocated; unsigned long long _totalMemoryInUse; unsigned long long _bufferLength; MTLGPUDebugDevice *_device; } bufferHeap; struct Options { unsigned int version; int mode; int accessTypes; int failMode; unsigned int maxTrackedResourcesMultiplier; struct { unsigned char enableReporting : 1; unsigned char packPointerAddresses : 1; unsigned char unpackPointerAddress : 1; unsigned char forceInline : 1; unsigned char enableBacktracking : 1; unsigned char optimizeConstantDeref : 1; unsigned char skipVertexFetchLoads : 1; unsigned char enableGEPOptimization : 1; unsigned char enableRuntimeStacktrace : 1; unsigned char emitBoundsChecking : 1; unsigned char runStandardOptimizations : 1; unsigned char backtrackFailuresAssumeSafe : 1; unsigned char pageDataIs32bitLength : 1; unsigned char forceUnrollLoops : 1; unsigned char mergeAccessChecks : 1; unsigned char convertToAB : 1; unsigned char arraysOfBuffersAB : 1; unsigned char noInlineTrivialFunctions : 1; unsigned char unrollMemCpyWA : 1; unsigned char checkGlobalConstants : 1; unsigned char enableTextureChecks : 1; unsigned char demoteGlobalConstantsToArg : 1; unsigned char argumentPointerIndirection : 1; unsigned char enableThreadgroupMemoryChecks : 1; unsigned char mergeThreadgroupGlobals : 1; unsigned char mergeThreadgroupArguments : 1; unsigned char tagThreadgroupPointers : 1; unsigned char enableJumpThreading : 1; unsigned char enableICBSupport : 1; unsigned char enableGlobalRelocations : 1; unsigned char enableTrapReporting : 1; unsigned char enableRaytracing : 1; unsigned char enableResourceUsageValidation : 1; unsigned char enableStackOverflow : 1; unsigned char enableDumpToStderr : 1; } ; } boundsCheckOptions; struct GPUDebugDeviceOptions { unsigned char retainReflection : 1; unsigned char retainPSOFunctions : 1; unsigned char abortOnFault : 1; } deviceOptions; struct GPUDebugBufferDescriptorHeap { struct mutex { struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } __m_; } s; struct vector> { unsigned int *__begin_; unsigned int *__end_; struct __compressed_pair> { unsigned int *__value_; } __end_cap_; } _freeIndexList; struct vector> { __end_ **__begin_; __end_cap_ **x0; struct __compressed_pair> { id *__value_; } x1; } _bufferList; unsigned long long _freeIndex; id _argumentEncoder; id _descriptorHeap; } globalBufferHeap; struct GPUDebugConstantBufferCache { unsigned long long _totalUsedMemory; struct mutex { struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } __m_; } _accessMutex; struct unordered_map, std::allocator>> { struct __hash_table, std::__unordered_map_hasher, GPUDebugConstantBufferCache::Key::Hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, GPUDebugConstantBufferCache::Key::Hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, GPUDebugConstantBufferCache::Key::Hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, GPUDebugConstantBufferCache::Key::Hash>> { float __value_; } __p3_; } __table_; } _cache; MTLGPUDebugDevice *_device; } constantBufferCache; struct GlobalResidentBufferList { unsigned int _iteration; struct mutex { struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } __m_; } _accessMutex; struct list, std::allocator>> { struct __list_node_base, void *> { void *__prev_; void *__next_; } __end_; struct __compressed_pair, void *>>> { unsigned long long __value_; } __size_alloc_; } _bufferList; } globalICBBufferResidentList; id uncheckedBuffer; NSData *_boundsCheckOptionsData; NSMutableArray *_argumentDescriptors; struct once_flag { unsigned long long __state_; } _deviceInitFlag; struct once_flag { unsigned long long __state_; } _icbPipelineInit; id _icbInheritVertexPipelineState; id _icbInheritNoneVertexPipelineState; id _icbInheritBuffersVertexPipelineState; id _icbDepthStencilState; id _icbInheritComputePipelineState; id _icbInheritNoneComputePipelineState; id _icbInheritBuffersComputePipelineState; id _icbInheritBothComputePipelineState; } @property (readonly, nonatomic) id ICB_Inherit_PSO_VertexPipelineState; @property (readonly, nonatomic) id ICB_Inherit_None_VertexPipelineState; @property (readonly, nonatomic) id ICB_Inherit_Buffers_VertexPipelineState; @property (readonly, nonatomic) id ICB_DepthStencilState; @property (readonly, nonatomic) id ICB_Inherit_PSO_ComputePipelineState; @property (readonly, nonatomic) id ICB_Inherit_None_ComputePipelineState; @property (readonly, nonatomic) id ICB_Inherit_Buffers_ComputePipelineState; @property (readonly, nonatomic) id ICB_Inherit_Both_ComputePipelineState; @property (readonly, nonatomic) id accelerationStructureComputePipelineState; @property (readonly, nonatomic) BOOL supportsResourceUsageValidation; - (id)newArgumentEncoderWithLayout:(id)a0; - (id)newCommandQueue; - (id)newAccelerationStructureWithSize:(unsigned long long)a0 withDescriptor:(id)a1; - (id)newDynamicLibraryFromURL:(id)a0 error:(id *)a1; - (id)newArgumentEncoderWithArguments:(id)a0 structType:(id *)a1; - (id)newDefaultLibrary; - (id)newLibraryWithDAG:(id)a0 functions:(id)a1 error:(id *)a2; - (void)newComputePipelineStateWithDescriptor:(id)a0 completionHandler:(id /* block */)a1; - (id)newBinaryArchiveWithDescriptor:(id)a0 error:(id *)a1; - (id)newDynamicLibraryWithURL:(id)a0 error:(id *)a1; - (id)newSharedTextureWithDescriptor:(id)a0; - (id)newAccelerationStructureWithDescriptor:(id)a0; - (BOOL)supportsRenderDynamicLibraries; - (id)newLibraryWithFile:(id)a0 error:(id *)a1; - (BOOL)supportsStackOverflowErrorCode; - (id)newLibraryWithStitchedDescriptor:(id)a0 error:(id *)a1; - (BOOL)supportsCMPIndirectCommandBuffers; - (id)newLibraryWithData:(id)a0 error:(id *)a1; - (void)newRenderPipelineStateWithMeshDescriptor:(id)a0 completionHandler:(id /* block */)a1; - (BOOL)supportsFunctionPointersFromRender; - (id)loadDynamicLibrariesForFunction:(id)a0 insertLibraries:(id)a1 error:(id *)a2; - (id)newComputePipelineStateWithFunction:(id)a0 error:(id *)a1; - (id)newLibraryWithDescriptor:(id)a0 error:(id *)a1; - (id)newComputePipelineStateWithDescriptor:(id)a0 options:(unsigned long long)a1 reflection:(id *)a2 error:(id *)a3; - (id)newAccelerationStructureWithSize:(unsigned long long)a0 resourceIndex:(unsigned long long)a1; - (id)newDynamicLibrary:(id)a0 computeDescriptor:(id)a1 error:(id *)a2; - (id)newRenderPipelineStateWithDescriptor:(id)a0 options:(unsigned long long)a1 reflection:(id *)a2 error:(id *)a3; - (id)newAccelerationStructureWithSize:(unsigned long long)a0; - (id)loadDynamicLibrariesForFunction:(id)a0 insertLibraries:(id)a1 options:(unsigned long long)a2 error:(id *)a3; - (id)newLibraryWithImageFilterFunctionsSPI:(id)a0 imageFilterFunctionInfo:(const struct { BOOL x0; unsigned long long x1; struct *x2; } *)a1 error:(id *)a2; - (id)newComputePipelineStateWithDescriptor:(id)a0 error:(id *)a1; - (struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })accelerationStructureSizesWithDescriptor:(id)a0; - (void)dealloc; - (void)newRenderPipelineStateWithMeshDescriptor:(id)a0 options:(unsigned long long)a1 completionHandler:(id /* block */)a2; - (id)newArgumentEncoderWithArguments:(id)a0; - (id)newDagStringWithGraphs:(id)a0; - (BOOL)supportsRaytracing; - (id)newDynamicLibrary:(id)a0 error:(id *)a1; - (id)newTextureWithDescriptor:(id)a0; - (void)newRenderPipelineStateWithDescriptor:(id)a0 completionHandler:(id /* block */)a1; - (void)newRenderPipelineStateWithTileDescriptor:(id)a0 options:(unsigned long long)a1 completionHandler:(id /* block */)a2; - (id)newLibraryWithDescriptorSPI:(id)a0 error:(id *)a1; - (BOOL)supportsGFXIndirectCommandBuffers; - (void)newComputePipelineStateWithFunction:(id)a0 options:(unsigned long long)a1 completionHandler:(id /* block */)a2; - (void)newLibraryWithStitchedDescriptor:(id)a0 completionHandler:(id /* block */)a1; - (id)newBinaryLibraryWithOptions:(unsigned long long)a0 url:(id)a1 error:(id *)a2; - (id)newSharedTextureWithHandle:(id)a0; - (id)newRenderPipelineStateWithDescriptor:(id)a0 error:(id *)a1; - (id).cxx_construct; - (BOOL)supportsSharedFunctionTables; - (id)newRenderPipelineStateWithMeshDescriptor:(id)a0 options:(unsigned long long)a1 reflection:(id *)a2 error:(id *)a3; - (id)newAccelerationStructureWithBuffer:(id)a0 offset:(unsigned long long)a1; - (void)newComputePipelineStateWithDescriptor:(id)a0 options:(unsigned long long)a1 completionHandler:(id /* block */)a2; - (id)newLibraryWithCIFilters:(id)a0 imageFilterFunctionInfo:(const struct { BOOL x0; unsigned long long x1; struct *x2; } *)a1 error:(id *)a2; - (id)loadDynamicLibrariesForComputeDescriptor:(id)a0 error:(id *)a1; - (id)newIndirectCommandBufferWithDescriptor:(id)a0 maxCommandCount:(unsigned long long)a1 options:(unsigned long long)a2; - (id)deserializePrimitiveAccelerationStructureFromBytes:(void *)a0 withDescriptor:(id)a1; - (id)newLibraryWithStitchedDescriptorSPI:(id)a0 error:(id *)a1; - (id)newArgumentEncoderWithBufferBinding:(id)a0; - (id)newCommandQueueWithDescriptor:(id)a0; - (id)newDefaultLibraryWithBundle:(id)a0 error:(id *)a1; - (id)newLibraryWithURL:(id)a0 error:(id *)a1; - (void)newRenderPipelineStateWithDescriptor:(id)a0 options:(unsigned long long)a1 completionHandler:(id /* block */)a2; - (id)newTextureWithDescriptor:(id)a0 iosurface:(struct __IOSurface { } *)a1 plane:(unsigned long long)a2 slice:(unsigned long long)a3; - (id)newCommandQueueWithMaxCommandBufferCount:(unsigned long long)a0; - (void).cxx_destruct; - (id)newDynamicLibraryWithURL:(id)a0 options:(unsigned long long)a1 error:(id *)a2; - (void)newComputePipelineStateWithFunction:(id)a0 completionHandler:(id /* block */)a1; - (id)deserializeInstanceAccelerationStructureFromBytes:(void *)a0 primitiveAccelerationStructures:(id)a1 withDescriptor:(id)a2; - (id)newComputePipelineStateWithFunction:(id)a0 options:(unsigned long long)a1 reflection:(id *)a2 error:(id *)a3; - (BOOL)supportsRayTracingPerPrimitiveData; - (id)newIntersectionFunctionTableWithDescriptor:(id)a0; - (id)newAccelerationStructureWithBuffer:(id)a0 offset:(unsigned long long)a1 resourceIndex:(unsigned long long)a2; - (id)loadDynamicLibrariesForComputeDescriptor:(id)a0 options:(unsigned long long)a1 error:(id *)a2; - (id)newRenderPipelineStateWithMeshDescriptor:(id)a0 error:(id *)a1; - (BOOL)supportsRaytracingFromRender; - (id)newLibraryWithSource:(id)a0 options:(id)a1 error:(id *)a2; - (void)newLibraryWithSource:(id)a0 options:(id)a1 completionHandler:(id /* block */)a2; - (void)newLibraryWithDescriptor:(id)a0 completionHandler:(id /* block */)a1; - (BOOL)supportsArgumentBuffersTier2; - (id)newRenderPipelineStateWithTileDescriptor:(id)a0 options:(unsigned long long)a1 reflection:(id *)a2 error:(id *)a3; - (BOOL)supportsForkJoin; - (id)newBufferWithBytesNoCopy:(void *)a0 length:(unsigned long long)a1 options:(unsigned long long)a2 deallocator:(id /* block */)a3; - (id)newBufferWithIOSurface:(struct __IOSurface { } *)a0; - (id)newBufferWithLength:(unsigned long long)a0 options:(unsigned long long)a1; - (id)newBufferWithBytes:(const void *)a0 length:(unsigned long long)a1 options:(unsigned long long)a2; - (id)newTextureWithDescriptor:(id)a0 iosurface:(struct __IOSurface { } *)a1 plane:(unsigned long long)a2; - (id)newBufferWithBytesNoCopy:(void *)a0 length:(unsigned long long)a1 options:(unsigned long long)a2 gpuAddress:(unsigned long long)a3 deallocator:(id /* block */)a4; - (id)initWithBaseObject:(id)a0 parent:(id)a1; - (id)newBufferWithBytes:(const void *)a0 length:(unsigned long long)a1 options:(unsigned long long)a2 gpuAddress:(unsigned long long)a3; - (id)newBufferWithDescriptor:(id)a0; - (id)newBufferWithLength:(unsigned long long)a0 options:(unsigned long long)a1 gpuAddress:(unsigned long long)a2; - (id)newHeapWithDescriptor:(id)a0; - (id)newLibraryWithCIFiltersForComputePipeline:(id)a0 imageFilterFunctionInfo:(const struct { BOOL x0; unsigned long long x1; struct *x2; } *)a1 error:(id *)a2; - (void)newRenderPipelineStateWithTileDescriptor:(id)a0 completionHandler:(id /* block */)a1; - (id)newRenderPipelineStateWithTileDescriptor:(id)a0 error:(id *)a1; - (id)newTextureWithBytesNoCopy:(void *)a0 length:(unsigned long long)a1 descriptor:(id)a2 deallocator:(id /* block */)a3; - (id)newVisibleFunctionTableWithDescriptor:(id)a0; - (id)getDynamicLibraryForBaseObject:(id)a0; - (void)_modifyCompileOptions:(unsigned long long *)a0; - (id)_modifyComputePipelineDescriptor:(id)a0; - (void)_modifyMeshRenderPipelineDescriptor:(id)a0; - (id)_modifyRenderPipelineDescriptor:(id)a0; - (id)_modifyTilePipelineDescriptor:(id)a0; - (void)_prepareBinaryLinkedFunctions:(id)a0; - (void)_prepareInsertLibraries:(id)a0; - (id)getFunctionForBaseObject:(id)a0 library:(id)a1; - (void)modifyFunctionDescriptor:(id)a0; - (id)newInternalBufferWithLength:(unsigned long long)a0 options:(unsigned long long)a1; - (id)newModifyPluginData:(id)a0; - (id)newStageArgumentBuffer; - (id)newStageBufferArgumentEncoder; - (void)onComputePipelineCreated:(id)a0; - (void)onRenderPipelineCreated:(id)a0; - (id)unwrapAndModifyComputePipelineDescriptor:(id *)a0 options:(unsigned long long *)a1; - (id)unwrapAndModifyMeshRenderPipelineDescriptor:(id)a0 options:(unsigned long long *)a1; - (id)unwrapAndModifyRenderPipelineDescriptor:(id *)a0 options:(unsigned long long *)a1; - (id)unwrapAndModifyTileRenderPipelineDescriptor:(id *)a0 options:(unsigned long long *)a1; - (id)unwrapStitchedLibraryDescriptor:(id)a0; - (void)validateRaytracing; @end