freedreno: Support the disable_throttling=true driconf option
authorRob Clark <robdclark@chromium.org>
Wed, 29 Mar 2023 21:33:57 +0000 (14:33 -0700)
committerMarge Bot <emma+marge@anholt.net>
Sat, 1 Apr 2023 13:53:31 +0000 (13:53 +0000)
At this point, mostly just to make it easier to disable throttling for
performance debugging.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22224>

src/gallium/drivers/freedreno/driinfo_freedreno.h
src/gallium/drivers/freedreno/freedreno_screen.c
src/gallium/drivers/freedreno/freedreno_screen.h
src/gallium/drivers/virgl/virgl_driinfo.h.in

index a23b865..304262c 100644 (file)
@@ -3,3 +3,7 @@
 DRI_CONF_SECTION_MISCELLANEOUS
    DRI_CONF_DISABLE_CONSERVATIVE_LRZ(false)
 DRI_CONF_SECTION_END
+
+DRI_CONF_SECTION_DEBUG
+   DRI_CONF_DISABLE_THROTTLING(false)
+DRI_CONF_SECTION_END
index 0df23c3..e6b1cb3 100644 (file)
@@ -573,6 +573,8 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
       return is_a6xx(screen);
    case PIPE_CAP_TWO_SIDED_COLOR:
       return 0;
+   case PIPE_CAP_THROTTLE:
+      return screen->driconf.enable_throttling;
    default:
       return u_pipe_screen_get_param_defaults(pscreen, param);
    }
@@ -1110,6 +1112,8 @@ fd_screen_create(int fd,
 
    screen->driconf.conservative_lrz =
          !driQueryOptionb(config->options, "disable_conservative_lrz");
+   screen->driconf.enable_throttling =
+         !driQueryOptionb(config->options, "disable_throttling");
 
    struct sysinfo si;
    sysinfo(&si);
index 23affe6..466e203 100644 (file)
@@ -92,6 +92,10 @@ struct fd_screen {
        * suffer a performance loss with conservative LRZ.
        */
       bool conservative_lrz;
+
+      /* Enable EGL throttling (default true).
+       */
+      bool enable_throttling;
    } driconf;
 
    const struct fd_dev_info *info;
index 301247b..17e728b 100644 (file)
@@ -20,3 +20,8 @@ DRI_CONF_SECTION_MISCELLANEOUS
      */
     DRI_CONF_DISABLE_CONSERVATIVE_LRZ(false)
 DRI_CONF_SECTION_END
+
+DRI_CONF_SECTION_DEBUG
+   /* Also needed for native-context drivers (freedreno) */
+   DRI_CONF_DISABLE_THROTTLING(false)
+DRI_CONF_SECTION_END
\ No newline at end of file