aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2016-03-09 23:59:05 +0100
committerSamuel Pitoiset <[email protected]>2016-03-10 18:20:38 +0100
commit0e511400de331253a3281fe848e2073c197ec232 (patch)
treee7931b3152f7cfa780612647efa757738ad6f718 /src/gallium
parentbf840aa523152d78e4ecfce0c7d164014d2c6c1f (diff)
nvc0: add driver metrics for SM35 (GK110)
Signed-off-by: Samuel Pitoiset <[email protected]> Acked-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_metric.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_metric.c b/src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_metric.c
index a01ab3fba4c..b961cbf652e 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_metric.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_metric.c
@@ -300,6 +300,20 @@ static const struct nvc0_hw_metric_query_cfg *sm30_hw_metric_queries[] =
&sm30_shared_replay_overhead,
};
+/* ==== Compute capability 3.5 (GK110) ==== */
+static const struct nvc0_hw_metric_query_cfg *sm35_hw_metric_queries[] =
+{
+ &sm30_achieved_occupancy,
+ &sm30_inst_issued,
+ &sm30_inst_per_wrap,
+ &sm30_inst_replay_overhead,
+ &sm30_issued_ipc,
+ &sm30_inst_issued,
+ &sm30_issue_slot_utilization,
+ &sm30_ipc,
+ &sm30_shared_replay_overhead,
+};
+
#undef _SM
static inline const struct nvc0_hw_metric_query_cfg **
@@ -308,6 +322,8 @@ nvc0_hw_metric_get_queries(struct nvc0_screen *screen)
struct nouveau_device *dev = screen->base.device;
switch (screen->base.class_3d) {
+ case NVF0_3D_CLASS:
+ return sm35_hw_metric_queries;
case NVE4_3D_CLASS:
return sm30_hw_metric_queries;
default:
@@ -325,6 +341,8 @@ nvc0_hw_metric_get_num_queries(struct nvc0_screen *screen)
struct nouveau_device *dev = screen->base.device;
switch (screen->base.class_3d) {
+ case NVF0_3D_CLASS:
+ return ARRAY_SIZE(sm35_hw_metric_queries);
case NVE4_3D_CLASS:
return ARRAY_SIZE(sm30_hw_metric_queries);
default:
@@ -558,6 +576,7 @@ nvc0_hw_metric_get_query_result(struct nvc0_context *nvc0,
}
switch (screen->base.class_3d) {
+ case NVF0_3D_CLASS:
case NVE4_3D_CLASS:
value = sm30_hw_metric_calc_result(hq, res64);
break;
@@ -629,7 +648,7 @@ nvc0_hw_metric_get_driver_query_info(struct nvc0_screen *screen, unsigned id,
if (id < count) {
if (screen->compute) {
- if (screen->base.class_3d <= NVE4_3D_CLASS) {
+ if (screen->base.class_3d <= NVF0_3D_CLASS) {
const struct nvc0_hw_metric_query_cfg **queries =
nvc0_hw_metric_get_queries(screen);