Module: Mesa Branch: master Commit: 07e02c8617ebdc7e4a729676dbd93d63b77bcd9d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=07e02c8617ebdc7e4a729676dbd93d63b77bcd9d
Author: Marek Olšák <marek.ol...@amd.com> Date: Tue May 15 22:03:40 2018 -0400 radeonsi: round ps_iter_samples in set_min_samples Tested-by: Dieter Nützel <die...@nuetzel-hh.de> Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com> --- src/gallium/drivers/radeonsi/si_state.c | 6 ++++-- src/gallium/drivers/radeonsi/si_state_shaders.c | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 5bbf134b70..f4e29f68b2 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -3412,8 +3412,7 @@ static void si_emit_msaa_config(struct si_context *sctx) }; unsigned log_samples = util_logbase2(coverage_samples); unsigned ps_iter_samples = si_get_ps_iter_samples(sctx); - unsigned log_ps_iter_samples = - util_logbase2(util_next_power_of_two(ps_iter_samples)); + unsigned log_ps_iter_samples = util_logbase2(ps_iter_samples); radeon_set_context_reg_seq(cs, R_028BDC_PA_SC_LINE_CNTL, 2); radeon_emit(cs, sc_line_cntl | @@ -3468,6 +3467,9 @@ static void si_set_min_samples(struct pipe_context *ctx, unsigned min_samples) { struct si_context *sctx = (struct si_context *)ctx; + /* The hardware can only do sample shading with 2^n samples. */ + min_samples = util_next_power_of_two(min_samples); + if (sctx->ps_iter_samples == min_samples) return; diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c index 2e215b91ce..1b618502e8 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.c +++ b/src/gallium/drivers/radeonsi/si_state_shaders.c @@ -1414,7 +1414,7 @@ static inline void si_shader_selector_key(struct pipe_context *ctx, if (sctx->ps_iter_samples > 1 && sel->info.reads_samplemask) { key->part.ps.prolog.samplemask_log_ps_iter = - util_logbase2(util_next_power_of_two(sctx->ps_iter_samples)); + util_logbase2(sctx->ps_iter_samples); } if (rs->force_persample_interp && _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit