[Mesa-dev] [PATCH] [RFC] r600g: enable SB backend by default

Tom Stellard tom at stellard.net
Thu Aug 22 16:14:23 PDT 2013


On Thu, Aug 22, 2013 at 08:20:38PM +0400, Vadim Girlin wrote:
> Signed-off-by: Vadim Girlin <vadimgirlin at gmail.com>

This is fine with me.  Nice work!

Reviewed-by: Tom Stellard <thomas.stellard at amd.com>

> ---
>  src/gallium/drivers/r600/r600_asm.c    | 3 ++-
>  src/gallium/drivers/r600/r600_pipe.c   | 4 ++--
>  src/gallium/drivers/r600/r600_pipe.h   | 2 +-
>  src/gallium/drivers/r600/r600_shader.c | 2 +-
>  4 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
> index b8eedae..a0492a6 100644
> --- a/src/gallium/drivers/r600/r600_asm.c
> +++ b/src/gallium/drivers/r600/r600_asm.c
> @@ -2281,7 +2281,8 @@ void *r600_create_vertex_fetch_shader(struct pipe_context *ctx,
>  	uint32_t *bytecode;
>  	int i, j, r, fs_size;
>  	struct r600_fetch_shader *shader;
> -	unsigned sb_disasm = rctx->screen->debug_flags & (DBG_SB_DISASM | DBG_SB);
> +	unsigned no_sb = rctx->screen->debug_flags & DBG_NO_SB;
> +	unsigned sb_disasm = !no_sb || (rctx->screen->debug_flags & DBG_SB_DISASM);
>  
>  	assert(count < 32);
>  
> diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
> index 2be5910..edd50f0 100644
> --- a/src/gallium/drivers/r600/r600_pipe.c
> +++ b/src/gallium/drivers/r600/r600_pipe.c
> @@ -67,8 +67,8 @@ static const struct debug_named_value debug_options[] = {
>  	{ "noinvalrange", DBG_NO_DISCARD_RANGE, "Disable handling of INVALIDATE_RANGE map flags" },
>  
>  	/* shader backend */
> -	{ "sb", DBG_SB, "Enable optimization of graphics shaders" },
> -	{ "sbcl", DBG_SB_CS, "Enable optimization of compute shaders" },
> +	{ "nosb", DBG_NO_SB, "Disable sb backend for graphics shaders" },
> +	{ "sbcl", DBG_SB_CS, "Enable sb backend for compute shaders" },
>  	{ "sbdry", DBG_SB_DRY_RUN, "Don't use optimized bytecode (just print the dumps)" },
>  	{ "sbstat", DBG_SB_STAT, "Print optimization statistics for shaders" },
>  	{ "sbdump", DBG_SB_DUMP, "Print IR dumps after some optimization passes" },
> diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h
> index 21d68c9..398ac89 100644
> --- a/src/gallium/drivers/r600/r600_pipe.h
> +++ b/src/gallium/drivers/r600/r600_pipe.h
> @@ -249,7 +249,7 @@ typedef boolean (*r600g_dma_blit_t)(struct pipe_context *ctx,
>  #define DBG_NO_ASYNC_DMA	(1 << 19)
>  #define DBG_NO_DISCARD_RANGE	(1 << 20)
>  /* shader backend */
> -#define DBG_SB			(1 << 21)
> +#define DBG_NO_SB		(1 << 21)
>  #define DBG_SB_CS		(1 << 22)
>  #define DBG_SB_DRY_RUN	(1 << 23)
>  #define DBG_SB_STAT		(1 << 24)
> diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
> index fb766c4..1563430 100644
> --- a/src/gallium/drivers/r600/r600_shader.c
> +++ b/src/gallium/drivers/r600/r600_shader.c
> @@ -140,7 +140,7 @@ int r600_pipe_shader_create(struct pipe_context *ctx,
>  	int r, i;
>  	uint32_t *ptr;
>  	bool dump = r600_can_dump_shader(rctx->screen, tgsi_get_processor_type(sel->tokens));
> -	unsigned use_sb = rctx->screen->debug_flags & DBG_SB;
> +	unsigned use_sb = !(rctx->screen->debug_flags & DBG_NO_SB);
>  	unsigned sb_disasm = use_sb || (rctx->screen->debug_flags & DBG_SB_DISASM);
>  
>  	shader->shader.bc.isa = rctx->isa;
> -- 
> 1.8.3.1
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list