Skip to content

Commit bc8b783

Browse files
committed
ExtendedTools: Fix crash (thanks to JustMagic for debugging) also remove unused lost fps events
1 parent 15436cf commit bc8b783

File tree

5 files changed

+22
-23
lines changed

5 files changed

+22
-23
lines changed

plugins/ExtendedTools/PresentMon/PresentMon.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,11 @@ static void PruneHistory(
165165

166166
static void ProcessEvents(
167167
std::vector<std::shared_ptr<PresentEvent>>* presentEvents,
168-
std::vector<std::shared_ptr<PresentEvent>>* lostPresentEvents,
168+
//std::vector<std::shared_ptr<PresentEvent>>* lostPresentEvents,
169169
std::vector<std::pair<ULONG, ULONGLONG>>* terminatedProcesses)
170170
{
171171
// Copy any analyzed information from ConsumerThread and early-out if there isn't any.
172-
DequeueAnalyzedInfo(presentEvents, lostPresentEvents);
172+
DequeueAnalyzedInfo(presentEvents); // lostPresentEvents
173173

174174
if (presentEvents->empty())
175175
{
@@ -231,7 +231,7 @@ static void ProcessEvents(
231231

232232
// Clear events processed.
233233
presentEvents->clear();
234-
lostPresentEvents->clear();
234+
//lostPresentEvents->clear();
235235

236236
if (terminatedProcessIndex > 0)
237237
{
@@ -366,7 +366,7 @@ NTSTATUS PresentMonOutputThread(
366366
)
367367
{
368368
std::vector<std::shared_ptr<PresentEvent>> presentEvents;
369-
std::vector<std::shared_ptr<PresentEvent>> lostPresentEvents;
369+
//std::vector<std::shared_ptr<PresentEvent>> lostPresentEvents;
370370
std::vector<std::pair<ULONG, ULONGLONG>> terminatedProcesses;
371371
presentEvents.reserve(4096);
372372
terminatedProcesses.reserve(16);
@@ -377,7 +377,7 @@ NTSTATUS PresentMonOutputThread(
377377
break;
378378

379379
// Copy and process all the collected events, and update the various tracking and statistics data structures.
380-
ProcessEvents(&presentEvents, &lostPresentEvents, &terminatedProcesses);
380+
ProcessEvents(&presentEvents, &terminatedProcesses); // lostPresentEvents
381381

382382
EtLockGpuFrameHashTable();
383383
EtClearGpuFrameHashTable();

plugins/ExtendedTools/PresentMon/PresentMon.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ VOID StartOutputThread(VOID);
5656
VOID StopOutputThread(VOID);
5757

5858
// TraceSession.cpp:
59-
VOID DequeueAnalyzedInfo(std::vector<std::shared_ptr<PresentEvent>>* presentEvents, std::vector<std::shared_ptr<PresentEvent>>* lostPresentEvents);
59+
VOID DequeueAnalyzedInfo(std::vector<std::shared_ptr<PresentEvent>>* presentEvents); // std::vector<std::shared_ptr<PresentEvent>>* lostPresentEvents
6060
DOUBLE QpcDeltaToSeconds(_In_ ULONGLONG qpcDelta);
6161
ULONGLONG SecondsDeltaToQpc(_In_ DOUBLE secondsDelta);
6262
DOUBLE QpcToSeconds(_In_ ULONGLONG qpc);

plugins/ExtendedTools/PresentMon/PresentMonTraceConsumer.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ bool mSeenDxgkPresentInfo = false;
150150
PH_FAST_LOCK mPresentEventMutex = PH_FAST_LOCK_INIT;
151151
std::vector<std::shared_ptr<PresentEvent>> mCompletePresentEvents;
152152

153-
PH_FAST_LOCK mLostPresentEventMutex = PH_FAST_LOCK_INIT;
154-
std::vector<std::shared_ptr<PresentEvent>> mLostPresentEvents;
153+
//PH_FAST_LOCK mLostPresentEventMutex = PH_FAST_LOCK_INIT;
154+
//std::vector<std::shared_ptr<PresentEvent>> mLostPresentEvents;
155155

156156
VOID CompletePresent(std::shared_ptr<PresentEvent> p);
157157
std::shared_ptr<PresentEvent> FindBySubmitSequence(uint32_t submitSequence);
@@ -1614,11 +1614,11 @@ void RemoveLostPresent(std::shared_ptr<PresentEvent> p)
16141614
assert(hasRemovedElement);
16151615

16161616
// Update the list of lost presents.
1617-
{
1618-
PhAcquireFastLockExclusive(&mPresentEventMutex);
1619-
mLostPresentEvents.push_back(mAllPresents[p->mAllPresentsTrackingIndex]);
1620-
PhReleaseFastLockExclusive(&mPresentEventMutex);
1621-
}
1617+
//{
1618+
// PhAcquireFastLockExclusive(&mLostPresentEventMutex);
1619+
// mLostPresentEvents.push_back(mAllPresents[p->mAllPresentsTrackingIndex]);
1620+
// PhReleaseFastLockExclusive(&mLostPresentEventMutex);
1621+
//}
16221622

16231623
mAllPresents[p->mAllPresentsTrackingIndex] = nullptr;
16241624
}
@@ -1850,9 +1850,9 @@ void DequeuePresentEvents(std::vector<std::shared_ptr<PresentEvent>>& outPresent
18501850
PhReleaseFastLockExclusive(&mPresentEventMutex);
18511851
}
18521852

1853-
void DequeueLostPresentEvents(std::vector<std::shared_ptr<PresentEvent>>& outPresentEvents)
1854-
{
1855-
PhAcquireFastLockExclusive(&mLostPresentEventMutex);
1856-
outPresentEvents.swap(mLostPresentEvents);
1857-
PhReleaseFastLockExclusive(&mLostPresentEventMutex);
1858-
}
1853+
//void DequeueLostPresentEvents(std::vector<std::shared_ptr<PresentEvent>>& outPresentEvents)
1854+
//{
1855+
// PhAcquireFastLockExclusive(&mLostPresentEventMutex);
1856+
// outPresentEvents.swap(mLostPresentEvents);
1857+
// PhReleaseFastLockExclusive(&mLostPresentEventMutex);
1858+
//}

plugins/ExtendedTools/PresentMon/PresentMonTraceConsumer.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,4 +178,4 @@ void HandleWin7DxgkVSyncDPC(EVENT_RECORD* pEventRecord);
178178
void HandleWin7DxgkMMIOFlip(EVENT_RECORD* pEventRecord);
179179

180180
void DequeuePresentEvents(std::vector<std::shared_ptr<PresentEvent>>& outPresentEvents);
181-
void DequeueLostPresentEvents(std::vector<std::shared_ptr<PresentEvent>>& outPresentEvents);
181+
//void DequeueLostPresentEvents(std::vector<std::shared_ptr<PresentEvent>>& outPresentEvents);

plugins/ExtendedTools/PresentMon/TraceSession.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -348,12 +348,11 @@ VOID StopFpsTraceSession(
348348
}
349349

350350
VOID DequeueAnalyzedInfo(
351-
std::vector<std::shared_ptr<PresentEvent>>* presentEvents,
352-
std::vector<std::shared_ptr<PresentEvent>>* lostPresentEvents
351+
std::vector<std::shared_ptr<PresentEvent>>* presentEvents
353352
)
354353
{
355354
DequeuePresentEvents(*presentEvents);
356-
DequeueLostPresentEvents(*lostPresentEvents);
355+
//DequeueLostPresentEvents(*lostPresentEvents);
357356
}
358357

359358
DOUBLE QpcDeltaToSeconds(

0 commit comments

Comments
 (0)