QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
GstHwPathTelemetry Namespace Reference

Classes

class  ScopedMapTimer
 RAII timer: records mapTextures() wall time into the path's EWMA on scope exit. More...
 

Enumerations

enum class  HwFallbackReason {
  None , NoExt , ModifierRejected , EglBadMatch ,
  FenceTimeout , ValidateFailed , UnknownMemType , NullSample ,
  MapFailed , VulkanNoSync , ImportUnsupported , _Count
}
 Specific cause a HW path was rejected for a sample; surfaced as a per-(path,reason) breakdown. More...
 

Functions

void recordMapFailure (HwVideoBufferPath path) noexcept
 mapTextures() returned an invalid bundle (GPU import failed).
 
quint64 takeMapFailureCount (HwVideoBufferPath path) noexcept
 
quint64 peekMapFailureCount (HwVideoBufferPath path) noexcept
 
void recordTextureReuse (HwVideoBufferPath path) noexcept
 Prior frame's QRhiTexture wrappers reused (decoder pool returned same native handle).
 
quint64 takeTextureReuseHits (HwVideoBufferPath path) noexcept
 
void recordSyncWait (HwVideoBufferPath path, bool gpuSide) noexcept
 GL fence sync wait; split CPU-blocking vs GPU-side.
 
quint64 takeSyncWaitCounts (HwVideoBufferPath path, quint64 &gpuWaits) noexcept
 Reads-and-resets CPU waits; writes GPU waits into gpuWaits.
 
void recordImageCacheHit (HwVideoBufferPath path) noexcept
 Native image/texture cache hit/miss accounting.
 
void recordImageCacheMiss (HwVideoBufferPath path) noexcept
 
quint64 takeImageCacheHits (HwVideoBufferPath path) noexcept
 
quint64 takeImageCacheMisses (HwVideoBufferPath path) noexcept
 
void recordDelivered (HwVideoBufferPath path) noexcept
 Frames successfully delivered via this path.
 
quint64 peekDeliveredCount (HwVideoBufferPath path) noexcept
 
quint64 takeDeliveredCount (HwVideoBufferPath path) noexcept
 
void recordMapDuration (HwVideoBufferPath path, qint64 nsecs) noexcept
 Per-path mapTextures() wall-time, fed into an EWMA; peek returns the smoothed value in microseconds.
 
quint64 peekMapDurationUsEwma (HwVideoBufferPath path) noexcept
 
void recordFenceTimeout (HwVideoBufferPath path) noexcept
 DMABuf EGL fence wait timed out (GPU stall) and fell through to the mmap barrier.
 
quint64 peekFenceTimeouts (HwVideoBufferPath path) noexcept
 
quint64 takeFenceTimeouts (HwVideoBufferPath path) noexcept
 
void recordMmapBarrierHit (HwVideoBufferPath path) noexcept
 DMABuf mmap CPU-side completion barrier taken (no usable fence ext).
 
quint64 peekMmapBarrierHits (HwVideoBufferPath path) noexcept
 
quint64 takeMmapBarrierHits (HwVideoBufferPath path) noexcept
 
void recordExplicitFenceWait (HwVideoBufferPath path) noexcept
 DMABuf imported the producer's dma-buf/native fence and did a GPU-side wait (skipped the mmap barrier).
 
quint64 takeExplicitFenceWaits (HwVideoBufferPath path) noexcept
 
void recordFallbackReason (HwVideoBufferPath attemptedPath, HwFallbackReason reason) noexcept
 Per-(path,reason) fallback accounting; lets a bug report show why a path demoted to CPU.
 
quint64 peekFallbackReason (HwVideoBufferPath attemptedPath, HwFallbackReason reason) noexcept
 
quint64 takeFallbackReason (HwVideoBufferPath attemptedPath, HwFallbackReason reason) noexcept
 
void recordStreamDemotion (HwVideoBufferPath negotiated) noexcept
 One-shot-per-epoch event: a stream that negotiated a HW path demoted to CPU. Distinct from per-frame CPU counts.
 
quint64 takeStreamDemotions (HwVideoBufferPath negotiated) noexcept
 

