diff options
author | Marek Olšák <[email protected]> | 2017-09-05 13:40:59 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-09-11 19:02:02 +0200 |
commit | 6eade342eb223313242c1c2a7615b6bd75036087 (patch) | |
tree | 50238402786df6ac9c443a4870c6938db23a69de /src/gallium/drivers/radeonsi/si_shader.h | |
parent | 386d165d8d09317fe073d00da38f8851a9c33ee6 (diff) |
radeonsi: optimize TCS epilog when invocation 0 writes tess factors
This removes the barrier and LDS stores and loads for tess factors
when it's possible. The removal of the barrier seems more important
to me though.
In one shader, it removes 17 * 4 bytes from the shader binary.
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_shader.h')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index ee6b0c167f9..4592ac551ce 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -327,6 +327,7 @@ struct si_shader_selector { struct nir_shader *nir; struct pipe_stream_output_info so; struct tgsi_shader_info info; + struct tgsi_tessctrl_info tcs_info; /* PIPE_SHADER_[VERTEX|FRAGMENT|...] */ unsigned type; @@ -404,6 +405,7 @@ struct si_vs_prolog_bits { /* Common TCS bits between the shader key and the epilog key. */ struct si_tcs_epilog_bits { unsigned prim_mode:3; + unsigned invoc0_tess_factors_are_def:1; unsigned tes_reads_tess_factors:1; }; |