iris: Support the disable_throttling=true driconf option.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 5 Sep 2019 08:52:17 +0000 (01:52 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 7 Sep 2019 01:35:24 +0000 (18:35 -0700)
src/gallium/drivers/iris/driinfo_iris.h
src/gallium/drivers/iris/iris_screen.c
src/gallium/drivers/iris/iris_screen.h

index 37190ad..8525001 100644 (file)
@@ -2,6 +2,7 @@
 
 DRI_CONF_SECTION_DEBUG
    DRI_CONF_DUAL_COLOR_BLEND_BY_LOCATION("false")
+   DRI_CONF_DISABLE_THROTTLING("false")
 DRI_CONF_SECTION_END
 
 DRI_CONF_SECTION_PERFORMANCE
index 5fbc214..6833bc9 100644 (file)
@@ -308,6 +308,8 @@ iris_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
        * illegal snoop <-> snoop transfers.
        */
       return devinfo->has_llc;
+   case PIPE_CAP_MAX_FRAMES_IN_FLIGHT:
+      return screen->driconf.disable_throttling ? 0 : 1;
 
    case PIPE_CAP_CONTEXT_PRIORITY_MASK:
       return PIPE_CONTEXT_PRIORITY_LOW |
@@ -653,6 +655,8 @@ iris_screen_create(int fd, const struct pipe_screen_config *config)
 
    screen->driconf.dual_color_blend_by_location =
       driQueryOptionb(config->options, "dual_color_blend_by_location");
+   screen->driconf.disable_throttling =
+      driQueryOptionb(config->options, "disable_throttling");
 
    screen->precompile = env_var_as_boolean("shader_precompile", true);
 
index e8eeac0..817ef37 100644 (file)
@@ -66,6 +66,7 @@ struct iris_screen {
    struct {
       /** Dual color blend by location instead of index (for broken apps) */
       bool dual_color_blend_by_location;
+      bool disable_throttling;
    } driconf;
 
    unsigned subslice_total;