diff options
author | Rob Clark <[email protected]> | 2017-05-23 12:05:12 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2017-05-23 12:26:35 -0400 |
commit | 1db28fbbea6e6c3f305783d6211a040ed38f4abf (patch) | |
tree | 4189ae454562e8750acd4bbf8b1b4511060f7d5b | |
parent | caa64b24ce4ca32addfae2bcd93b59b1e5225d82 (diff) |
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 <[email protected]>
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_screen.c | 17 | ||||
-rw-r--r-- | 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 |