uint32_t vertsInput;
};
+ struct RastStats
+ {
+ uint32_t rasterTiles = 0;
+ };
+
//////////////////////////////////////////////////////////////////////////
/// @brief Event handler that saves stat events to event files. This
/// handler filters out unwanted events.
EventHandlerFile::Handle(EarlyZNullPS(drawId, mDSNullPS.earlyZTestPassCount, mDSNullPS.earlyZTestFailCount));
EventHandlerFile::Handle(EarlyStencilNullPS(drawId, mDSNullPS.earlyStencilTestPassCount, mDSNullPS.earlyStencilTestFailCount));
+ // Rasterized Subspans
+ EventHandlerFile::Handle(RasterTiles(drawId, rastStats.rasterTiles));
+
//Reset Internal Counters
mDSSingleSample = {};
mDSSampleRate = {};
mDSPixelRate = {};
mDSNullPS = {};
+ rastStats = {};
mNeedFlush = false;
}
mTS.inputPrims += event.data.primCount;
}
+ virtual void Handle(const RasterTileCount& event)
+ {
+ rastStats.rasterTiles += event.data.rasterTiles;
+ }
+
protected:
bool mNeedFlush;
// Per draw stats
CStats mClipper = {};
TEStats mTS = {};
GSStats mGS = {};
+ RastStats rastStats = {};
};
UnrollerL<1, RT::MT::numSamples, 1>::step(copyCoverage);
}
+ // Track rasterized subspans
+ AR_EVENT(RasterTileCount(pDC->drawId, 1));
+
RDTSC_BEGIN(BEPixelBackend, pDC->drawId);
backendFuncs.pfnBackend(pDC, workerId, tileX << KNOB_TILE_X_DIM_SHIFT, tileY << KNOB_TILE_Y_DIM_SHIFT, triDesc, renderBuffers);
RDTSC_END(BEPixelBackend, 0);