ConfigurePMCs
Configures the four hardware Performance Monitor Counters (PMCs) to enable a title to read the counters directly for the title code.
Syntax
HRESULT ConfigurePMCs(
unsigned int eventIndex0,
unsigned int eventIndex1,
unsigned int eventIndex2,
unsigned int eventIndex3
)
Parameters
eventIndex0
Type: unsigned int
Index of the event to count.
eventIndex1
Type: unsigned int
Index of the event to count.
eventIndex2
Type: unsigned int
Index of the event to count.
eventIndex3
Type: unsigned int
Index of the event to count.
Return value
Type: HRESULT
Success or error code.
Code | Description |
---|---|
S_OK | Success. |
E_INVALIDARG | One or more of the indexes is out of range. |
E_ACCESS_DENIED | Access to the driver is denied. |
Remarks
There are four hardware counters that can be configured directly to count events. The events are listed in the table below. The index of the event is used both to specify the event for this method, and to retrieve the count using GetPMCValue.
Index | Event | Description |
---|---|---|
0 | Reserved | Reserved. |
1 | RetiredSseAvx | The number of SSE/AVX operations retired. |
2 | DCacheAccesses | The number of accesses to the L1 data cache for load and store references. |
3 | DCacheMisses | The number of L1 data cache references which miss the data cache. |
4 | DCacheRefills | The number of L1 data cache refills satisfied from the L2 cache (and/or the northbridge) from uncatchable memory. |
5 | L1DTLBMissL2DTLBHit | The number of L1 data cache accesses that miss in the L1 DTLB and hit in the L2 DTLB. |
6 | DtlbMiss | The number of L1 data cache accesses that miss in both the L1 and L2 DTLBs. |
7 | L1DtlbHit | The number of L1 data cache accesses that hit in the L1 DTLB. |
8 | L1ITLBMissL2ITLBHit | The number of instruction fetches that miss in the L1 ITLB but hit in the L2 ITLB. |
9 | ItlbMiss | The number of instruction fetches that miss in the 4K ITLB and 2M ITLB. |
10 | ItlbInstructionFetchHits | The number of instruction fetches that hit in the 4K ITLB and 2M ITLB. |
11 | MisalignedAccess | The number of L1 data cache accesses that are misaligned. Misaligned accesses incur at least an extra cache access and an extra cycle of latency on reads. |
12 | IneffectiveSWPrefetches | The number of software prefetches that do not cause an actual L1 data cache refill. |
13 | CpuClkNotHalted | The number of clocks that the CPU is not in a halted state. |
14 | RetiredInstructions | The number of instructions retired (execution completed and architectural state updated). This count includes exceptions and interrupts. |
15 | BranchInstructions | The number of branch instructions retired. This includes all types of architectural control flow changes, including exceptions and interrupts. |
16 | MispredictedBranch | The number of branch instructions retired, of any type, that were not correctly predicted in either target or direction. This includes those for which prediction is not attempted (far control transfers, exceptions and interrupts), and excludes resyncs. |
17 | RetiredTakenBranch | The number of taken branches that were retired. This includes all types of architectural control flow changes, including exceptions and interrupts, and excludes resyncs. |
18 | RetiredFarSyscall | The number of far syscalls retired. |
19 | RetiredNearReturns | The number of near return instructions retired. |
20 | RetiredReturnsMispredicted | A near return instruction was retired that mispredicted in either target or direction. |
21 | MispredictedTakenBranch | A taken branch instruction was retired that mispredicted in target address (but not in direction). |
22 | MmxFPInstructions | A floating point (x87, MMX, or SSE) instruction was retired. |
23 | RetiredFPInstructions | The number of SSE/AVX operations retired. |
24 | RetiredMmxInstructions | The number of MMX operations retired. |
25 | RetiredSseInstructions | The number of SSE operations retired. |
26 | InstructionFetchStalls | The number cycles that the instruction fetch engine is stalled. |
27 | DataCachePrefetches | L1 data cache prefetches. |
28 | DataCacheReadSize | The number of L1 data cache reads. |
29 | DataCacheWriteSize | The number of L1 data cache writes. |
30 | ITLBReloadStalls | The number of cycles when the fetch engine is stalled for an ITLB reload. |
Requirements
Header: pix3.h
Library: pixevt.lib
Supported platforms: Xbox One family consoles and Xbox Series consoles
See also
ConfigureL2IPMCs
ConfigureNBPMCs
GetPMCValue
PIX (NDA topic)Authorization required
PIX3 on Xbox