in renderdoc/driver/metal/metal_core.cpp [81:474]
bool WrappedMTLDevice::ProcessChunk(ReadSerialiser &ser, MetalChunk chunk)
{
switch(chunk)
{
case MetalChunk::MTLCreateSystemDefaultDevice:
return Serialise_MTLCreateSystemDefaultDevice(ser);
case MetalChunk::MTLDevice_newCommandQueue: return Serialise_newCommandQueue(ser, NULL);
case MetalChunk::MTLDevice_newCommandQueueWithMaxCommandBufferCount: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newHeapWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newBufferWithLength:
case MetalChunk::MTLDevice_newBufferWithBytes:
return Serialise_newBufferWithBytes(ser, NULL, NULL, 0, MTL::ResourceOptionCPUCacheModeDefault);
case MetalChunk::MTLDevice_newBufferWithBytesNoCopy: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newDepthStencilStateWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newTextureWithDescriptor:
case MetalChunk::MTLDevice_newTextureWithDescriptor_iosurface:
case MetalChunk::MTLDevice_newTextureWithDescriptor_nextDrawable:
{
RDMTL::TextureDescriptor descriptor;
return Serialise_newTextureWithDescriptor(ser, NULL, descriptor);
}
case MetalChunk::MTLDevice_newSharedTextureWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newSharedTextureWithHandle: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newSamplerStateWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newDefaultLibrary: return Serialise_newDefaultLibrary(ser, NULL);
case MetalChunk::MTLDevice_newDefaultLibraryWithBundle: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newLibraryWithFile: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newLibraryWithURL: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newLibraryWithData: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newLibraryWithSource:
return Serialise_newLibraryWithSource(ser, NULL, NULL, NULL, NULL);
case MetalChunk::MTLDevice_newLibraryWithStitchedDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newRenderPipelineStateWithDescriptor:
{
RDMTL::RenderPipelineDescriptor descriptor;
return Serialise_newRenderPipelineStateWithDescriptor(ser, NULL, descriptor, NULL);
}
case MetalChunk::MTLDevice_newRenderPipelineStateWithDescriptor_options:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newComputePipelineStateWithFunction: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newComputePipelineStateWithFunction_options:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newComputePipelineStateWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newFence: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newRenderPipelineStateWithTileDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newArgumentEncoderWithArguments: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_supportsRasterizationRateMapWithLayerCount:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newRasterizationRateMapWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newIndirectCommandBufferWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newEvent: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newSharedEvent: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newSharedEventWithHandle: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newCounterSampleBufferWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newDynamicLibrary: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newDynamicLibraryWithURL: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLDevice_newBinaryArchiveWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLLibrary_newFunctionWithName:
return m_DummyReplayLibrary->Serialise_newFunctionWithName(ser, NULL, NULL);
case MetalChunk::MTLLibrary_newFunctionWithName_constantValues: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLLibrary_newFunctionWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLLibrary_newIntersectionFunctionWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLFunction_newArgumentEncoderWithBufferIndex: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandQueue_commandBuffer:
return m_DummyReplayCommandQueue->Serialise_commandBuffer(ser, NULL);
case MetalChunk::MTLCommandQueue_commandBufferWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandQueue_commandBufferWithUnretainedReferences:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_enqueue:
return m_DummyReplayCommandBuffer->Serialise_enqueue(ser);
case MetalChunk::MTLCommandBuffer_commit:
return m_DummyReplayCommandBuffer->Serialise_commit(ser);
case MetalChunk::MTLCommandBuffer_addScheduledHandler: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_presentDrawable:
return m_DummyReplayCommandBuffer->Serialise_presentDrawable(ser, NULL);
case MetalChunk::MTLCommandBuffer_presentDrawable_atTime: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_presentDrawable_afterMinimumDuration:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_waitUntilScheduled: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_addCompletedHandler: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_waitUntilCompleted:
return m_DummyReplayCommandBuffer->Serialise_waitUntilCompleted(ser);
case MetalChunk::MTLCommandBuffer_blitCommandEncoder:
return m_DummyReplayCommandBuffer->Serialise_blitCommandEncoder(ser, NULL);
case MetalChunk::MTLCommandBuffer_renderCommandEncoderWithDescriptor:
{
RDMTL::RenderPassDescriptor descriptor;
return m_DummyReplayCommandBuffer->Serialise_renderCommandEncoderWithDescriptor(ser, NULL,
descriptor);
}
case MetalChunk::MTLCommandBuffer_computeCommandEncoderWithDescriptor:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_blitCommandEncoderWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_computeCommandEncoder: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_computeCommandEncoderWithDispatchType:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_encodeWaitForEvent: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_encodeSignalEvent: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_parallelRenderCommandEncoderWithDescriptor:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_resourceStateCommandEncoder: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_resourceStateCommandEncoderWithDescriptor:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_accelerationStructureCommandEncoder:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_pushDebugGroup: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLCommandBuffer_popDebugGroup: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_setPurgeableState: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_makeAliasable: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_getBytes: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_getBytes_slice: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_replaceRegion: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_replaceRegion_slice: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_newTextureViewWithPixelFormat: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_newTextureViewWithPixelFormat_subset: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_newTextureViewWithPixelFormat_subset_swizzle:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_newSharedTextureHandle: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_remoteStorageTexture: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLTexture_newRemoteTextureViewForDevice: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderPipelineState_functionHandleWithFunction: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderPipelineState_newVisibleFunctionTableWithDescriptor:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderPipelineState_newIntersectionFunctionTableWithDescriptor:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderPipelineState_newRenderPipelineStateWithAdditionalBinaryFunctions:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_endEncoding:
return m_DummyReplayRenderCommandEncoder->Serialise_endEncoding(ser);
case MetalChunk::MTLRenderCommandEncoder_insertDebugSignpost: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_pushDebugGroup: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_popDebugGroup: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setRenderPipelineState:
return m_DummyReplayRenderCommandEncoder->Serialise_setRenderPipelineState(ser, NULL);
case MetalChunk::MTLRenderCommandEncoder_setVertexBytes: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexBuffer:
return m_DummyReplayRenderCommandEncoder->Serialise_setVertexBuffer(ser, NULL, 0, 0);
case MetalChunk::MTLRenderCommandEncoder_setVertexBufferOffset: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexBuffers: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexTexture: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexTextures: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexSamplerState: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexSamplerState_lodclamp:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexSamplerStates: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexSamplerStates_lodclamp:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexVisibleFunctionTable:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexVisibleFunctionTables:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexIntersectionFunctionTable:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexIntersectionFunctionTables:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexAccelerationStructure:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setViewport:
{
MTL::Viewport viewport;
return m_DummyReplayRenderCommandEncoder->Serialise_setViewport(ser, viewport);
}
case MetalChunk::MTLRenderCommandEncoder_setViewports: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFrontFacingWinding: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVertexAmplificationCount: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setCullMode: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setDepthClipMode: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setDepthBias: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setScissorRect: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setScissorRects: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTriangleFillMode: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentBytes: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentBuffer:
return m_DummyReplayRenderCommandEncoder->Serialise_setFragmentBuffer(ser, NULL, 0, 0);
case MetalChunk::MTLRenderCommandEncoder_setFragmentBufferOffset: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentBuffers: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentTexture:
return m_DummyReplayRenderCommandEncoder->Serialise_setFragmentTexture(ser, NULL, 0);
case MetalChunk::MTLRenderCommandEncoder_setFragmentTextures: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentSamplerState: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentSamplerState_lodclamp:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentSamplerStates: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentSamplerStates_lodclamp:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentVisibleFunctionTable:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentVisibleFunctionTables:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentIntersectionFunctionTable:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentIntersectionFunctionTables:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setFragmentAccelerationStructure:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setBlendColor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setDepthStencilState: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setStencilReferenceValue: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setStencilFrontReferenceValue:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setVisibilityResultMode: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setColorStoreAction: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setDepthStoreAction: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setStencilStoreAction: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setColorStoreActionOptions: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setDepthStoreActionOptions: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setStencilStoreActionOptions:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_drawPrimitives:
case MetalChunk::MTLRenderCommandEncoder_drawPrimitives_instanced:
case MetalChunk::MTLRenderCommandEncoder_drawPrimitives_instanced_base:
return m_DummyReplayRenderCommandEncoder->Serialise_drawPrimitives(
ser, MTL::PrimitiveTypePoint, 0, 0, 0, 0);
case MetalChunk::MTLRenderCommandEncoder_drawPrimitives_indirect: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_drawIndexedPrimitives: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_drawIndexedPrimitives_instanced:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_drawIndexedPrimitives_instanced_base:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_drawIndexedPrimitives_indirect:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_textureBarrier: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_updateFence: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_waitForFence: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTessellationFactorBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTessellationFactorScale: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_drawPatches: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_drawPatches_indirect: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_drawIndexedPatches: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_drawIndexedPatches_indirect: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileBytes: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileBufferOffset: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileBuffers: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileTexture: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileTextures: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileSamplerState: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileSamplerState_lodclamp:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileSamplerStates: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileSamplerStates_lodclamp:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileVisibleFunctionTable: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileVisibleFunctionTables:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileIntersectionFunctionTable:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileIntersectionFunctionTables:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setTileAccelerationStructure:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_dispatchThreadsPerTile: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_setThreadgroupMemoryLength: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_useResource: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_useResource_stages: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_useResources: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_useResources_stages: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_useHeap: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_useHeap_stages: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_useHeaps: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_useHeaps_stages: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_executeCommandsInBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_executeCommandsInBuffer_indirect:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_memoryBarrierWithScope: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_memoryBarrierWithResources: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLRenderCommandEncoder_sampleCountersInBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBuffer_setPurgeableState: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBuffer_makeAliasable: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBuffer_contents: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBuffer_didModifyRange:
{
NS::Range range = NS::Range::Make(0, 0);
return m_DummyBuffer->Serialise_didModifyRange(ser, range);
}
case MetalChunk::MTLBuffer_newTextureWithDescriptor: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBuffer_addDebugMarker: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBuffer_removeAllDebugMarkers: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBuffer_remoteStorageBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBuffer_newRemoteBufferViewForDevice: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBuffer_InternalModifyCPUContents:
return m_DummyBuffer->Serialise_InternalModifyCPUContents(ser, 0, 0, NULL);
case MetalChunk::MTLBlitCommandEncoder_setLabel: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_endEncoding:
return m_DummyReplayBlitCommandEncoder->Serialise_endEncoding(ser);
case MetalChunk::MTLBlitCommandEncoder_insertDebugSignpost: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_pushDebugGroup: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_popDebugGroup: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_synchronizeResource:
return m_DummyReplayBlitCommandEncoder->Serialise_synchronizeResource(ser, NULL);
case MetalChunk::MTLBlitCommandEncoder_synchronizeTexture: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_copyFromBuffer_toBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_copyFromBuffer_toTexture: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_copyFromBuffer_toTexture_options:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_copyFromTexture_toBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_copyFromTexture_toBuffer_options:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_copyFromTexture_toTexture: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_copyFromTexture_toTexture_slice_level_origin:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_copyFromTexture_toTexture_slice_level_count:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_generateMipmapsForTexture: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_fillBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_updateFence: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_waitForFence: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_getTextureAccessCounters: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_resetTextureAccessCounters: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_optimizeContentsForGPUAccess: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_optimizeContentsForGPUAccess_slice_level:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_optimizeContentsForCPUAccess: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_optimizeContentsForCPUAccess_slice_level:
METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_resetCommandsInBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_copyIndirectCommandBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_optimizeIndirectCommandBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_sampleCountersInBuffer: METAL_CHUNK_NOT_HANDLED();
case MetalChunk::MTLBlitCommandEncoder_resolveCounters: METAL_CHUNK_NOT_HANDLED();
// no default to get compile error if a chunk is not handled
case MetalChunk::Max: break;
}
{
SystemChunk system = (SystemChunk)chunk;
if(system == SystemChunk::DriverInit)
{
MetalInitParams InitParams;
SERIALISE_ELEMENT(InitParams);
SERIALISE_CHECK_READ_ERRORS();
}
else if(system == SystemChunk::InitialContentsList)
{
// TODO: Create initial contents
RDCERR("SystemChunk::InitialContentsList not handled");
SERIALISE_CHECK_READ_ERRORS();
}
else if(system == SystemChunk::InitialContents)
{
return Serialise_InitialState(ser, ResourceId(), NULL, NULL);
}
else if(system == SystemChunk::CaptureScope)
{
return Serialise_CaptureScope(ser);
}
else if(system == SystemChunk::CaptureEnd)
{
SERIALISE_ELEMENT_LOCAL(PresentedImage, ResourceId()).TypedAs("MTLTexture"_lit);
SERIALISE_CHECK_READ_ERRORS();
if(PresentedImage != ResourceId())
m_LastPresentedImage = PresentedImage;
if(IsLoading(m_State))
{
AddEvent();
ActionDescription action;
action.customName = "End of Capture";
action.flags |= ActionFlags::Present;
action.copyDestination = m_LastPresentedImage;
AddAction(action);
}
return true;
}
else if(system < SystemChunk::FirstDriverChunk)
{
RDCERR("Unexpected system chunk in capture data: %u", system);
ser.SkipCurrentChunk();
SERIALISE_CHECK_READ_ERRORS();
}
else
{
RDCERR("Unrecognised Chunk type %d", chunk);
return false;
}
}
return true;
}