struct MALI_RENDERER_STATE *state)
{
const struct panfrost_device *dev = pan_device(ctx->base.screen);
- struct panfrost_shader_state *fs = panfrost_get_shader_state(ctx, PIPE_SHADER_FRAGMENT);
struct pipe_rasterizer_state *rast = &ctx->rasterizer->base;
const struct panfrost_zsa_state *zsa = ctx->depth_stencil;
bool alpha_to_coverage = ctx->blend->base.alpha_to_coverage;
state->multisample_misc.sample_mask = (msaa ? ctx->sample_mask : ~0) & 0xFFFF;
state->multisample_misc.evaluate_per_sample =
- msaa && (ctx->min_samples > 1 || fs->info.fs.sample_shading);
+ msaa && (ctx->min_samples > 1);
state->multisample_misc.fixed_function_near_discard = rast->depth_clip_near;
state->multisample_misc.fixed_function_far_discard = rast->depth_clip_far;
shader_info->fs.writes_depth ?
MALI_DEPTH_SOURCE_SHADER :
MALI_DEPTH_SOURCE_FIXED_FUNCTION;
+
+ /* This also needs to be set if the API forces per-sample
+ * shading, but that'll just got ORed in */
+ rsd->multisample_misc.evaluate_per_sample =
+ shader_info->fs.sample_shading;
} else {
rsd->properties.depth_source =
MALI_DEPTH_SOURCE_FIXED_FUNCTION;