¿Cómo comenzar a escribir un perfilador de GPU de bajo nivel?

8

He estado estudiando perfiladores de GPU de corporaciones de hardware en los últimos días (Qualcomm, PowerVR, Intel). Me he dado cuenta de que estas herramientas parecen dar más detalles de bajo nivel que los perfiladores de GPU que he usado en el pasado, la captura y el apitrace de tramas OpenGL ES de XCode, que solo enumeran qué llamadas de OpenGL se realizaron y cuál es el estado actual los recursos son

¿Cómo empiezo si quiero hacer una herramienta de bajo nivel que muestre cosas como errores de caché de muestra y código de ensamblador de sombreador?


fuente

Respuestas:

6

Para los datos básicos de temporización de la GPU, puede utilizar consultas de marca de tiempo D3D o consultas de temporizador OpenGL equivalentes .

Cualquier dato de hardware de bajo nivel, como errores de caché, será extremadamente específico del proveedor. Cada proveedor de GPU tiene su propia API o extensión personalizada para dar acceso a datos de rendimiento de bajo nivel en su hardware. Las API varían en cómo funcionan, y no todas exponen necesariamente los mismos detalles. Los datos disponibles también pueden variar entre diferentes modelos de chips dentro del mismo proveedor, por lo que probablemente necesite saber un poco sobre cómo funciona el hardware para darle sentido.

Aquí hay enlaces a las API relevantes para la mayoría de los principales proveedores de GPU.

Nathan Reed
fuente
Oh, increíble, supongo que debería haber profundizado un poco más en los sitios web de la corporación. Asumí que, dado que Apitrace no ofrecía estos detalles, había algún tipo de inversión. ¡Gracias!
oh, pensé que quería escribir otro perfkit. cuál sería la respuesta que no es posible a menos que hagas tu propio hardware.
v.oddou