void OnDxgkrnlAdapterStart(TraceEvent obj) { Debug.Assert(obj.EventName == "Adapter/DC_Start" && obj.PayloadNames.Length == 27); Debug.Assert(obj.PayloadNames[1] == "pDxgAdapter"); ulong pDxgAdapter = (ulong)obj.PayloadValue(1); if (adapterLookup.ContainsKey(pDxgAdapter)) { Debug.Assert(false); return; } AdapterInfo adapter = new AdapterInfo(); AllAdapters.Add(adapter); adapterLookup.Add(pDxgAdapter, adapter); adapter.pDxgiAdapter = pDxgAdapter; Debug.Assert(obj.PayloadNames[2] == "NbVidPnSources"); adapter.NumVidPnSources = (int)obj.PayloadValue(2); Debug.Assert(obj.PayloadNames[22] == "PagingNode"); adapter.PagingNode = (int)obj.PayloadValue(22); Debug.Assert(obj.PayloadNames[25] == "AdapterType"); adapter.AdapterType = (AdapterType)(int)obj.PayloadValue(25); }
AdapterInfo FindOrCreateAdapter(ulong pDxgAdapter) { // Already seen this adapter? if (adapterLookup.ContainsKey(pDxgAdapter)) { return(adapterLookup[pDxgAdapter]); } else { AdapterInfo adapter = new AdapterInfo(); adapter.pDxgiAdapter = pDxgAdapter; AllAdapters.Add(adapter); adapterLookup.Add(pDxgAdapter, adapter); return(adapter); } }