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 AR_DRAW_TYPE 25{ 26 Instanced = 0, 27 IndexedInstanced = 1, 28 InstancedSplit = 2, 29 IndexedInstancedSplit = 3 30}; 31 32event ThreadStartApiEvent 33{ 34}; 35 36event ThreadStartWorkerEvent 37{ 38}; 39 40event DrawInfoEvent 41{ 42 uint32_t drawId; 43 AR_DRAW_TYPE type; 44 uint32_t topology; 45 uint32_t numVertices; 46 uint32_t numIndices; 47 int32_t indexOffset; 48 int32_t baseVertex; 49 uint32_t numInstances; 50 uint32_t startInstance; 51 uint32_t tsEnable; 52 uint32_t gsEnable; 53 uint32_t soEnable; 54 uint32_t soTopology; 55 uint32_t splitId; // Split draw count or id. 56}; 57 58event DispatchEvent 59{ 60 uint32_t drawId; 61 uint32_t threadGroupCountX; 62 uint32_t threadGroupCountY; 63 uint32_t threadGroupCountZ; 64}; 65 66event FrameEndEvent 67{ 68 uint32_t frameId; 69 uint32_t nextDrawId; 70}; 71 72///@brief API Stat: Synchonization event. 73event SwrSyncEvent 74{ 75 uint32_t drawId; 76}; 77 78///@brief API Stat: Invalidate hot tiles (i.e. tile cache) 79event SwrInvalidateTilesEvent 80{ 81 uint32_t drawId; 82}; 83 84///@brief API Stat: Invalidate and discard hot tiles within pixel region 85event SwrDiscardRectEvent 86{ 87 uint32_t drawId; 88}; 89 90///@brief API Stat: Flush tiles out to memory that is typically owned by driver (e.g. Flush RT cache) 91event SwrStoreTilesEvent 92{ 93 uint32_t drawId; 94}; 95 96event FrontendStatsEvent 97{ 98 uint32_t drawId; 99 uint64_t counter IaVertices; 100 uint64_t counter IaPrimitives; 101 uint64_t counter VsInvocations; 102 uint64_t counter HsInvocations; 103 uint64_t counter DsInvocations; 104 uint64_t counter GsInvocations; 105 uint64_t counter GsPrimitives; 106 uint64_t counter CInvocations; 107 uint64_t counter CPrimitives; 108 uint64_t counter SoPrimStorageNeeded0; 109 uint64_t counter SoPrimStorageNeeded1; 110 uint64_t counter SoPrimStorageNeeded2; 111 uint64_t counter SoPrimStorageNeeded3; 112 uint64_t counter SoNumPrimsWritten0; 113 uint64_t counter SoNumPrimsWritten1; 114 uint64_t counter SoNumPrimsWritten2; 115 uint64_t counter SoNumPrimsWritten3; 116}; 117 118event BackendStatsEvent 119{ 120 uint32_t drawId; 121 uint64_t counter DepthPassCount; 122 uint64_t counter PsInvocations; 123 uint64_t counter CsInvocations; 124 125}; 126 127event EarlyZSingleSample 128{ 129 uint32_t drawId; 130 uint64_t counter passCount; 131 uint64_t counter failCount; 132}; 133 134event LateZSingleSample 135{ 136 uint32_t drawId; 137 uint64_t counter passCount; 138 uint64_t counter failCount; 139}; 140 141event EarlyStencilSingleSample 142{ 143 uint32_t drawId; 144 uint64_t counter passCount; 145 uint64_t counter failCount; 146}; 147 148event LateStencilSingleSample 149{ 150 uint32_t drawId; 151 uint64_t counter passCount; 152 uint64_t counter failCount; 153}; 154 155event EarlyZSampleRate 156{ 157 uint32_t drawId; 158 uint64_t counter passCount; 159 uint64_t counter failCount; 160}; 161 162event LateZSampleRate 163{ 164 uint32_t drawId; 165 uint64_t counter passCount; 166 uint64_t counter failCount; 167}; 168 169event EarlyStencilSampleRate 170{ 171 uint32_t drawId; 172 uint64_t counter passCount; 173 uint64_t counter failCount; 174}; 175 176event LateStencilSampleRate 177{ 178 uint32_t drawId; 179 uint64_t counter passCount; 180 uint64_t counter failCount; 181}; 182 183// Total Early-Z counts, SingleSample and SampleRate 184event EarlyZ 185{ 186 uint32_t drawId; 187 uint64_t counter passCount; 188 uint64_t counter failCount; 189}; 190 191// Total LateZ counts, SingleSample and SampleRate 192event LateZ 193{ 194 uint32_t drawId; 195 uint64_t counter passCount; 196 uint64_t counter failCount; 197}; 198 199// Total EarlyStencil counts, SingleSample and SampleRate 200event EarlyStencil 201{ 202 uint32_t drawId; 203 uint64_t counter passCount; 204 uint64_t counter failCount; 205}; 206 207// Total LateStencil counts, SingleSample and SampleRate 208event LateStencil 209{ 210 uint32_t drawId; 211 uint64_t counter passCount; 212 uint64_t counter failCount; 213}; 214 215event EarlyZNullPS 216{ 217 uint32_t drawId; 218 uint64_t counter passCount; 219 uint64_t counter failCount; 220}; 221 222event EarlyStencilNullPS 223{ 224 uint32_t drawId; 225 uint64_t counter passCount; 226 uint64_t counter failCount; 227}; 228 229event EarlyZPixelRate 230{ 231 uint32_t drawId; 232 uint64_t counter passCount; 233 uint64_t counter failCount; 234}; 235 236event LateZPixelRate 237{ 238 uint32_t drawId; 239 uint64_t counter passCount; 240 uint64_t counter failCount; 241}; 242 243 244event EarlyOmZ 245{ 246 uint32_t drawId; 247 uint64_t counter passCount; 248 uint64_t counter failCount; 249}; 250 251event EarlyOmStencil 252{ 253 uint32_t drawId; 254 uint64_t counter passCount; 255 uint64_t counter failCount; 256}; 257 258event LateOmZ 259{ 260 uint32_t drawId; 261 uint64_t counter passCount; 262 uint64_t counter failCount; 263}; 264 265event LateOmStencil 266{ 267 uint32_t drawId; 268 uint64_t counter passCount; 269 uint64_t counter failCount; 270}; 271 272event GSInputPrims 273{ 274 uint32_t drawId; 275 uint64_t counter inputPrimCount; 276}; 277 278event GSPrimsGen 279{ 280 uint32_t drawId; 281 uint64_t counter primGeneratedCount; 282}; 283 284event GSVertsInput 285{ 286 uint32_t drawId; 287 uint64_t counter vertsInput; 288}; 289 290event TessPrims 291{ 292 uint32_t drawId; 293 uint64_t counter primCount; 294}; 295 296event RasterTiles 297{ 298 uint32_t drawId; 299 uint32_t counter rastTileCount; 300}; 301 302event ClipperEvent 303{ 304 uint32_t drawId; 305 uint32_t counter trivialRejectCount; 306 uint32_t counter trivialAcceptCount; 307 uint32_t counter mustClipCount; 308}; 309 310event CullEvent 311{ 312 uint32_t drawId; 313 uint64_t counter backfacePrimCount; 314 uint64_t counter degeneratePrimCount; 315}; 316 317event AlphaEvent 318{ 319 uint32_t drawId; 320 uint32_t counter alphaTestCount; 321 uint32_t counter alphaBlendCount; 322}; 323 324event VSInfo 325{ 326 uint32_t drawId; 327 uint32_t counter numInstExecuted; 328 uint32_t counter numSampleExecuted; 329 uint32_t counter numSampleLExecuted; 330 uint32_t counter numSampleBExecuted; 331 uint32_t counter numSampleCExecuted; 332 uint32_t counter numSampleCLZExecuted; 333 uint32_t counter numSampleCDExecuted; 334 uint32_t counter numGather4Executed; 335 uint32_t counter numGather4CExecuted; 336 uint32_t counter numGather4CPOExecuted; 337 uint32_t counter numGather4CPOCExecuted; 338 uint32_t counter numLodExecuted; 339}; 340 341event HSInfo 342{ 343 uint32_t drawId; 344 uint32_t counter numInstExecuted; 345 uint32_t counter numSampleExecuted; 346 uint32_t counter numSampleLExecuted; 347 uint32_t counter numSampleBExecuted; 348 uint32_t counter numSampleCExecuted; 349 uint32_t counter numSampleCLZExecuted; 350 uint32_t counter numSampleCDExecuted; 351 uint32_t counter numGather4Executed; 352 uint32_t counter numGather4CExecuted; 353 uint32_t counter numGather4CPOExecuted; 354 uint32_t counter numGather4CPOCExecuted; 355 uint32_t counter numLodExecuted; 356}; 357 358event DSInfo 359{ 360 uint32_t drawId; 361 uint32_t counter numInstExecuted; 362 uint32_t counter numSampleExecuted; 363 uint32_t counter numSampleLExecuted; 364 uint32_t counter numSampleBExecuted; 365 uint32_t counter numSampleCExecuted; 366 uint32_t counter numSampleCLZExecuted; 367 uint32_t counter numSampleCDExecuted; 368 uint32_t counter numGather4Executed; 369 uint32_t counter numGather4CExecuted; 370 uint32_t counter numGather4CPOExecuted; 371 uint32_t counter numGather4CPOCExecuted; 372 uint32_t counter numLodExecuted; 373}; 374 375event GSInfo 376{ 377 uint32_t drawId; 378 uint32_t counter numInstExecuted; 379 uint32_t counter numSampleExecuted; 380 uint32_t counter numSampleLExecuted; 381 uint32_t counter numSampleBExecuted; 382 uint32_t counter numSampleCExecuted; 383 uint32_t counter numSampleCLZExecuted; 384 uint32_t counter numSampleCDExecuted; 385 uint32_t counter numGather4Executed; 386 uint32_t counter numGather4CExecuted; 387 uint32_t counter numGather4CPOExecuted; 388 uint32_t counter numGather4CPOCExecuted; 389 uint32_t counter numLodExecuted; 390 391}; 392 393event PSInfo 394{ 395 uint32_t drawId; 396 uint32_t counter numInstExecuted; 397 uint32_t counter numSampleExecuted; 398 uint32_t counter numSampleLExecuted; 399 uint32_t counter numSampleBExecuted; 400 uint32_t counter numSampleCExecuted; 401 uint32_t counter numSampleCLZExecuted; 402 uint32_t counter numSampleCDExecuted; 403 uint32_t counter numGather4Executed; 404 uint32_t counter numGather4CExecuted; 405 uint32_t counter numGather4CPOExecuted; 406 uint32_t counter numGather4CPOCExecuted; 407 uint32_t counter numLodExecuted; 408}; 409 410event CSInfo 411{ 412 uint32_t drawId; 413 uint32_t counter numInstExecuted; 414 uint32_t counter numSampleExecuted; 415 uint32_t counter numSampleLExecuted; 416 uint32_t counter numSampleBExecuted; 417 uint32_t counter numSampleCExecuted; 418 uint32_t counter numSampleCLZExecuted; 419 uint32_t counter numSampleCDExecuted; 420 uint32_t counter numGather4Executed; 421 uint32_t counter numGather4CExecuted; 422 uint32_t counter numGather4CPOExecuted; 423 uint32_t counter numGather4CPOCExecuted; 424 uint32_t counter numLodExecuted; 425}; 426 427event SWTagFrameEvent 428{ 429 uint64_t swTagFrame; 430}; 431 432event SWTagRenderpassEvent 433{ 434 uint64_t swTagFrame; 435 uint32_t swTagDrawOrDispatch; 436 uint32_t swTagDraw; 437 uint32_t swTagDispatch; 438 uint32_t swTagRenderpassCount; 439}; 440 441event SWTagDrawEvent 442{ 443 uint64_t swTagFrame; 444 uint32_t swTagDrawOrDispatch; 445 uint32_t swTagDraw; 446 uint32_t swTagDispatch; 447}; 448 449event SWTagDispatchEvent 450{ 451 uint64_t swTagFrame; 452 uint32_t swTagDrawOrDispatch; 453 uint32_t swTagDraw; 454 uint32_t swTagDispatch; 455}; 456 457event SWTagFlushEvent 458{ 459 uint64_t swTagFrame; 460 uint32_t swTagDrawOrDispatch; 461 uint32_t swTagDraw; 462 uint32_t swTagDispatch; 463 uint32_t swTagFlushCounter; 464 char swTagFlushReason[256]; 465 uint32_t swTagFlushType; 466};