mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 20:08:06 +02:00
panfrost: change tie-breaking rule for 16x MSAA
When using 16x MSAA, we have two sample-positions on the negative boundary of the unit-square covering the pixel. This causes problems when using the default tie-breaking rule, where we miss some sample-positions when rasterizing primitives covering the entire viewport. This works fine on Bifrost and later, but this setting is ignored on those GPUs, and they assume the default (e.g MINUS_180_OUT_0_IN). Because we'd prefer for rasterization to match between Midgard and Bifrost when we can, we only apply this when we have 16x MSAA. As an added bonus, this behavior matches what the DDK does. Fixes these tests when 16x MSAA is enabled: - dEQP-GLES31.functional.texture.multisample.samples_16.use_texture_* - dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_alpha_to_coverage Reviewed-by: Eric R. Smith <eric.smith@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35184>
This commit is contained in:
parent
130bbf20c7
commit
e77e4d5c17
1 changed files with 4 additions and 1 deletions
|
|
@ -874,7 +874,10 @@ GENX(pan_emit_fbd)(const struct pan_fb_info *fb, unsigned layer_idx,
|
|||
cfg.bound_max_y = fb->height - 1;
|
||||
|
||||
cfg.effective_tile_size = fb->tile_size;
|
||||
cfg.tie_break_rule = MALI_TIE_BREAK_RULE_MINUS_180_IN_0_OUT;
|
||||
/* Ensure we cover the samples on the edge for 16x MSAA */
|
||||
cfg.tie_break_rule = fb->nr_samples == 16 ?
|
||||
MALI_TIE_BREAK_RULE_MINUS_180_OUT_0_IN :
|
||||
MALI_TIE_BREAK_RULE_MINUS_180_IN_0_OUT;
|
||||
cfg.render_target_count = MAX2(fb->rt_count, 1);
|
||||
|
||||
/* Default to 24 bit depth if there's no surface. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue