@class __end_, MTLGPUDebugDevice, __end_cap_; @protocol MTLBuffer, MTLArgumentEncoder; @interface MTLGPUDebugCommandBuffer : MTLToolsCommandBuffer { BOOL _initialized; struct Options { unsigned int x0; int x1; int x2; int x3; unsigned int x4; struct { unsigned char x0 : 1; unsigned char x1 : 1; unsigned char x2 : 1; unsigned char x3 : 1; unsigned char x4 : 1; unsigned char x5 : 1; unsigned char x6 : 1; unsigned char x7 : 1; unsigned char x8 : 1; unsigned char x9 : 1; unsigned char x10 : 1; unsigned char x11 : 1; unsigned char x12 : 1; unsigned char x13 : 1; unsigned char x14 : 1; unsigned char x15 : 1; unsigned char x16 : 1; unsigned char x17 : 1; unsigned char x18 : 1; unsigned char x19 : 1; unsigned char x20 : 1; unsigned char x21 : 1; unsigned char x22 : 1; unsigned char x23 : 1; unsigned char x24 : 1; unsigned char x25 : 1; unsigned char x26 : 1; unsigned char x27 : 1; unsigned char x28 : 1; unsigned char x29 : 1; unsigned char x30 : 1; unsigned char x31 : 1; unsigned char x32 : 1; unsigned char x33 : 1; unsigned char x34 : 1; } x5; } *_options; id _stageArgumentEncoder; id _vertexComputeReportBuffer; unsigned long long _vertexComputeReportOffset; id _fragmentReportBuffer; unsigned long long _fragmentReportOffset; struct vector> { struct MetalBuffer *__begin_; struct MetalBuffer *__end_; struct __compressed_pair> { struct MetalBuffer *__value_; } __end_cap_; } _usedBuffers; struct MetalBuffer { struct MetalBufferHeap *heap; unsigned int index; } _currentPooledBuffer; unsigned long long _currentPooledBufferOffset; unsigned int _currentEncoderID; unsigned int _currentReportID; struct vector, std::allocator>> { __end_ **__begin_; __end_cap_ **x0; struct __compressed_pair *, std::allocator>> { id *__value_; } x1; } _reportBufferList; struct vector> { struct ReportBufferEntry *__begin_; struct ReportBufferEntry *__end_; struct __compressed_pair> { struct ReportBufferEntry *__value_; } __end_cap_; } _reportEntryList; struct vector> { __end_ **__begin_; __end_cap_ **x0; struct __compressed_pair> { id *__value_; } x1; } _encoderLabels; struct mutex { struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } __m_; } _allocationLock; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _tempBufLock; BOOL _supportsTileStage; BOOL _supportsMeshStage; BOOL _hasDeferredBindingObjectAndMeshReportBuffers; struct BufferUsageTable { id _backingMemory; } _bufferUsageTables[4]; struct TextureUsageTable { id _backingMemory; } _textureUsageTables[4]; struct HeapUsageTable { struct vector, std::allocator>> { void *__begin_; void *__end_; struct __compressed_pair *, std::allocator>> { void *__value_; } __end_cap_; } _heapStages; } _heapUsageTable; } @property (readonly) MTLGPUDebugDevice *device; - (id)blitCommandEncoderWithDescriptor:(id)a0; - (id)computeCommandEncoderWithDispatchType:(unsigned long long)a0; - (id)computeCommandEncoderWithDescriptor:(id)a0; - (void)dealloc; - (id)accelerationStructureCommandEncoderWithDescriptor:(id)a0; - (id).cxx_construct; - (id)accelerationStructureCommandEncoder; - (void).cxx_destruct; - (id)computeCommandEncoder; - (id)blitCommandEncoder; - (id)renderCommandEncoderWithDescriptor:(id)a0; - (id)parallelRenderCommandEncoderWithDescriptor:(id)a0; - (id)sampledRenderCommandEncoderWithDescriptor:(id)a0 programInfoBuffer:(union { struct { unsigned char x0 : 8; unsigned int x1 : 24; unsigned int x2; unsigned long long x3; unsigned long long x4; } x0; struct { unsigned char x0 : 8; unsigned int x1 : 24; unsigned int x2; unsigned long long x3; unsigned long long x4; } x1; } *)a1 capacity:(unsigned long long)a2; - (id)sampledComputeCommandEncoderWithDescriptor:(id)a0 programInfoBuffer:(union { struct { unsigned char x0 : 8; unsigned int x1 : 24; unsigned int x2; unsigned long long x3; unsigned long long x4; } x0; struct { unsigned char x0 : 8; unsigned int x1 : 24; unsigned int x2; unsigned long long x3; unsigned long long x4; } x1; } *)a1 capacity:(unsigned long long)a2; - (id)sampledComputeCommandEncoderWithDispatchType:(unsigned long long)a0 programInfoBuffer:(union { struct { unsigned char x0 : 8; unsigned int x1 : 24; unsigned int x2; unsigned long long x3; unsigned long long x4; } x0; struct { unsigned char x0 : 8; unsigned int x1 : 24; unsigned int x2; unsigned long long x3; unsigned long long x4; } x1; } *)a1 capacity:(unsigned long long)a2; - (id)sampledComputeCommandEncoderWithProgramInfoBuffer:(union { struct { unsigned char x0 : 8; unsigned int x1 : 24; unsigned int x2; unsigned long long x3; unsigned long long x4; } x0; struct { unsigned char x0 : 8; unsigned int x1 : 24; unsigned int x2; unsigned long long x3; unsigned long long x4; } x1; } *)a0 capacity:(unsigned long long)a1; - (void)beginUseOfMeshShadersInEncoder:(id)a0; - (struct ReportBufferEntry { unsigned long long x0; id x1; unsigned long long x2; })_allocReportEntryStorageForType:(unsigned long long)a0; - (void)_checkReportBuffers; - (void)_encodeReportBuffer:(id)a0 type:(unsigned long long)a1; - (void)_lateInit; - (id)_newReportBuffer; - (struct pair, unsigned long> { id x0; unsigned long long x1; })_temporaryBufferWithLength:(unsigned long long)a0; - (void)beginingEncoder:(id)a0 type:(unsigned long long)a1; - (id)encodeBuffers:(const id *)a0 offsets:(const unsigned long long *)a1 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a2 resultOffset:(unsigned long long *)a3; - (void)encodeResourceTableBuffers:(id)a0 type:(unsigned long long)a1; - (id)encoderIdentifierForEncoderIndex:(unsigned int)a0; - (void)endingEncoder:(id)a0 type:(unsigned long long)a1; - (id)initWithCommandBuffer:(id)a0 commandQueue:(id)a1 descriptor:(id)a2; - (void)markAccelerationStructure:(id)a0 usage:(unsigned long long)a1 stages:(unsigned long long)a2; - (void)markBuffer:(id)a0 usage:(unsigned long long)a1 stages:(unsigned long long)a2; - (void)markHeap:(id)a0 stages:(unsigned long long)a1; - (void)markTexture:(id)a0 usage:(unsigned long long)a1 stages:(unsigned long long)a2; - (void)preCommit; - (void)preCompletionHandlers; - (int)resourceUsageForBuffer:(id)a0 stage:(unsigned long long)a1; - (int)resourceUsageForTexture:(id)a0 stage:(unsigned long long)a1; - (id)temporaryBufferWithBytes:(const void *)a0 length:(unsigned long long)a1; - (id)temporaryBufferWithLength:(unsigned long long)a0; @end