diff options
author | Marek Olšák <[email protected]> | 2017-04-22 18:04:00 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-04-28 21:47:35 +0200 |
commit | 9fd9a7d0ba39ed2328b1d48cd8ae83f070202f51 (patch) | |
tree | 9da9804d307111c52af451896e85aa621d63b255 /src/gallium/drivers/radeonsi/si_state_shaders.c | |
parent | 3b2e93e472d185a5df5ec3c3d23c8744a0c23e42 (diff) |
radeonsi: remove VS epilog code, compile VS with PrimID export on demand
The use of PrimID in the pixel shader is too rare to deserve such
a sizable support code.
The initial idea of the VS epilog was to move the clipping code there and
remove it based on states, but optimized variants are now used to do that
and are easier to support, so the VS epilog has turned out to be not so
useful.
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 | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index 6b910778536..2150eb9896c 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.c +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c @@ -853,7 +853,7 @@ static void si_shader_vs(struct si_screen *sscreen, struct si_shader *shader, unsigned oc_lds_en; unsigned window_space = shader->selector->info.properties[TGSI_PROPERTY_VS_WINDOW_SPACE_POSITION]; - bool enable_prim_id = si_vs_exports_prim_id(shader); + bool enable_prim_id = shader->key.mono.vs_export_prim_id; pm4 = si_get_shader_pm4_state(shader); if (!pm4) @@ -1271,7 +1271,7 @@ static inline void si_shader_selector_key(struct pipe_context *ctx, si_shader_selector_key_hw_vs(sctx, sel, key); if (sctx->ps_shader.cso && sctx->ps_shader.cso->info.uses_primid) - key->part.vs.epilog.export_prim_id = 1; + key->mono.vs_export_prim_id = 1; } break; case PIPE_SHADER_TESS_CTRL: @@ -1296,7 +1296,7 @@ static inline void si_shader_selector_key(struct pipe_context *ctx, si_shader_selector_key_hw_vs(sctx, sel, key); if (sctx->ps_shader.cso && sctx->ps_shader.cso->info.uses_primid) - key->part.tes.epilog.export_prim_id = 1; + key->mono.vs_export_prim_id = 1; } break; case PIPE_SHADER_GEOMETRY: |