summaryrefslogtreecommitdiff
path: root/common.h
diff options
context:
space:
mode:
authorRob Clark <robdclark@chromium.org>2020-03-07 10:23:44 -0800
committerRob Clark <robdclark@chromium.org>2020-03-07 15:16:15 -0800
commit28c3af8445a14b4920a190157e660f35d2e44368 (patch)
treef6e8dead9a3ef24b092fbd592aea34936cf14ca5 /common.h
parentdaea3dd7d5727116025e0c18ba97ff104dcd546d (diff)
downloadkmscube-28c3af8445a14b4920a190157e660f35d2e44368.tar.gz
kmscube: add AMD_performance_monitor support
Only wired up for shadertoy mode, other modes aren't likely to be interesting.
Diffstat (limited to 'common.h')
-rw-r--r--common.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/common.h b/common.h
index d2216e0..149fae9 100644
--- a/common.h
+++ b/common.h
@@ -122,6 +122,19 @@ struct egl {
PFNEGLCLIENTWAITSYNCKHRPROC eglClientWaitSyncKHR;
PFNEGLDUPNATIVEFENCEFDANDROIDPROC eglDupNativeFenceFDANDROID;
+ /* AMD_performance_monitor */
+ PFNGLGETPERFMONITORGROUPSAMDPROC glGetPerfMonitorGroupsAMD;
+ PFNGLGETPERFMONITORCOUNTERSAMDPROC glGetPerfMonitorCountersAMD;
+ PFNGLGETPERFMONITORGROUPSTRINGAMDPROC glGetPerfMonitorGroupStringAMD;
+ PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC glGetPerfMonitorCounterStringAMD;
+ PFNGLGETPERFMONITORCOUNTERINFOAMDPROC glGetPerfMonitorCounterInfoAMD;
+ PFNGLGENPERFMONITORSAMDPROC glGenPerfMonitorsAMD;
+ PFNGLDELETEPERFMONITORSAMDPROC glDeletePerfMonitorsAMD;
+ PFNGLSELECTPERFMONITORCOUNTERSAMDPROC glSelectPerfMonitorCountersAMD;
+ PFNGLBEGINPERFMONITORAMDPROC glBeginPerfMonitorAMD;
+ PFNGLENDPERFMONITORAMDPROC glEndPerfMonitorAMD;
+ PFNGLGETPERFMONITORCOUNTERDATAAMDPROC glGetPerfMonitorCounterDataAMD;
+
bool modifiers_supported;
void (*draw)(unsigned i);
@@ -174,6 +187,12 @@ init_cube_video(const struct gbm *gbm, const char *video, int samples)
}
#endif
+void init_perfcntrs(const struct egl *egl, const char *perfcntrs);
+void start_perfcntrs(void);
+void end_perfcntrs(void);
+void finish_perfcntrs(void);
+void dump_perfcntrs(unsigned nframes, uint64_t elapsed_time_ns);
+
#define NSEC_PER_SEC (INT64_C(1000) * USEC_PER_SEC)
#define USEC_PER_SEC (INT64_C(1000) * MSEC_PER_SEC)
#define MSEC_PER_SEC INT64_C(1000)