luxlabs header browser preview


@class NSMutableArray, NSObject, IOGPUMetalIOCommandQueue, IOGPUMetalCommandBuffer, IOGPUMetalDeviceShmem, IOGPUMetalCommandEncoder, IOGPUMetalDevice;
@protocol OS_dispatch_group, MTLDevice, MTLCommandBuffer, MTLBlitCommandEncoder;

@interface IOGPUMetalIOCommandBuffer : _MTLIOCommandBuffer {
    IOGPUMetalDevice<MTLDevice> *_device;
    IOGPUMetalIOCommandQueue *_queue;
    IOGPUMetalDeviceShmem *_ioKernelCommandShmem;
    char *_ioKernelCommandShmemStart;
    char *_ioKernelCommandShmemCurrent;
    char *_ioKernelCommandShmemEnd;
    struct IOGPUIOKernelCommandListHeader { unsigned int x0; unsigned int x1; } *_commandListHeader;
    IOGPUMetalCommandBuffer<MTLCommandBuffer> *_gpuCommandBuffer;
    IOGPUMetalCommandEncoder<MTLBlitCommandEncoder> *_gpuBlitEncoder;
    NSMutableArray *_stagingBuffers;
    NSObject<OS_dispatch_group> *_ioCompletionGroup;
    _Atomic unsigned int _notificationCount;
    unsigned int _lastBarrierNotificationCount;
    unsigned int _commandBufferID;
    unsigned long long _globalTraceObjectID;
    BOOL _hasFollowOnGPUWork;
    BOOL _committed;
    BOOL _tryCancel;
}

- (unsigned long long)globalTraceObjectID;
- (id)initWithQueue:(id)a0;
- (void)dealloc;
- (void)commit;
- (void)tryCancel;
- (void)encodeSignalEvent:(id)a0 value:(unsigned long long)a1;
- (void)growKernelCommandBuffer:(unsigned int)a0;
- (void)enqueue;
- (void)setLabel:(id)a0;
- (BOOL)isCommitted;
- (void)encodeWaitForEvent:(id)a0 value:(unsigned long long)a1;
- (void)barrier;
- (void)waitForEvent:(id)a0 value:(unsigned long long)a1;
- (void)addBarrier;
- (void)didCompleteWithStatus:(long long)a0;
- (id)initWithQueue:(id)a0 resourceList:(id)a1 retained:(BOOL)a2;
- (void)loadBuffer:(id)a0 offset:(unsigned long long)a1 size:(unsigned long long)a2 handle:(id)a3 handleOffset:(unsigned long long)a4;
- (void)loadBuffer:(id)a0 offset:(unsigned long long)a1 size:(unsigned long long)a2 sourceHandle:(id)a3 sourceHandleOffset:(unsigned long long)a4;
- (void)loadBytes:(void *)a0 size:(unsigned long long)a1 sourceHandle:(id)a2 sourceHandleOffset:(unsigned long long)a3;
- (void)loadTexture:(id)a0 slice:(unsigned long long)a1 level:(unsigned long long)a2 size:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a3 bytesPerRow:(unsigned long long)a4 bytesPerImage:(unsigned long long)a5 dstOrigin:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a6 handle:(id)a7 handleOffset:(unsigned long long)a8;
- (void)loadTexture:(id)a0 slice:(unsigned long long)a1 level:(unsigned long long)a2 size:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a3 sourceBytesPerRow:(unsigned long long)a4 sourceBytesPerImage:(unsigned long long)a5 destinationOrigin:(struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; })a6 sourceHandle:(id)a7 sourceHandleOffset:(unsigned long long)a8;
- (void)signalEvent:(id)a0 value:(unsigned long long)a1;
- (BOOL)hasFollowOnWork;
- (void)barrierComplete:(long long)a0;
- (void)createCommandList;
- (void *)getCommandBufferBytes:(unsigned int)a0;
- (BOOL)validateNotificationCount;

@end