> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ConfigurePMCs

> ConfigurePMCs

# ConfigurePMCs

Configure les quatre compteurs matériels de surveillance des performances (PMC) afin de permettre à un titre de lire les compteurs directement depuis le code du titre.

## Syntaxe

```cpp theme={null}
HRESULT ConfigurePMCs(  
         unsigned int eventIndex0,  
         unsigned int eventIndex1,  
         unsigned int eventIndex2,  
         unsigned int eventIndex3  
)  
```

### Paramètres

*eventIndex0*   \
Type : unsigned int

Index de l'événement à compter.

*eventIndex1*   \
Type : unsigned int

Index de l'événement à compter.

*eventIndex2*   \
Type : unsigned int

Index de l'événement à compter.

*eventIndex3*   \
Type : unsigned int

Index de l'événement à compter.

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur.

| Code | Description |
| - | - |
| S\_OK | Réussite. |
| E\_INVALIDARG | Un ou plusieurs des index sont hors limites. |
| E\_ACCESS\_DENIED | L'accès au pilote est refusé. |

## Remarques

Il existe quatre compteurs matériels qui peuvent être configurés directement pour compter des événements. Les événements sont répertoriés dans le tableau ci-dessous. L'index de l'événement sert à la fois à spécifier l'événement pour cette méthode et à récupérer le nombre à l'aide de [GetPMCValue](/fr/reference/tools/pix3/functions/getpmcvalue).

| Index | Événement | Description |
| - | - | - |
| 0 | Reserved | Réservé. |
| 1 | RetiredSseAvx | Nombre d'opérations SSE/AVX retirées. |
| 2 | DCacheAccesses | Nombre d'accès au cache de données L1 pour les références de chargement et de stockage. |
| 3 | DCacheMisses | Nombre de références au cache de données L1 qui manquent le cache de données. |
| 4 | DCacheRefills | Nombre de remplissages du cache de données L1 satisfaits à partir du cache L2 (et/ou du pont nord) depuis une mémoire non mise en cache. |
| 5 | L1DTLBMissL2DTLBHit | Nombre d'accès au cache de données L1 qui échouent dans le DTLB L1 et réussissent dans le DTLB L2. |
| 6 | DtlbMiss | Nombre d'accès au cache de données L1 qui échouent à la fois dans les DTLB L1 et L2. |
| 7 | L1DtlbHit | Nombre d'accès au cache de données L1 qui réussissent dans le DTLB L1. |
| 8 | L1ITLBMissL2ITLBHit | Nombre de récupérations d'instructions qui échouent dans l'ITLB L1 mais réussissent dans l'ITLB L2. |
| 9 | ItlbMiss | Nombre de récupérations d'instructions qui échouent dans l'ITLB 4K et l'ITLB 2M. |
| 10 | ItlbInstructionFetchHits | Nombre de récupérations d'instructions qui réussissent dans l'ITLB 4K et l'ITLB 2M. |
| 11 | MisalignedAccess | Nombre d'accès au cache de données L1 non alignés. Les accès non alignés entraînent au moins un accès supplémentaire au cache et un cycle de latence supplémentaire lors des lectures. |
| 12 | IneffectiveSWPrefetches | Nombre de prélectures logicielles qui n'entraînent pas de remplissage effectif du cache de données L1. |
| 13 | CpuClkNotHalted | Nombre de cycles d'horloge pendant lesquels le processeur n'est pas à l'état arrêté. |
| 14 | RetiredInstructions | Nombre d'instructions retirées (exécution terminée et état architectural mis à jour). Ce nombre inclut les exceptions et les interruptions. |
| 15 | BranchInstructions | Nombre d'instructions de branchement retirées. Cela inclut tous les types de modifications architecturales du flux de contrôle, y compris les exceptions et les interruptions. |
| 16 | MispredictedBranch | Nombre d'instructions de branchement retirées, de tout type, qui n'ont pas été correctement prédites, que ce soit en cible ou en direction. Cela inclut celles pour lesquelles aucune prédiction n'est tentée (transferts de contrôle lointains, exceptions et interruptions), et exclut les resynchronisations. |
| 17 | RetiredTakenBranch | Nombre de branchements pris qui ont été retirés. Cela inclut tous les types de modifications architecturales du flux de contrôle, y compris les exceptions et les interruptions, et exclut les resynchronisations. |
| 18 | RetiredFarSyscall | Nombre d'appels système lointains retirés. |
| 19 | RetiredNearReturns | Nombre d'instructions de retour proche retirées. |
| 20 | RetiredReturnsMispredicted | Une instruction de retour proche mal prédite en cible ou en direction a été retirée. |
| 21 | MispredictedTakenBranch | Une instruction de branchement pris mal prédite en adresse cible (mais pas en direction) a été retirée. |
| 22 | MmxFPInstructions | Une instruction à virgule flottante (x87, MMX ou SSE) a été retirée. |
| 23 | RetiredFPInstructions | Nombre d'opérations SSE/AVX retirées. |
| 24 | RetiredMmxInstructions | Nombre d'opérations MMX retirées. |
| 25 | RetiredSseInstructions | Nombre d'opérations SSE retirées. |
| 26 | InstructionFetchStalls | Nombre de cycles pendant lesquels le moteur de récupération d'instructions est bloqué. |
| 27 | DataCachePrefetches | Prélectures du cache de données L1. |
| 28 | DataCacheReadSize | Nombre de lectures du cache de données L1. |
| 29 | DataCacheWriteSize | Nombre d'écritures du cache de données L1. |
| 30 | ITLBReloadStalls | Nombre de cycles pendant lesquels le moteur de récupération est bloqué en raison d'un rechargement de l'ITLB. |

## Configuration requise

**En-tête :** pix3.h

**Bibliothèque :** pixevt.lib

**Plateformes prises en charge :** consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[ConfigureL2IPMCs](/fr/reference/tools/pix3/functions/configurel2ipmcs)\
[ConfigureNBPMCs](/fr/reference/tools/pix3/functions/configurenbpmcs)\
[GetPMCValue](/fr/reference/tools/pix3/functions/getpmcvalue)\
[PIX (rubrique sous NDA)](/fr/tools/tools-console/pix/pix)\
[PIX3 sur XBOX](/fr/reference/tools/pix3/pix3_members)


## Related topics

- [ConfigurePMCs](/reference/tools/pix3/functions/configurepmcs.md)
- [ConfigureNBPMCs](/reference/tools/pix3/functions/configurenbpmcs.md)