Detailed Description

Per-path telemetry counters (map failures, reuse hits, sync waits) keyed by HwVideoBufferPath; atomics, thread-safe.

Enumeration Type Documentation

◆ HwFallbackReason

Specific cause a HW path was rejected for a sample; surfaced as a per-(path,reason) breakdown.

Enumerator
None 
NoExt 
ModifierRejected 
EglBadMatch 
FenceTimeout 
ValidateFailed 
UnknownMemType 
NullSample 
MapFailed 
VulkanNoSync 
ImportUnsupported 
_Count 

Definition at line 17 of file GstHwPathTelemetry.h.

Function Documentation

◆ peekDeliveredCount()

quint64 GstHwPathTelemetry::peekDeliveredCount ( HwVideoBufferPath  path)
noexcept

Definition at line 110 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::formatPathStats().

◆ peekFallbackReason()

quint64 GstHwPathTelemetry::peekFallbackReason ( HwVideoBufferPath  attemptedPath,
HwFallbackReason  reason 
)
noexcept

Definition at line 185 of file GstHwPathTelemetry.cc.

◆ peekFenceTimeouts()

quint64 GstHwPathTelemetry::peekFenceTimeouts ( HwVideoBufferPath  path)
noexcept

Definition at line 145 of file GstHwPathTelemetry.cc.

◆ peekMapDurationUsEwma()

quint64 GstHwPathTelemetry::peekMapDurationUsEwma ( HwVideoBufferPath  path)
noexcept

Definition at line 135 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::takeExtraPathStats().

◆ peekMapFailureCount()

quint64 GstHwPathTelemetry::peekMapFailureCount ( HwVideoBufferPath  path)
noexcept

Definition at line 50 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::formatPathStats().

◆ peekMmapBarrierHits()

quint64 GstHwPathTelemetry::peekMmapBarrierHits ( HwVideoBufferPath  path)
noexcept

Definition at line 160 of file GstHwPathTelemetry.cc.

◆ recordDelivered()

void GstHwPathTelemetry::recordDelivered ( HwVideoBufferPath  path)
noexcept

Frames successfully delivered via this path.

Definition at line 105 of file GstHwPathTelemetry.cc.

Referenced by gst_qgc_q_video_sink_show_frame().

◆ recordExplicitFenceWait()

void GstHwPathTelemetry::recordExplicitFenceWait ( HwVideoBufferPath  path)
noexcept

DMABuf imported the producer's dma-buf/native fence and did a GPU-side wait (skipped the mmap barrier).

Definition at line 170 of file GstHwPathTelemetry.cc.

◆ recordFallbackReason()

void GstHwPathTelemetry::recordFallbackReason ( HwVideoBufferPath  attemptedPath,
HwFallbackReason  reason 
)
noexcept

Per-(path,reason) fallback accounting; lets a bug report show why a path demoted to CPU.

Definition at line 180 of file GstHwPathTelemetry.cc.

Referenced by makeHwVideoBuffer().

◆ recordFenceTimeout()

void GstHwPathTelemetry::recordFenceTimeout ( HwVideoBufferPath  path)
noexcept

DMABuf EGL fence wait timed out (GPU stall) and fell through to the mmap barrier.

Definition at line 140 of file GstHwPathTelemetry.cc.

◆ recordImageCacheHit()

void GstHwPathTelemetry::recordImageCacheHit ( HwVideoBufferPath  path)
noexcept

Native image/texture cache hit/miss accounting.

Definition at line 77 of file GstHwPathTelemetry.cc.

◆ recordImageCacheMiss()

void GstHwPathTelemetry::recordImageCacheMiss ( HwVideoBufferPath  path)
noexcept

Definition at line 82 of file GstHwPathTelemetry.cc.

◆ recordMapDuration()

void GstHwPathTelemetry::recordMapDuration ( HwVideoBufferPath  path,
qint64  nsecs 
)
noexcept

Per-path mapTextures() wall-time, fed into an EWMA; peek returns the smoothed value in microseconds.

Definition at line 120 of file GstHwPathTelemetry.cc.

Referenced by GstHwPathTelemetry::ScopedMapTimer::~ScopedMapTimer().

