void DoSerialise(SerialiserType &ser, D3D12_COMMAND_SIGNATURE_DESC &el) { SERIALISE_MEMBER(ByteStride); SERIALISE_MEMBER(NumArgumentDescs); SERIALISE_MEMBER_ARRAY(pArgumentDescs, NumArgumentDescs); SERIALISE_MEMBER(NodeMask); }
void DoSerialise(SerialiserType &ser, D3D12_TILED_RESOURCE_COORDINATE &el) { SERIALISE_MEMBER(X); SERIALISE_MEMBER(Y); SERIALISE_MEMBER(Z); SERIALISE_MEMBER(Subresource); }
void DoSerialise(SerialiserType &ser, D3D12_HEAP_DESC &el) { SERIALISE_MEMBER(SizeInBytes); SERIALISE_MEMBER(Properties); SERIALISE_MEMBER(Alignment); SERIALISE_MEMBER(Flags); }
void DoSerialise(SerialiserType &ser, D3D12_COMMAND_QUEUE_DESC &el) { SERIALISE_MEMBER(Type); SERIALISE_MEMBER(Priority); SERIALISE_MEMBER(Flags); SERIALISE_MEMBER(NodeMask); }
void DoSerialise(SerialiserType &ser, D3D12_DISCARD_REGION &el) { SERIALISE_MEMBER(NumRects); SERIALISE_MEMBER_ARRAY(pRects, NumRects); SERIALISE_MEMBER(FirstSubresource); SERIALISE_MEMBER(NumSubresources); }
void DoSerialise(SerialiserType &ser, D3D12_TEX2D_SRV &el) { SERIALISE_MEMBER(MostDetailedMip); SERIALISE_MEMBER(MipLevels); SERIALISE_MEMBER(PlaneSlice); SERIALISE_MEMBER(ResourceMinLODClamp); }
void DoSerialise(SerialiserType &ser, D3D12_DESCRIPTOR_HEAP_DESC &el) { SERIALISE_MEMBER(Type); SERIALISE_MEMBER(NumDescriptors); SERIALISE_MEMBER(Flags); SERIALISE_MEMBER(NodeMask); }
void DoSerialise(SerialiserType &ser, D3D12_TEX2D_ARRAY_UAV &el) { SERIALISE_MEMBER(MipSlice); SERIALISE_MEMBER(FirstArraySlice); SERIALISE_MEMBER(ArraySize); SERIALISE_MEMBER(PlaneSlice); }
void DoSerialise(SerialiserType &ser, D3D12_BUFFER_SRV &el) { SERIALISE_MEMBER(FirstElement); SERIALISE_MEMBER(NumElements); SERIALISE_MEMBER(StructureByteStride); SERIALISE_MEMBER(Flags); }
void DoSerialise(SerialiserType &ser, D3D12_DEPTH_STENCILOP_DESC &el) { SERIALISE_MEMBER(StencilFailOp); SERIALISE_MEMBER(StencilDepthFailOp); SERIALISE_MEMBER(StencilPassOp); SERIALISE_MEMBER(StencilFunc); }
void DoSerialise(SerialiserType &ser, D3D12_TILE_REGION_SIZE &el) { SERIALISE_MEMBER(NumTiles); SERIALISE_MEMBER(UseBox); SERIALISE_MEMBER(Width); SERIALISE_MEMBER(Height); SERIALISE_MEMBER(Depth); }
void DoSerialise(SerialiserType &ser, D3D12_TEXCUBE_ARRAY_SRV &el) { SERIALISE_MEMBER(MostDetailedMip); SERIALISE_MEMBER(MipLevels); SERIALISE_MEMBER(First2DArrayFace); SERIALISE_MEMBER(NumCubes); SERIALISE_MEMBER(ResourceMinLODClamp); }
void DoSerialise(SerialiserType &ser, D3D12_COMPUTE_PIPELINE_STATE_DESC &el) { SERIALISE_MEMBER(pRootSignature); SERIALISE_MEMBER(CS); SERIALISE_MEMBER(NodeMask); SERIALISE_MEMBER(CachedPSO); SERIALISE_MEMBER(Flags); }
void DoSerialise(SerialiserType &ser, D3D12_TEX1D_ARRAY_SRV &el) { SERIALISE_MEMBER(MostDetailedMip); SERIALISE_MEMBER(MipLevels); SERIALISE_MEMBER(FirstArraySlice); SERIALISE_MEMBER(ArraySize); SERIALISE_MEMBER(ResourceMinLODClamp); }
void DoSerialise(SerialiserType &ser, D3D12_SUBRESOURCE_FOOTPRINT &el) { SERIALISE_MEMBER(Format); SERIALISE_MEMBER(Width); SERIALISE_MEMBER(Height); SERIALISE_MEMBER(Depth); SERIALISE_MEMBER(RowPitch); }
void DoSerialise(SerialiserType &ser, D3D12_HEAP_PROPERTIES &el) { SERIALISE_MEMBER(Type); SERIALISE_MEMBER(CPUPageProperty); SERIALISE_MEMBER(MemoryPoolPreference); SERIALISE_MEMBER(CreationNodeMask); SERIALISE_MEMBER(VisibleNodeMask); }
void DoSerialise(SerialiserType &ser, D3D12_RESOURCE_TRANSITION_BARRIER &el) { SERIALISE_MEMBER(pResource); // cast to a special enum so we print 'all subresources' nicely SERIALISE_MEMBER_TYPED(D3D12ResourceBarrierSubresource, Subresource); SERIALISE_MEMBER(StateBefore); SERIALISE_MEMBER(StateAfter); }
void DoSerialise(SerialiserType &ser, D3D12_STREAM_OUTPUT_DESC &el) { SERIALISE_MEMBER_ARRAY(pSODeclaration, NumEntries); SERIALISE_MEMBER(NumEntries); SERIALISE_MEMBER_ARRAY(pBufferStrides, NumStrides); SERIALISE_MEMBER(NumStrides); SERIALISE_MEMBER(RasterizedStream); }
void DoSerialise(SerialiserType &ser, D3D12_CLEAR_VALUE &el) { SERIALISE_MEMBER(Format); if(IsDepthFormat(el.Format)) SERIALISE_MEMBER(DepthStencil); else SERIALISE_MEMBER(Color); }
void DoSerialise(SerialiserType &ser, D3D12_RESOURCE_BARRIER &el) { SERIALISE_MEMBER(Type); SERIALISE_MEMBER(Flags); switch(el.Type) { case D3D12_RESOURCE_BARRIER_TYPE_TRANSITION: SERIALISE_MEMBER(Transition); break; case D3D12_RESOURCE_BARRIER_TYPE_ALIASING: SERIALISE_MEMBER(Aliasing); break; case D3D12_RESOURCE_BARRIER_TYPE_UAV: SERIALISE_MEMBER(UAV); break; } }
void DoSerialise(SerialiserType &ser, D3D12_TEXTURE_COPY_LOCATION &el) { SERIALISE_MEMBER(pResource); SERIALISE_MEMBER(Type); switch(el.Type) { case D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT: SERIALISE_MEMBER(PlacedFootprint); break; case D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX: SERIALISE_MEMBER(SubresourceIndex); break; default: RDCERR("Unexpected texture copy type %d", el.Type); break; } }
void DoSerialise(SerialiserType &ser, D3D12_COMPUTE_PIPELINE_STATE_DESC &el) { SERIALISE_MEMBER(pRootSignature); SERIALISE_MEMBER(CS); SERIALISE_MEMBER(NodeMask); SERIALISE_MEMBER(Flags); if(ser.IsReading()) { el.CachedPSO.CachedBlobSizeInBytes = 0; el.CachedPSO.pCachedBlob = NULL; } }
void DoSerialise(SerialiserType &ser, D3D12_RESOURCE_DESC &el) { SERIALISE_MEMBER(Dimension); SERIALISE_MEMBER(Alignment); SERIALISE_MEMBER(Width); SERIALISE_MEMBER(Height); SERIALISE_MEMBER(DepthOrArraySize); SERIALISE_MEMBER(MipLevels); SERIALISE_MEMBER(Format); SERIALISE_MEMBER(SampleDesc); SERIALISE_MEMBER(Layout); SERIALISE_MEMBER(Flags); }
void DoSerialise(SerialiserType &ser, D3D12_SAMPLER_DESC &el) { SERIALISE_MEMBER(Filter); SERIALISE_MEMBER(AddressU); SERIALISE_MEMBER(AddressV); SERIALISE_MEMBER(AddressW); SERIALISE_MEMBER(MipLODBias); SERIALISE_MEMBER(MaxAnisotropy); SERIALISE_MEMBER(ComparisonFunc); SERIALISE_MEMBER(BorderColor); SERIALISE_MEMBER(MinLOD); SERIALISE_MEMBER(MaxLOD); }
void DoSerialise(SerialiserType &ser, D3D12_INDIRECT_ARGUMENT_DESC &el) { SERIALISE_MEMBER(Type); switch(el.Type) { case D3D12_INDIRECT_ARGUMENT_TYPE_DRAW: case D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED: case D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH: case D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW: // nothing to serialise break; case D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW: SERIALISE_MEMBER(VertexBuffer.Slot); break; case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT: SERIALISE_MEMBER(Constant.RootParameterIndex); SERIALISE_MEMBER(Constant.DestOffsetIn32BitValues); SERIALISE_MEMBER(Constant.Num32BitValuesToSet); break; case D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW: SERIALISE_MEMBER(ConstantBufferView.RootParameterIndex); break; case D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW: SERIALISE_MEMBER(ShaderResourceView.RootParameterIndex); break; case D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW: SERIALISE_MEMBER(UnorderedAccessView.RootParameterIndex); break; default: RDCERR("Unexpected indirect argument type: %u", el.Type); break; } }
void DoSerialise(SerialiserType &ser, DynamicDescriptorCopy &el) { D3D12ResourceManager *rm = (D3D12ResourceManager *)ser.GetUserData(); SERIALISE_MEMBER(type); PortableHandle dst, src; if(ser.IsWriting()) { dst = ToPortableHandle(el.dst); src = ToPortableHandle(el.src); } ser.Serialise("dst", dst); ser.Serialise("src", src); if(ser.IsReading()) { if(rm) { el.dst = DescriptorFromPortableHandle(rm, dst); el.src = DescriptorFromPortableHandle(rm, src); } else { el.dst = NULL; el.src = NULL; } } }
void DoSerialise(SerialiserType &ser, D3D12_DEPTH_STENCIL_DESC &el) { SERIALISE_MEMBER(DepthEnable); SERIALISE_MEMBER(DepthWriteMask); SERIALISE_MEMBER(DepthFunc); SERIALISE_MEMBER(StencilEnable); SERIALISE_MEMBER(StencilReadMask); SERIALISE_MEMBER(StencilWriteMask); SERIALISE_MEMBER(FrontFace); SERIALISE_MEMBER(BackFace); }
void DoSerialise(SerialiserType &ser, D3D12_RENDER_TARGET_VIEW_DESC &el) { SERIALISE_MEMBER(Format); SERIALISE_MEMBER(ViewDimension); switch(el.ViewDimension) { case D3D12_RTV_DIMENSION_UNKNOWN: // indicates an empty descriptor, which comes from a NULL parameter to Create. break; case D3D12_RTV_DIMENSION_BUFFER: SERIALISE_MEMBER(Buffer); break; case D3D12_RTV_DIMENSION_TEXTURE1D: SERIALISE_MEMBER(Texture1D); break; case D3D12_RTV_DIMENSION_TEXTURE1DARRAY: SERIALISE_MEMBER(Texture1DArray); break; case D3D12_RTV_DIMENSION_TEXTURE2D: SERIALISE_MEMBER(Texture2D); break; case D3D12_RTV_DIMENSION_TEXTURE2DARRAY: SERIALISE_MEMBER(Texture2DArray); break; case D3D12_RTV_DIMENSION_TEXTURE2DMS: SERIALISE_MEMBER(Texture2DMS); break; case D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY: SERIALISE_MEMBER(Texture2DMSArray); break; case D3D12_RTV_DIMENSION_TEXTURE3D: SERIALISE_MEMBER(Texture3D); break; default: RDCERR("Unrecognised RTV Dimension %d", el.ViewDimension); break; } }
void DoSerialise(SerialiserType &ser, D3D12_INPUT_ELEMENT_DESC &el) { SERIALISE_MEMBER(SemanticName); SERIALISE_MEMBER(SemanticIndex); SERIALISE_MEMBER(Format); SERIALISE_MEMBER(InputSlot); SERIALISE_MEMBER(AlignedByteOffset); SERIALISE_MEMBER(InputSlotClass); SERIALISE_MEMBER(InstanceDataStepRate); }
void DoSerialise(SerialiserType &ser, D3D12_BOX &el) { SERIALISE_MEMBER(left); SERIALISE_MEMBER(top); SERIALISE_MEMBER(front); SERIALISE_MEMBER(right); SERIALISE_MEMBER(bottom); SERIALISE_MEMBER(back); }