1# Copyright (C) 2016 Intel Corporation. All Rights Reserved. 2# 3# Permission is hereby granted, free of charge, to any person obtaining a 4# copy of this software and associated documentation files (the "Software"), 5# to deal in the Software without restriction, including without limitation 6# the rights to use, copy, modify, merge, publish, distribute, sublicense, 7# and/or sell copies of the Software, and to permit persons to whom the 8# Software is furnished to do so, subject to the following conditions: 9# 10# The above copyright notice and this permission notice (including the next 11# paragraph) shall be included in all copies or substantial portions of the 12# Software. 13# 14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 20# IN THE SOFTWARE. 21# 22# Provides definitions for events. 23 24enum GroupType 25{ 26 APIClearRenderTarget, 27 APIDraw, 28 APIDrawWakeAllThreads, 29 APIDrawIndexed, 30 APIDispatch, 31 APIStoreTiles, 32 APIGetDrawContext, 33 APISync, 34 APIWaitForIdle, 35 FEProcessDraw, 36 FEProcessDrawIndexed, 37 FEFetchShader, 38 FEVertexShader, 39 FEHullShader, 40 FETessellation, 41 FEDomainShader, 42 FEGeometryShader, 43 FEStreamout, 44 FEPAAssemble, 45 FEBinPoints, 46 FEBinLines, 47 FEBinTriangles, 48 FETriangleSetup, 49 FEViewportCull, 50 FEGuardbandClip, 51 FEClipPoints, 52 FEClipLines, 53 FEClipTriangles, 54 FECullZeroAreaAndBackface, 55 FECullBetweenCenters, 56 FEProcessStoreTiles, 57 FEProcessInvalidateTiles, 58 WorkerWorkOnFifoBE, 59 WorkerFoundWork, 60 BELoadTiles, 61 BEDispatch, 62 BEClear, 63 BERasterizeLine, 64 BERasterizeTriangle, 65 BETriangleSetup, 66 BEStepSetup, 67 BECullZeroArea, 68 BEEmptyTriangle, 69 BETrivialAccept, 70 BETrivialReject, 71 BERasterizePartial, 72 BEPixelBackend, 73 BESetup, 74 BEBarycentric, 75 BEEarlyDepthTest, 76 BEPixelShader, 77 BESingleSampleBackend, 78 BEPixelRateBackend, 79 BESampleRateBackend, 80 BENullBackend, 81 BELateDepthTest, 82 BEOutputMerger, 83 BEStoreTiles, 84 BEEndTile, 85 WorkerWaitForThreadEvent, 86}; 87 88event Start 89{ 90 GroupType type; 91 uint32_t id; 92}; 93 94event End 95{ 96 GroupType type; 97 uint32_t count; 98}; 99 100event ThreadStartApiEvent 101{ 102}; 103 104event ThreadStartWorkerEvent 105{ 106}; 107 108event DrawInstancedEvent 109{ 110 uint32_t drawId; 111 uint32_t topology; 112 uint32_t numVertices; 113 int32_t startVertex; 114 uint32_t numInstances; 115 uint32_t startInstance; 116}; 117 118event DrawIndexedInstancedEvent 119{ 120 uint32_t drawId; 121 uint32_t topology; 122 uint32_t numIndices; 123 int32_t indexOffset; 124 int32_t baseVertex; 125 uint32_t numInstances; 126 uint32_t startInstance; 127}; 128 129event DispatchEvent 130{ 131 uint32_t drawId; 132 uint32_t threadGroupCountX; 133 uint32_t threadGroupCountY; 134 uint32_t threadGroupCountZ; 135}; 136 137event FrameEndEvent 138{ 139 uint32_t frameId; 140 uint32_t nextDrawId; 141}; 142 143event FrontendStatsEvent 144{ 145 uint32_t drawId; 146 uint64_t IaVertices; 147 uint64_t IaPrimitives; 148 uint64_t VsInvocations; 149 uint64_t HsInvocations; 150 uint64_t DsInvocations; 151 uint64_t GsInvocations; 152 uint64_t GsPrimitives; 153 uint64_t CInvocations; 154 uint64_t CPrimitives; 155 uint64_t SoPrimStorageNeeded0; 156 uint64_t SoPrimStorageNeeded1; 157 uint64_t SoPrimStorageNeeded2; 158 uint64_t SoPrimStorageNeeded3; 159 uint64_t SoNumPrimsWritten0; 160 uint64_t SoNumPrimsWritten1; 161 uint64_t SoNumPrimsWritten2; 162 uint64_t SoNumPrimsWritten3; 163}; 164 165event BackendStatsEvent 166{ 167 uint32_t drawId; 168 uint64_t DepthPassCount; 169 uint64_t PsInvocations; 170 uint64_t CsInvocations; 171 172}; 173 174event EarlyDepthStencilInfoSingleSample 175{ 176 uint64_t depthPassMask; 177 uint64_t stencilPassMask; 178 uint64_t coverageMask; 179}; 180 181event EarlyDepthStencilInfoSampleRate 182{ 183 uint64_t depthPassMask; 184 uint64_t stencilPassMask; 185 uint64_t coverageMask; 186}; 187 188event EarlyDepthStencilInfoNullPS 189{ 190 uint64_t depthPassMask; 191 uint64_t stencilPassMask; 192 uint64_t coverageMask; 193}; 194 195event LateDepthStencilInfoSingleSample 196{ 197 uint64_t depthPassMask; 198 uint64_t stencilPassMask; 199 uint64_t coverageMask; 200}; 201 202event LateDepthStencilInfoSampleRate 203{ 204 uint64_t depthPassMask; 205 uint64_t stencilPassMask; 206 uint64_t coverageMask; 207}; 208 209event LateDepthStencilInfoNullPS 210{ 211 uint64_t depthPassMask; 212 uint64_t stencilPassMask; 213 uint64_t coverageMask; 214}; 215 216event EarlyDepthInfoPixelRate 217{ 218 uint64_t depthPassCount; 219 uint64_t activeLanes; 220}; 221 222 223event LateDepthInfoPixelRate 224{ 225 uint64_t depthPassCount; 226 uint64_t activeLanes; 227}; 228 229 230event BackendDrawEndEvent 231{ 232 uint32_t drawId; 233}; 234 235event FrontendDrawEndEvent 236{ 237 uint32_t drawId; 238}; 239 240event EarlyZSingleSample 241{ 242 uint32_t drawId; 243 uint64_t passCount; 244 uint64_t failCount; 245 uint64_t testCount; 246}; 247 248event LateZSingleSample 249{ 250 uint32_t drawId; 251 uint64_t passCount; 252 uint64_t failCount; 253 uint64_t testCount; 254}; 255 256event EarlyStencilSingleSample 257{ 258 uint32_t drawId; 259 uint64_t passCount; 260 uint64_t failCount; 261 uint64_t testCount; 262}; 263 264event LateStencilSingleSample 265{ 266 uint32_t drawId; 267 uint64_t passCount; 268 uint64_t failCount; 269 uint64_t testCount; 270}; 271 272event EarlyZSampleRate 273{ 274 uint32_t drawId; 275 uint64_t passCount; 276 uint64_t failCount; 277 uint64_t testCount; 278}; 279 280event LateZSampleRate 281{ 282 uint32_t drawId; 283 uint64_t passCount; 284 uint64_t failCount; 285 uint64_t testCount; 286}; 287 288event EarlyStencilSampleRate 289{ 290 uint32_t drawId; 291 uint64_t passCount; 292 uint64_t failCount; 293 uint64_t testCount; 294}; 295 296event LateStencilSampleRate 297{ 298 uint32_t drawId; 299 uint64_t passCount; 300 uint64_t failCount; 301 uint64_t testCount; 302}; 303 304event EarlyZNullPS 305{ 306 uint32_t drawId; 307 uint64_t passCount; 308 uint64_t failCount; 309 uint64_t testCount; 310}; 311 312event EarlyStencilNullPS 313{ 314 uint32_t drawId; 315 uint64_t passCount; 316 uint64_t failCount; 317 uint64_t testCount; 318}; 319 320event EarlyZPixelRate 321{ 322 uint32_t drawId; 323 uint64_t passCount; 324 uint64_t failCount; 325 uint64_t testCount; 326}; 327 328event LateZPixelRate 329{ 330 uint32_t drawId; 331 uint64_t passCount; 332 uint64_t failCount; 333 uint64_t testCount; 334}; 335 336 337event EarlyOmZ 338{ 339 uint32_t drawId; 340 uint64_t passCount; 341 uint64_t failCount; 342 uint64_t testCount; 343}; 344 345event EarlyOmStencil 346{ 347 uint32_t drawId; 348 uint64_t passCount; 349 uint64_t failCount; 350 uint64_t testCount; 351}; 352 353event LateOmZ 354{ 355 uint32_t drawId; 356 uint64_t passCount; 357 uint64_t failCount; 358 uint64_t testCount; 359}; 360 361event LateOmStencil 362{ 363 uint32_t drawId; 364 uint64_t passCount; 365 uint64_t failCount; 366 uint64_t testCount; 367}; 368 369event GSPrimInfo 370{ 371 uint64_t inputPrimCount; 372 uint64_t primGeneratedCount; 373 uint64_t vertsInput; 374}; 375 376event GSInputPrims 377{ 378 uint32_t drawId; 379 uint64_t inputPrimCount; 380}; 381 382event GSPrimsGen 383{ 384 uint32_t drawId; 385 uint64_t primGeneratedCount; 386}; 387 388event GSVertsInput 389{ 390 uint32_t drawId; 391 uint64_t vertsInput; 392}; 393 394event ClipVertexCount 395{ 396 uint64_t vertsPerPrim; 397 uint64_t primMask; 398}; 399 400//REMOVE AND REPLACE 401event FlushVertClip 402{ 403 uint32_t drawId; 404}; 405 406event VertsClipped 407{ 408 uint32_t drawId; 409 uint64_t clipCount; 410}; 411 412event TessPrimCount 413{ 414 uint64_t primCount; 415}; 416 417//REMOVE AND REPLACE 418event TessPrimFlush 419{ 420 uint32_t drawId; 421}; 422 423event TessPrims 424{ 425 uint32_t drawId; 426 uint64_t primCount; 427};