◆ recordMapFailure()

void GstHwPathTelemetry::recordMapFailure ( HwVideoBufferPath  path)
noexcept

mapTextures() returned an invalid bundle (GPU import failed).

Definition at line 40 of file GstHwPathTelemetry.cc.

◆ recordMmapBarrierHit()

void GstHwPathTelemetry::recordMmapBarrierHit ( HwVideoBufferPath  path)
noexcept

DMABuf mmap CPU-side completion barrier taken (no usable fence ext).

Definition at line 155 of file GstHwPathTelemetry.cc.

◆ recordStreamDemotion()

void GstHwPathTelemetry::recordStreamDemotion ( HwVideoBufferPath  negotiated)
noexcept

One-shot-per-epoch event: a stream that negotiated a HW path demoted to CPU. Distinct from per-frame CPU counts.

Definition at line 195 of file GstHwPathTelemetry.cc.

Referenced by gst_qgc_q_video_sink_show_frame().

◆ recordSyncWait()

void GstHwPathTelemetry::recordSyncWait ( HwVideoBufferPath  path,
bool  gpuSide 
)
noexcept

GL fence sync wait; split CPU-blocking vs GPU-side.

Definition at line 65 of file GstHwPathTelemetry.cc.

◆ recordTextureReuse()

void GstHwPathTelemetry::recordTextureReuse ( HwVideoBufferPath  path)
noexcept

Prior frame's QRhiTexture wrappers reused (decoder pool returned same native handle).

Definition at line 55 of file GstHwPathTelemetry.cc.

◆ takeDeliveredCount()

quint64 GstHwPathTelemetry::takeDeliveredCount ( HwVideoBufferPath  path)
noexcept

Definition at line 115 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::formatPathStats().

◆ takeExplicitFenceWaits()

quint64 GstHwPathTelemetry::takeExplicitFenceWaits ( HwVideoBufferPath  path)
noexcept

Definition at line 175 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::takeExtraPathStats().

◆ takeFallbackReason()

quint64 GstHwPathTelemetry::takeFallbackReason ( HwVideoBufferPath  attemptedPath,
HwFallbackReason  reason 
)
noexcept

Definition at line 190 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::takeExtraPathStats().

◆ takeFenceTimeouts()

quint64 GstHwPathTelemetry::takeFenceTimeouts ( HwVideoBufferPath  path)
noexcept

Definition at line 150 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::takeExtraPathStats().

◆ takeImageCacheHits()

quint64 GstHwPathTelemetry::takeImageCacheHits ( HwVideoBufferPath  path)
noexcept

Definition at line 87 of file GstHwPathTelemetry.cc.

◆ takeImageCacheMisses()

quint64 GstHwPathTelemetry::takeImageCacheMisses ( HwVideoBufferPath  path)
noexcept

Definition at line 92 of file GstHwPathTelemetry.cc.

◆ takeMapFailureCount()

quint64 GstHwPathTelemetry::takeMapFailureCount ( HwVideoBufferPath  path)
noexcept

Definition at line 45 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::formatPathStats().

◆ takeMmapBarrierHits()

quint64 GstHwPathTelemetry::takeMmapBarrierHits ( HwVideoBufferPath  path)
noexcept

Definition at line 165 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::takeExtraPathStats().

◆ takeStreamDemotions()

quint64 GstHwPathTelemetry::takeStreamDemotions ( HwVideoBufferPath  negotiated)
noexcept

Definition at line 200 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::takeExtraPathStats().

◆ takeSyncWaitCounts()

quint64 GstHwPathTelemetry::takeSyncWaitCounts ( HwVideoBufferPath  path,
quint64 &  gpuWaits 
)
noexcept

Reads-and-resets CPU waits; writes GPU waits into gpuWaits.

Definition at line 71 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::takeExtraPathStats().

◆ takeTextureReuseHits()

quint64 GstHwPathTelemetry::takeTextureReuseHits ( HwVideoBufferPath  path)
noexcept

Definition at line 60 of file GstHwPathTelemetry.cc.

Referenced by HwBuffers::takeExtraPathStats().