mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
panfrost: Fix background showing when using discard
This fixes problems in a number of games, including SuperTuxKart,
OpenMW and RVGL.
v2: Use MALI_READS_ZS | 0x20 instead of MALI_WRITES_Z to match with
the blob. Keep using 0x400 | 0x20 when depth is disabled.
Closes: #2620
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
(cherry picked from commit 0dd24b381c)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5193>
This commit is contained in:
parent
1fa0c121c8
commit
57f400b013
1 changed files with 7 additions and 1 deletions
|
|
@ -742,8 +742,14 @@ panfrost_frag_shader_meta_init(struct panfrost_context *ctx,
|
|||
* related to forward-pixel kill, as per "Mali Performance 3: Is
|
||||
* EGL_BUFFER_PRESERVED a good thing?" by Peter Harris */
|
||||
|
||||
const struct pipe_depth_stencil_alpha_state *zsa = ctx->depth_stencil;
|
||||
|
||||
bool depth_enabled = fs->writes_depth ||
|
||||
(zsa && zsa->depth.enabled && zsa->depth.func != PIPE_FUNC_ALWAYS);
|
||||
|
||||
SET_BIT(fragmeta->unknown2_3, MALI_CAN_DISCARD, fs->can_discard);
|
||||
SET_BIT(fragmeta->midgard1.flags_lo, 0x400, fs->can_discard);
|
||||
SET_BIT(fragmeta->midgard1.flags_lo, 0x400, !depth_enabled && fs->can_discard);
|
||||
SET_BIT(fragmeta->midgard1.flags_lo, MALI_READS_ZS, depth_enabled && fs->can_discard);
|
||||
|
||||
panfrost_frag_meta_rasterizer_update(ctx, fragmeta);
|
||||
panfrost_frag_meta_zsa_update(ctx, fragmeta);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue