Comment commencer à écrire un profileur GPU de bas niveau?


8

J'ai étudié les profileurs GPU de sociétés matérielles ces derniers jours (Qualcomm, PowerVR, Intel). J'ai remarqué que ces outils semblent donner plus de détails de bas niveau que les profileurs GPU que j'ai utilisés dans le passé - capture de trame OpenGL ES et apitrace de XCode - qui ne listaient que les appels OpenGL effectués et l'état actuel les ressources sont.

Comment puis-je commencer si je veux créer un outil de bas niveau qui affiche des éléments tels que les échecs de cache d'échantillonneur et le code assembleur de shader?

gpu 

Réponses:


6

Pour les données de synchronisation GPU de base, vous pouvez utiliser des requêtes d'horodatage D3D ou des requêtes de temporisation OpenGL équivalentes .

Toutes les données matérielles de bas niveau telles que les erreurs de cache vont être extrêmement spécifiques au fournisseur. Chaque fournisseur de GPU possède sa propre API ou extension personnalisée pour donner accès à des données de performances de bas niveau sur son matériel. Les API varient dans leur fonctionnement, et elles n'exposent pas nécessairement toutes les mêmes détails. Les données disponibles peuvent également varier entre différents modèles de puces au sein d'un même fournisseur, vous devez donc probablement en savoir un peu plus sur le fonctionnement du matériel pour le comprendre.

Voici des liens vers les API pertinentes pour la plupart des principaux fournisseurs de GPU.


Oh génial, je suppose que j'aurais dû creuser un peu plus sur les sites Web de la société. J'ai supposé qu'étant donné qu'apitrace n'offrait pas ces détails, il y avait une sorte de renversement en cours. Merci!

oh je pensais qu'il voulait écrire un autre perfkit. la réponse serait que ce n'est pas possible à moins que vous ne fabriquiez votre propre matériel.
v.oddou
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.