nvc0: expose a group of performance metrics for SM30 (Kepler)
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 2 Dec 2015 22:52:07 +0000 (23:52 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Sat, 5 Dec 2015 18:23:34 +0000 (19:23 +0100)
This allows to monitor these performance metrics through
GL_AMD_performance_monitor.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/gallium/drivers/nouveau/nvc0/nvc0_query.c
src/gallium/drivers/nouveau/nvc0/nvc0_query_hw_metric.c

index d992b10a23cfb98dde5f918afd7b23f4c8bfcb50..3845d616c3d2f6394bb1cdc39ccb80ee2e504b04 100644 (file)
@@ -187,7 +187,7 @@ nvc0_screen_get_driver_query_group_info(struct pipe_screen *pscreen,
    if (screen->base.device->drm_version >= 0x01000101) {
       if (screen->compute) {
          if (screen->base.class_3d == NVE4_3D_CLASS) {
-            count++;
+            count += 2;
          } else
          if (screen->base.class_3d < NVE4_3D_CLASS) {
             count += 2;
@@ -222,6 +222,12 @@ nvc0_screen_get_driver_query_group_info(struct pipe_screen *pscreen,
    } else
    if (id == NVC0_HW_METRIC_QUERY_GROUP) {
       if (screen->compute) {
+          if (screen->base.class_3d == NVE4_3D_CLASS) {
+            info->name = "Performance metrics";
+            info->max_active_queries = 1;
+            info->num_queries = NVE4_HW_METRIC_QUERY_COUNT;
+            return 1;
+         } else
          if (screen->base.class_3d < NVE4_3D_CLASS) {
             info->name = "Performance metrics";
             info->max_active_queries = 1;
index 756ba4e8185754081bfa138a65ef7d0af955615c..12fb609b62a98800d7933eb7da042a1d336c17de 100644 (file)
@@ -587,7 +587,7 @@ nvc0_hw_metric_get_driver_query_info(struct nvc0_screen *screen, unsigned id,
          if (screen->base.class_3d == NVE4_3D_CLASS) {
             info->name = nve4_hw_metric_names[id];
             info->query_type = NVE4_HW_METRIC_QUERY(id);
-            info->group_id = -1;
+            info->group_id = NVC0_HW_METRIC_QUERY_GROUP;
             return 1;
          } else
          if (class_3d < NVE4_3D_CLASS) {