@class MTLGPUDebugRenderPipelineState, NSString, MTLToolsDepthStencilState, MTLGPUDebugCommandBuffer; @protocol MTLGPUDebugResource, MTLBuffer; @interface MTLGPUDebugRenderCommandEncoder : MTLToolsRenderCommandEncoder { unsigned int useResourceIteration; BOOL _tileStageActive; BOOL _tileStageUsed; BOOL _fragmentStageActive; BOOL _vertexStageActive; BOOL _objectStageActive; BOOL _meshStageActive; BOOL _enableUseResourceValidation; MTLGPUDebugCommandBuffer *_commandBuffer; struct MTLGPUDebugStageBufferHandles { unsigned long long handles[31]; id resources[31]; unsigned long long offsets[31]; unsigned long long strides[31]; unsigned int lengths[31]; unsigned long long gpu_address[31][2]; BOOL needsFlush; } _vertexHandles; struct MTLGPUDebugStageBufferHandles { unsigned long long handles[31]; id resources[31]; unsigned long long offsets[31]; unsigned long long strides[31]; unsigned int lengths[31]; unsigned long long gpu_address[31][2]; BOOL needsFlush; } _fragmentHandles; struct MTLGPUDebugStageBufferHandles { unsigned long long handles[31]; id resources[31]; unsigned long long offsets[31]; unsigned long long strides[31]; unsigned int lengths[31]; unsigned long long gpu_address[31][2]; BOOL needsFlush; } _tileHandles; struct MTLGPUDebugTileThreadgroup { struct GPUDebugThreadgroupTableEntry { unsigned int offset; unsigned int length; } entries[32]; BOOL needsFlush; } _tileThreadgroup; struct MTLGPUDebugStageBufferHandles { unsigned long long handles[31]; id resources[31]; unsigned long long offsets[31]; unsigned long long strides[31]; unsigned int lengths[31]; unsigned long long gpu_address[31][2]; BOOL needsFlush; } _objectHandles; struct MTLGPUDebugStageBufferHandles { unsigned long long handles[31]; id resources[31]; unsigned long long offsets[31]; unsigned long long strides[31]; unsigned int lengths[31]; unsigned long long gpu_address[31][2]; BOOL needsFlush; } _meshHandles; struct MTLGPUDebugThreadgroupLengths { unsigned int threadgroupSizes[31]; struct GPUDebugThreadgroupTableEntry { unsigned int offset; unsigned int length; } entries[32]; BOOL needsFlush; } _meshThreadgroup; 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; struct GPUDebugEventUUIDPacket { unsigned long long pipelineStateID; unsigned long long entryPointImageID; unsigned int encoderID; unsigned int eventID; } _drawID; unsigned long long _encoderType; MTLGPUDebugRenderPipelineState *_currentPipeline; MTLToolsDepthStencilState *_currentDepthStencil; struct MTLGPUDebugBufferSubAlloc { id buffer; unsigned long long offset; } _vertexReportBuffer; struct MTLGPUDebugBufferSubAlloc { id buffer; unsigned long long offset; } _fragmentReportBuffer; struct MTLGPUDebugBufferSubAlloc { id buffer; unsigned long long offset; } _tileReportBuffer; struct MTLGPUDebugBufferSubAlloc { id buffer; unsigned long long offset; } _objectReportBuffer; struct MTLGPUDebugBufferSubAlloc { id buffer; unsigned long long offset; } _meshReportBuffer; struct { unsigned char count; BOOL mappingsValid; struct { unsigned int viewportArrayIndexOffset; unsigned int renderTargetArrayIndexOffset; } mappings[2]; } _vertexAmpState; id _vertexBufferUsageTable; id _vertexTextureUsageTable; id _fragmentBufferUsageTable; id _fragmentTextureUsageTable; id _objectBufferUsageTable; id _objectTextureUsageTable; id _meshBufferUsageTable; id _meshTextureUsageTable; } @property (readonly) MTLGPUDebugCommandBuffer *commandBuffer; @property (readonly) unsigned int encoderID; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)setMeshIntersectionFunctionTables:(const id *)a0 withBufferRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setTileIntersectionFunctionTable:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)setFragmentAccelerationStructure:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)setVertexIntersectionFunctionTables:(const id *)a0 withBufferRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)executeCommandsInBuffer:(id)a0 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)useResources:(const id *)a0 count:(unsigned long long)a1 usage:(unsigned long long)a2 stages:(unsigned long long)a3; - (id).cxx_construct; - (void)useResource:(id)a0 usage:(unsigned long long)a1 stages:(unsigned long long)a2; - (void)setTileAccelerationStructure:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)setVertexAmplificationCount:(unsigned long long)a0 viewMappings:(const struct { unsigned int x0; unsigned int x1; } *)a1; - (void)setVertexIntersectionFunctionTable:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)useHeaps:(const id *)a0 count:(unsigned long long)a1; - (void)setTileVisibleFunctionTables:(const id *)a0 withBufferRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)useResource:(id)a0 usage:(unsigned long long)a1; - (void)setMeshAccelerationStructure:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)executeCommandsInBuffer:(id)a0 indirectBuffer:(id)a1 indirectBufferOffset:(unsigned long long)a2; - (void)setVertexVisibleFunctionTables:(const id *)a0 withBufferRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setFragmentVisibleFunctionTables:(const id *)a0 withBufferRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setObjectIntersectionFunctionTable:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)setObjectIntersectionFunctionTables:(const id *)a0 withBufferRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setObjectAccelerationStructure:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)useHeaps:(const id *)a0 count:(unsigned long long)a1 stages:(unsigned long long)a2; - (void)setTileIntersectionFunctionTables:(const id *)a0 withBufferRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setTileVisibleFunctionTable:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)setFragmentIntersectionFunctionTable:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)setFragmentIntersectionFunctionTables:(const id *)a0 withBufferRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setFragmentVisibleFunctionTable:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)useHeap:(id)a0; - (void)useResources:(const id *)a0 count:(unsigned long long)a1 usage:(unsigned long long)a2; - (void)useHeap:(id)a0 stages:(unsigned long long)a1; - (void)setVertexVisibleFunctionTable:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)setVertexAccelerationStructure:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)setMeshIntersectionFunctionTable:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)endEncoding; - (void)setVertexBuffer:(id)a0 offset:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)drawIndexedPrimitives:(unsigned long long)a0 indexCount:(unsigned long long)a1 indexType:(unsigned long long)a2 indexBuffer:(id)a3 indexBufferOffset:(unsigned long long)a4 instanceCount:(unsigned long long)a5 baseVertex:(long long)a6 baseInstance:(unsigned long long)a7; - (void)drawIndexedPrimitives:(unsigned long long)a0 indexType:(unsigned long long)a1 indexBuffer:(id)a2 indexBufferOffset:(unsigned long long)a3 indirectBuffer:(id)a4 indirectBufferOffset:(unsigned long long)a5; - (void)drawPrimitives:(unsigned long long)a0 indirectBuffer:(id)a1 indirectBufferOffset:(unsigned long long)a2; - (void)drawPrimitives:(unsigned long long)a0 vertexStart:(unsigned long long)a1 vertexCount:(unsigned long long)a2 instanceCount:(unsigned long long)a3 baseInstance:(unsigned long long)a4; - (void)setDepthStencilState:(id)a0; - (void)setFragmentBuffer:(id)a0 offset:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)setRenderPipelineState:(id)a0; - (void)setObjectBuffer:(id)a0 offset:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)drawMeshThreadgroups:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a0 threadsPerObjectThreadgroup:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a1 threadsPerMeshThreadgroup:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a2; - (void)drawMeshThreadgroupsWithIndirectBuffer:(id)a0 indirectBufferOffset:(unsigned long long)a1 threadsPerObjectThreadgroup:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a2 threadsPerMeshThreadgroup:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a3; - (void)drawMeshThreads:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a0 threadsPerObjectThreadgroup:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a1 threadsPerMeshThreadgroup:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a2; - (void)drawPrimitives:(unsigned long long)a0 vertexStart:(unsigned long long)a1 vertexCount:(unsigned long long)a2; - (void)setMeshBuffer:(id)a0 offset:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)setMeshBufferOffset:(unsigned long long)a0 atIndex:(unsigned long long)a1; - (void)setMeshBuffers:(const id *)a0 offsets:(const unsigned long long *)a1 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a2; - (void)setMeshBytes:(const void *)a0 length:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)setMeshTexture:(id)a0 atIndex:(unsigned long long)a1; - (void)setMeshTextures:(const id *)a0 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setMeshVisibleFunctionTable:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)setMeshVisibleFunctionTables:(const id *)a0 withBufferRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setObjectBufferOffset:(unsigned long long)a0 atIndex:(unsigned long long)a1; - (void)setObjectBuffers:(const id *)a0 offsets:(const unsigned long long *)a1 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a2; - (void)setObjectBytes:(const void *)a0 length:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)setObjectTexture:(id)a0 atIndex:(unsigned long long)a1; - (void)setObjectTextures:(const id *)a0 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setObjectVisibleFunctionTable:(id)a0 atBufferIndex:(unsigned long long)a1; - (void)setObjectVisibleFunctionTables:(const id *)a0 withBufferRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setTileBuffer:(id)a0 offset:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)setVertexBuffer:(id)a0 offset:(unsigned long long)a1 attributeStride:(unsigned long long)a2 atIndex:(unsigned long long)a3; - (void)setVertexBufferOffset:(unsigned long long)a0 attributeStride:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)setVertexBuffers:(const id *)a0 offsets:(const unsigned long long *)a1 attributeStrides:(const unsigned long long *)a2 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a3; - (void)setVertexBytes:(const void *)a0 length:(unsigned long long)a1 attributeStride:(unsigned long long)a2 atIndex:(unsigned long long)a3; - (void)dispatchThreadsPerTile:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a0; - (void)dispatchThreadsPerTile:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a0 inRegion:(struct { struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; } x0; struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; } x1; })a1; - (void)drawIndexedPrimitives:(unsigned long long)a0 indexCount:(unsigned long long)a1 indexType:(unsigned long long)a2 indexBuffer:(id)a3 indexBufferOffset:(unsigned long long)a4; - (void)drawPrimitives:(unsigned long long)a0 vertexStart:(unsigned long long)a1 vertexCount:(unsigned long long)a2 instanceCount:(unsigned long long)a3; - (void)setFragmentBufferOffset:(unsigned long long)a0 atIndex:(unsigned long long)a1; - (void)setFragmentTexture:(id)a0 atIndex:(unsigned long long)a1; - (void)setTileBytes:(const void *)a0 length:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)setTileTexture:(id)a0 atIndex:(unsigned long long)a1; - (void)setVertexBufferOffset:(unsigned long long)a0 atIndex:(unsigned long long)a1; - (void)setFragmentBytes:(const void *)a0 length:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)setVertexBytes:(const void *)a0 length:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)drawIndexedPatches:(unsigned long long)a0 patchIndexBuffer:(id)a1 patchIndexBufferOffset:(unsigned long long)a2 controlPointIndexBuffer:(id)a3 controlPointIndexBufferOffset:(unsigned long long)a4 indirectBuffer:(id)a5 indirectBufferOffset:(unsigned long long)a6; - (void)drawIndexedPatches:(unsigned long long)a0 patchStart:(unsigned long long)a1 patchCount:(unsigned long long)a2 patchIndexBuffer:(id)a3 patchIndexBufferOffset:(unsigned long long)a4 controlPointIndexBuffer:(id)a5 controlPointIndexBufferOffset:(unsigned long long)a6 instanceCount:(unsigned long long)a7 baseInstance:(unsigned long long)a8; - (void)drawIndexedPrimitives:(unsigned long long)a0 indexCount:(unsigned long long)a1 indexType:(unsigned long long)a2 indexBuffer:(id)a3 indexBufferOffset:(unsigned long long)a4 instanceCount:(unsigned long long)a5; - (void)drawPatches:(unsigned long long)a0 patchIndexBuffer:(id)a1 patchIndexBufferOffset:(unsigned long long)a2 indirectBuffer:(id)a3 indirectBufferOffset:(unsigned long long)a4; - (void)drawPatches:(unsigned long long)a0 patchStart:(unsigned long long)a1 patchCount:(unsigned long long)a2 patchIndexBuffer:(id)a3 patchIndexBufferOffset:(unsigned long long)a4 instanceCount:(unsigned long long)a5 baseInstance:(unsigned long long)a6; - (void)setFragmentBuffers:(const id *)a0 offsets:(const unsigned long long *)a1 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a2; - (void)setFragmentTextures:(const id *)a0 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setThreadgroupMemoryLength:(unsigned long long)a0 offset:(unsigned long long)a1 atIndex:(unsigned long long)a2; - (void)setTileBufferOffset:(unsigned long long)a0 atIndex:(unsigned long long)a1; - (void)setTileBuffers:(const id *)a0 offsets:(const unsigned long long *)a1 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a2; - (void)setTileTextures:(const id *)a0 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setVertexBuffers:(const id *)a0 offsets:(const unsigned long long *)a1 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a2; - (void)setVertexTexture:(id)a0 atIndex:(unsigned long long)a1; - (void)setVertexTextures:(const id *)a0 withRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1; - (void)setFragmentReportBuffer:(id)a0 offset:(unsigned long long)a1; - (void)_initBufferArgumentData:(id)a0; - (void)_useResourceCommon:(id)a0 usage:(unsigned long long)a1 stages:(struct optional { union { char x0; unsigned long long x1; } x0; BOOL x1; })a2; - (void)dispatchThreadsPerTile:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a0 inRegion:(struct { struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; } x0; struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; } x1; })a1 withRenderTargetArrayIndex:(unsigned int)a2; - (void)flushBindings; - (id)initWithRenderCommandEncoder:(id)a0 commandBuffer:(id)a1 descriptor:(id)a2 encoderID:(unsigned int)a3; - (id)initWithRenderCommandEncoder:(id)a0 parallelEncoder:(id)a1 encoderID:(unsigned int)a2; - (void)setBufferUsageTable:(id)a0 textureUsageTable:(id)a1 forStage:(unsigned long long)a2; - (void)setMeshReportBuffer:(id)a0 offset:(unsigned long long)a1; - (void)setObjectReportBuffer:(id)a0 offset:(unsigned long long)a1; - (void)setRenderPipelineStateBuffers:(id)a0; - (void)setTessellationControlPointIndexBuffer:(id)a0 offset:(unsigned long long)a1; - (void)setTileReportBuffer:(id)a0 offset:(unsigned long long)a1; - (void)setVertexReportBuffer:(id)a0 offset:(unsigned long long)a1; - (id)temporaryBufferWithBytes:(const void *)a0 length:(unsigned long long)a1; - (id)temporaryBufferWithLength:(unsigned long long)a0; - (void)useResourceInternal:(id)a0 usage:(unsigned long long)a1 stages:(struct optional { union { char x0; unsigned long long x1; } x0; BOOL x1; })a2; @end