From 1db28fbbea6e6c3f305783d6211a040ed38f4abf Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 23 May 2017 12:05:12 -0400 Subject: [PATCH] freedreno/ir3: switch to NIR by default Now that we lower vars to regs, we no longer regress for anything that does complex dereferences. (With tgsi, derefers are already lowered before tgsi_to_nir, but not with glsl_to_nir.) In fact it actually fixes a few things to bypass tgsi. So make NIR the default (finally!) Signed-off-by: Rob Clark --- .../drivers/freedreno/freedreno_screen.c | 17 ++--------------- src/gallium/drivers/freedreno/freedreno_util.h | 1 - 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index a783d204546..99a6d3c9c86 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -75,7 +75,6 @@ static const struct debug_named_value debug_options[] = { {"shaderdb", FD_DBG_SHADERDB, "Enable shaderdb output"}, {"flush", FD_DBG_FLUSH, "Force flush after every draw"}, {"deqp", FD_DBG_DEQP, "Enable dEQP hacks"}, - {"nir", FD_DBG_NIR, "Prefer NIR as native IR"}, {"inorder", FD_DBG_INORDER,"Disable reordering for draws/blits"}, {"bstat", FD_DBG_BSTAT, "Print batch stats at context destroy"}, {"nogrow", FD_DBG_NOGROW, "Disable \"growable\" cmdstream buffers, even if kernel supports it"}, @@ -521,18 +520,9 @@ fd_screen_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return 16; case PIPE_SHADER_CAP_PREFERRED_IR: - switch (shader) { - case PIPE_SHADER_FRAGMENT: - case PIPE_SHADER_VERTEX: - if ((fd_mesa_debug & FD_DBG_NIR) && is_ir3(screen)) - return PIPE_SHADER_IR_NIR; - return PIPE_SHADER_IR_TGSI; - default: - /* tgsi_to_nir doesn't really support much beyond FS/VS: */ - debug_assert(is_ir3(screen)); + if (is_ir3(screen)) return PIPE_SHADER_IR_NIR; - } - break; + return PIPE_SHADER_IR_TGSI; case PIPE_SHADER_CAP_SUPPORTED_IRS: if (is_ir3(screen)) { return (1 << PIPE_SHADER_IR_NIR) | (1 << PIPE_SHADER_IR_TGSI); @@ -568,9 +558,6 @@ fd_screen_get_shader_param(struct pipe_screen *pscreen, switch(shader) { case PIPE_SHADER_FRAGMENT: - if (!(fd_mesa_debug & FD_DBG_NIR)) - return 0; - /* fallthrough */ case PIPE_SHADER_COMPUTE: return 24; default: diff --git a/src/gallium/drivers/freedreno/freedreno_util.h b/src/gallium/drivers/freedreno/freedreno_util.h index e6444337900..6b0fb700d6a 100644 --- a/src/gallium/drivers/freedreno/freedreno_util.h +++ b/src/gallium/drivers/freedreno/freedreno_util.h @@ -76,7 +76,6 @@ enum adreno_stencil_op fd_stencil_op(unsigned op); #define FD_DBG_SHADERDB 0x0800 #define FD_DBG_FLUSH 0x1000 #define FD_DBG_DEQP 0x2000 -#define FD_DBG_NIR 0x4000 #define FD_DBG_INORDER 0x8000 #define FD_DBG_BSTAT 0x10000 #define FD_DBG_NOGROW 0x20000 -- 2.30.2