Versions in this module Expand all Collapse all v1 v1.0.0 Sep 11, 2020 Changes in this version + const NodeNoID + func DCECapture(ctx context.Context, name string, p *path.Capture, ...) (*path.Capture, error) + func NewForwardWatcher() *forwardWatcher + func NewFragWatcher() *fragWatcher + func NewGraphBuilder(ctx context.Context, config DependencyGraphConfig, c *capture.GraphicsCapture, ...) *graphBuilder + func NewMemWatcher() *memWatcher + type AccessMode uint + const ACCESS_READ + const ACCESS_READ_WRITE + const ACCESS_WRITE + type Accesses struct + type CloseForwardDependencyEffect struct + DependencyID interface{} + NodeID NodeID + func (e CloseForwardDependencyEffect) GetNodeID() NodeID + type CmdContext struct + type CmdNode struct + CmdFlags api.CmdFlags + Index api.SubCmdIdx + type DCEBuilder struct + func NewDCEBuilder(graph DependencyGraph) *DCEBuilder + func (*DCEBuilder) Transform(ctx context.Context, id api.CmdID, c api.Cmd, out transform.Writer) error + func (b *DCEBuilder) Build(ctx context.Context) error + func (b *DCEBuilder) Flush(ctx context.Context, out transform.Writer) error + func (b *DCEBuilder) LiveCmdID(oldCmdID api.CmdID) api.CmdID + func (b *DCEBuilder) LiveCmds() []api.Cmd + func (b *DCEBuilder) LogStats(ctx context.Context) + func (b *DCEBuilder) NumLiveInitCmds() int + func (b *DCEBuilder) OriginalCmdID(liveCmdID api.CmdID) api.CmdID + func (b *DCEBuilder) PostLoop(ctx context.Context, out transform.Writer) + func (b *DCEBuilder) PreLoop(ctx context.Context, out transform.Writer) + func (b *DCEBuilder) Request(ctx context.Context, fci api.SubCmdIdx) error + func (t *DCEBuilder) BuffersCommands() bool + type DependencyGraph interface + Capture func() *capture.GraphicsCapture + Config func() DependencyGraphConfig + ForeachCmd func(ctx context.Context, cb func(context.Context, api.CmdID, api.Cmd) error) error + ForeachDependency func(cb func(NodeID, NodeID) error) error + ForeachDependencyFrom func(src NodeID, cb func(NodeID) error) error + ForeachDependencyTo func(tgt NodeID, cb func(NodeID) error) error + ForeachNode func(cb func(NodeID, Node) error) error + GetCmdAncestorNodeIDs func(api.CmdID, api.SubCmdIdx) []NodeID + GetCmdNodeID func(api.CmdID, api.SubCmdIdx) NodeID + GetCommand func(api.CmdID) api.Cmd + GetNode func(NodeID) Node + GetNodeAccesses func(NodeID) NodeAccesses + GetUnopenedForwardDependencies func() []api.CmdID + NumDependencies func() uint64 + NumInitialCommands func() int + NumNodes func() int + func BuildDependencyGraph(ctx context.Context, config DependencyGraphConfig, c *capture.GraphicsCapture, ...) (DependencyGraph, error) + func GetDependencyGraph(ctx context.Context, c *path.Capture, config DependencyGraphConfig) (DependencyGraph, error) + func TryGetDependencyGraph(ctx context.Context, c *path.Capture, config DependencyGraphConfig) (DependencyGraph, error) + type DependencyGraphConfig struct + IncludeInitialCommands bool + MergeSubCmdNodes bool + ReverseDependencies bool + SaveNodeAccesses bool + type Distribution struct + LargeBins map[uint64]uint64 + SmallBins []uint64 + func (d Distribution) Add(x uint64) + type Effect interface + GetNodeID func() NodeID + type ForwardAccess struct + DependencyID interface{} + Mode ForwardAccessMode + Nodes *ForwardNodes + type ForwardAccessMode uint + const FORWARD_CLOSE + const FORWARD_DROP + const FORWARD_OPEN + type ForwardNodes struct + Close NodeID + Drop NodeID + Open NodeID + type ForwardWatcher interface + CloseForwardDependency func(ctx context.Context, cmdCtx CmdContext, dependencyID interface{}) + DropForwardDependency func(ctx context.Context, cmdCtx CmdContext, dependencyID interface{}) + OnBeginCmd func(ctx context.Context, cmdCtx CmdContext) + OnBeginSubCmd func(ctx context.Context, cmdCtx CmdContext, subCmdCtx CmdContext) + OnEndCmd func(ctx context.Context, cmdCtx CmdContext) Accesses + OnEndSubCmd func(ctx context.Context, cmdCtx CmdContext) + OpenForwardDependency func(ctx context.Context, cmdCtx CmdContext, dependencyID interface{}) + type FragWatcher interface + GetStateRefs func() map[api.RefID]RefFrag + OnBeginCmd func(ctx context.Context, cmdCtx CmdContext) + OnBeginSubCmd func(ctx context.Context, cmdCtx CmdContext, subCmdCtx CmdContext) + OnEndCmd func(ctx context.Context, cmdCtx CmdContext) map[NodeID][]FragmentAccess + OnEndSubCmd func(ctx context.Context, cmdCtx CmdContext) + OnReadFrag func(ctx context.Context, cmdCtx CmdContext, owner api.RefObject, f api.Fragment, ...) + OnWriteFrag func(ctx context.Context, cmdCtx CmdContext, owner api.RefObject, f api.Fragment, ...) + type FragmentAccess struct + Deps []NodeID + Fragment api.Fragment + Mode AccessMode + Node NodeID + Ref api.RefID + type FragmentEffect interface + GetFragment func() api.Fragment + type GraphBuilder interface + AddDependencies func(context.Context, map[NodeID][]FragmentAccess, map[NodeID][]MemoryAccess, ...) + BuildReverseDependencies func() + GetCmdContext func(context.Context, api.CmdID, api.Cmd) CmdContext + GetCmdNodeID func(api.CmdID, api.SubCmdIdx) NodeID + GetGraph func() *dependencyGraph + GetNodeStats func(NodeID) *NodeStats + GetObsNodeIDs func(api.CmdID, []api.CmdObservation, bool) []NodeID + GetOrCreateCmdNodeID func(context.Context, api.CmdID, api.SubCmdIdx, api.Cmd) NodeID + GetStats func() *GraphBuilderStats + GetSubCmdContext func(api.CmdID, api.SubCmdIdx) CmdContext + OnBeginCmd func(ctx context.Context, cmdCtx CmdContext) + OnBeginSubCmd func(ctx context.Context, cmdCtx CmdContext, subCmdCtx CmdContext, ...) + OnRecordSubCmd func(ctx context.Context, cmdCtx CmdContext, recordIdx api.RecordIdx) + type GraphBuilderStats struct + DepDist Distribution + NumCmdNodes uint64 + NumCompleteFragDeps uint64 + NumDeps uint64 + NumFragDeps uint64 + NumMemDeps uint64 + NumObsNodes uint64 + UniqueDeps uint64 + UniqueFragReads uint64 + UniqueFragWrites uint64 + UniqueMemReads uint64 + UniqueMemWrites uint64 + type MemWatcher interface + OnBeginCmd func(ctx context.Context, cmdCtx CmdContext) + OnBeginSubCmd func(ctx context.Context, cmdCtx CmdContext, subCmdCtx CmdContext) + OnEndCmd func(ctx context.Context, cmdCtx CmdContext) map[NodeID][]MemoryAccess + OnEndSubCmd func(ctx context.Context, cmdCtx CmdContext) + OnReadObs func(ctx context.Context, cmdCtx CmdContext, obs []api.CmdObservation, ...) + OnReadSlice func(ctx context.Context, cmdCtx CmdContext, s memory.Slice) + OnWriteObs func(ctx context.Context, cmdCtx CmdContext, obs []api.CmdObservation, ...) + OnWriteSlice func(ctx context.Context, cmdCtx CmdContext, s memory.Slice) + type MemoryAccess struct + Deps []NodeID + Mode AccessMode + Node NodeID + Pool memory.PoolID + Span interval.U64Span + type Node interface + type NodeAccesses struct + ForwardAccesses []ForwardAccess + FragmentAccesses []FragmentAccess + InitCmdNodes []NodeID + MemoryAccesses []MemoryAccess + ParentNode NodeID + type NodeID uint32 + type NodeIDSorter struct + Nodes []NodeID + func (s *NodeIDSorter) Len() int + func (s *NodeIDSorter) Less(i, j int) bool + func (s *NodeIDSorter) Swap(i, j int) + type NodeStats struct + NumCompleteFragDeps uint64 + NumDeps uint64 + NumForwardDepCloses uint64 + NumForwardDepDrops uint64 + NumForwardDepOpens uint64 + NumFragDeps uint64 + NumFragReads uint64 + NumFragWrites uint64 + NumMemDeps uint64 + NumMemReads uint64 + NumMemWrites uint64 + UniqueDeps uint64 + UniqueFragReads uint64 + UniqueFragWrites uint64 + UniqueMemReads uint64 + UniqueMemWrites uint64 + type ObsNode struct + CmdID api.CmdID + CmdObservation api.CmdObservation + Index int + IsWrite bool + type OpenForwardDependencyEffect struct + DependencyID interface{} + NodeID NodeID + func (e OpenForwardDependencyEffect) GetNodeID() NodeID + type ReadEffect interface + type ReadFragmentEffect struct + Fragment api.Fragment + NodeID NodeID + func (e ReadFragmentEffect) GetFragment() api.Fragment + func (e ReadFragmentEffect) GetNodeID() NodeID + type ReadMemEffect struct + NodeID NodeID + Slice memory.Slice + func (e ReadMemEffect) GetNodeID() NodeID + type RecordNodeTrie struct + func (t *RecordNodeTrie) GetRecordNode(recordIdx api.RecordIdx) NodeID + func (t *RecordNodeTrie) SetRecordNode(recordIdx api.RecordIdx, nodeID NodeID) + type RefFrag struct + Frag api.Fragment + RefID api.RefID + type ReverseEffect interface + type WriteEffect interface + type WriteFragmentEffect struct + Fragment api.Fragment + NodeID NodeID + func (e WriteFragmentEffect) GetFragment() api.Fragment + func (e WriteFragmentEffect) GetNodeID() NodeID + type WriteMemEffect struct + NodeID NodeID + Slice memory.Slice + func (e WriteMemEffect) GetNodeID() NodeID Incompatible versions in this module v2.0.0+incompatible Jul 8, 2021