diff options
author | Marek Olšák <[email protected]> | 2017-02-18 16:55:50 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-02-21 21:27:23 +0100 |
commit | 84e72f2962eab5eeb8b331e7a5d6eccaa7b8f5be (patch) | |
tree | 25938e5fb581a0614919e9efa6c15e248d212d54 /src/gallium/drivers/radeonsi/si_state_shaders.c | |
parent | d633e23192ef17207f4a6acd3009da3126aab395 (diff) |
radeonsi: skip TESSINNER/OUTER offchip stores if TES doesn't read them
We were unconditionally storing these outputs, sometimes even one component
at a time, but apps never read them in TES.
Move the TESSINNER/OUTER buffer stores into the TCS epilog where we can
easily disable them on demand.
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_state_shaders.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state_shaders.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index d6d4560404f..bcfff0c2770 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.c +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c @@ -992,6 +992,8 @@ static inline void si_shader_selector_key(struct pipe_context *ctx, case PIPE_SHADER_TESS_CTRL: key->part.tcs.epilog.prim_mode = sctx->tes_shader.cso->info.properties[TGSI_PROPERTY_TES_PRIM_MODE]; + key->part.tcs.epilog.tes_reads_tess_factors = + sctx->tes_shader.cso->info.reads_tess_factors; if (sel == sctx->fixed_func_tcs_shader.cso) key->mono.tcs.inputs_to_copy = sctx->vs_shader.cso->outputs_written; |