radeonsi: round ps_iter_samples in set_min_samples

Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Marek Olšák 2018-05-15 22:03:40 -04:00
parent 510c88f9d1
commit 07e02c8617
2 changed files with 5 additions and 3 deletions

View File

@ -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;

View File

@ -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 &&