[Mesa-dev] [PATCH 16/16] radeonsi: add enable_sisched driconf option

Nicolai Hähnle nhaehnle at gmail.com
Fri Jun 30 12:45:57 UTC 2017


From: Nicolai Hähnle <nicolai.haehnle at amd.com>

---
 src/gallium/drivers/radeonsi/driinfo_radeonsi.h | 3 +++
 src/gallium/drivers/radeonsi/si_pipe.c          | 4 ++++
 src/util/xmlpool/t_options.h                    | 9 +++++++++
 3 files changed, 16 insertions(+)

diff --git a/src/gallium/drivers/radeonsi/driinfo_radeonsi.h b/src/gallium/drivers/radeonsi/driinfo_radeonsi.h
index a358f02..af6284a 100644
--- a/src/gallium/drivers/radeonsi/driinfo_radeonsi.h
+++ b/src/gallium/drivers/radeonsi/driinfo_radeonsi.h
@@ -1 +1,4 @@
 // DriConf options specific to radeonsi
+DRI_CONF_SECTION_PERFORMANCE
+    DRI_CONF_RADEONSI_ENABLE_SISCHED("false")
+DRI_CONF_SECTION_END
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index e51cbce..f9d7d92 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -24,20 +24,21 @@
 #include "si_pipe.h"
 #include "si_public.h"
 #include "si_shader_internal.h"
 #include "sid.h"
 
 #include "radeon/radeon_uvd.h"
 #include "util/hash_table.h"
 #include "util/u_memory.h"
 #include "util/u_suballoc.h"
 #include "util/u_tests.h"
+#include "util/xmlconfig.h"
 #include "vl/vl_decoder.h"
 #include "../ddebug/dd_util.h"
 
 /*
  * pipe_context
  */
 static void si_destroy_context(struct pipe_context *context)
 {
 	struct si_context *sctx = (struct si_context *)context;
 	int i;
@@ -937,20 +938,23 @@ struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws,
 
 	si_init_screen_state_functions(sscreen);
 
 	if (!r600_common_screen_init(&sscreen->b, ws, config->flags) ||
 	    !si_init_gs_info(sscreen) ||
 	    !si_init_shader_cache(sscreen)) {
 		FREE(sscreen);
 		return NULL;
 	}
 
+	if (driQueryOptionb(config->options, "radeonsi_enable_sisched"))
+		sscreen->b.debug_flags |= DBG_SI_SCHED;
+
 	/* Only enable as many threads as we have target machines, but at most
 	 * the number of CPUs - 1 if there is more than one.
 	 */
 	num_threads = sysconf(_SC_NPROCESSORS_ONLN);
 	num_threads = MAX2(1, num_threads - 1);
 	num_compiler_threads = MIN2(num_threads, ARRAY_SIZE(sscreen->tm));
 	num_compiler_threads_lowprio =
 		MIN2(num_threads, ARRAY_SIZE(sscreen->tm_low_priority));
 
 	if (!util_queue_init(&sscreen->shader_compiler_queue, "si_shader",
diff --git a/src/util/xmlpool/t_options.h b/src/util/xmlpool/t_options.h
index 9aa1798..fcf65cd 100644
--- a/src/util/xmlpool/t_options.h
+++ b/src/util/xmlpool/t_options.h
@@ -417,10 +417,19 @@ DRI_CONF_OPT_END
 
 #define DRI_CONF_NINE_TEARFREEDISCARD(def) \
 DRI_CONF_OPT_BEGIN_B(tearfree_discard, def) \
         DRI_CONF_DESC(en,gettext("Whether to make d3d's presentation mode DISCARD (games usually use that mode) Tear Free. If rendering above screen refresh, some frames will get skipped. false by default.")) \
 DRI_CONF_OPT_END
 
 #define DRI_CONF_NINE_CSMT(def) \
 DRI_CONF_OPT_BEGIN(csmt_force, int, def) \
         DRI_CONF_DESC(en,gettext("If set to 1, force gallium nine CSMT. If set to 0, disable it. By default (-1) CSMT is enabled on known thread-safe drivers.")) \
 DRI_CONF_OPT_END
+
+/**
+ * \brief radeonsi specific configuration options
+ */
+
+#define DRI_CONF_RADEONSI_ENABLE_SISCHED(def) \
+DRI_CONF_OPT_BEGIN_B(radeonsi_enable_sisched, def) \
+        DRI_CONF_DESC(en,gettext("Use the LLVM sisched option for shader compiles")) \
+DRI_CONF_OPT_END
-- 
2.9.3



More information about the mesa-dev mailing list