Ejemplo n.º 1
0
        void OnDxgkrnlDmaPacketStop(TraceEvent obj)
        {
            Debug.Assert(obj.EventName == "DmaPacket/Stop");

            Debug.Assert(obj.PayloadNames[0] == "hContext");
            ulong hContext = (ulong)obj.PayloadValue(0);

            Debug.Assert(obj.PayloadNames[1] == "PacketType");
            int packetType = (int)obj.PayloadValue(1);

            Debug.Assert(obj.PayloadNames[2] == "uliCompletionId");
            long submissionId = (long)obj.PayloadValue(2);

            Debug.Assert(obj.PayloadNames[3] == "ulQueueSubmitSequence");
            int queueSubmitSequence = (int)obj.PayloadValue(3);

            ContextInfo context = FindOrCreateContext(hContext);

            DmaPacket packet = null;

            if (!context.DmaLookup.ContainsKey(submissionId))
            {
                // End packet for something we don't about, drop it
                return;
            }

            packet     = context.DmaLookup[submissionId];
            packet.End = obj.TimeStamp;
        }
Ejemplo n.º 2
0
        void OnDxgkrnlDmaPacketStart(TraceEvent obj)
        {
            Debug.Assert(obj.EventName == "DmaPacket/Start" && obj.PayloadNames.Length == 7);

            Debug.Assert(obj.PayloadNames[0] == "hContext");
            ulong hContext = (ulong)obj.PayloadValue(0);

            Debug.Assert(obj.PayloadNames[2] == "PacketType");
            int packetType = (int)obj.PayloadValue(2);

            Debug.Assert(obj.PayloadNames[3] == "uliSubmissionId");
            long submissionId = (long)obj.PayloadValue(3);

            Debug.Assert(obj.PayloadNames[4] == "ulQueueSubmitSequence");
            int queueSubmitSequence = (int)obj.PayloadValue(4);

            ContextInfo context = FindOrCreateContext(hContext);

            DmaPacket packet = null;

            if (context.DmaLookup.ContainsKey(submissionId))
            {
                packet = context.DmaLookup[submissionId];
            }
            else
            {
                packet = new DmaPacket();
                packet.SubmissionId        = submissionId;
                packet.QueueSubmitSequence = queueSubmitSequence;
                packet.PacketType          = packetType;
                context.DmaPackets.Add(packet);
                context.DmaLookup.Add(submissionId, packet);
            }

            packet.Start = obj.TimeStamp;
        }
Ejemplo n.º 3
0
        void OnDxgkrnlDmaPacketStart(TraceEvent obj)
        {
            Debug.Assert(obj.EventName == "DmaPacket/Start" && obj.PayloadNames.Length == 7);

            Debug.Assert(obj.PayloadNames[0] == "hContext");
            ulong hContext = (ulong)obj.PayloadValue(0);

            Debug.Assert(obj.PayloadNames[2] == "PacketType");
            int packetType = (int)obj.PayloadValue(2);

            Debug.Assert(obj.PayloadNames[3] == "uliSubmissionId");
            long submissionId = (long)obj.PayloadValue(3);

            Debug.Assert(obj.PayloadNames[4] == "ulQueueSubmitSequence");
            int queueSubmitSequence = (int)obj.PayloadValue(4);

            ContextInfo context = FindOrCreateContext(hContext);

            DmaPacket packet = null;
            if (context.DmaLookup.ContainsKey(submissionId))
            {
                packet = context.DmaLookup[submissionId];
            }
            else
            {
                packet = new DmaPacket();
                packet.SubmissionId = submissionId;
                packet.QueueSubmitSequence = queueSubmitSequence;
                packet.PacketType = packetType;
                context.DmaPackets.Add(packet);
                context.DmaLookup.Add(submissionId, packet);
            }

            packet.Start = obj.TimeStamp;
        }