mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 05:08:08 +02:00
radv: only re-emit needed states when PS inner coverage changes
It's emitted as part of the MSAA state but re-emitting the NGG culling state isn't necessary because ps.reads_fully_covered isn't used. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36875>
This commit is contained in:
parent
fae90ba171
commit
c4c44187f9
1 changed files with 3 additions and 5 deletions
|
|
@ -7506,9 +7506,8 @@ radv_bind_fragment_shader(struct radv_cmd_buffer *cmd_buffer, const struct radv_
|
|||
if (radv_get_user_sgpr_info(ps, AC_UD_PS_STATE)->sgpr_idx != -1)
|
||||
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_FS_STATE;
|
||||
|
||||
/* Re-emit the conservative rasterization mode because inner coverage is different. */
|
||||
if (!previous_ps || previous_ps->info.ps.reads_fully_covered != ps->info.ps.reads_fully_covered)
|
||||
cmd_buffer->state.dirty_dynamic |= RADV_DYNAMIC_CONSERVATIVE_RAST_MODE;
|
||||
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_MSAA_STATE;
|
||||
|
||||
if (gfx_level >= GFX10_3 && (!previous_ps || previous_ps->info.ps.force_sample_iter_shading_rate !=
|
||||
ps->info.ps.force_sample_iter_shading_rate))
|
||||
|
|
@ -7586,9 +7585,8 @@ radv_bind_shader(struct radv_cmd_buffer *cmd_buffer, struct radv_shader *shader,
|
|||
cmd_buffer->state.can_use_simple_vertex_input = false;
|
||||
break;
|
||||
case MESA_SHADER_FRAGMENT:
|
||||
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_DB_SHADER_CONTROL;
|
||||
cmd_buffer->state.dirty_dynamic |= RADV_DYNAMIC_CONSERVATIVE_RAST_MODE | RADV_DYNAMIC_RASTERIZATION_SAMPLES |
|
||||
RADV_DYNAMIC_FRAGMENT_SHADING_RATE;
|
||||
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_DB_SHADER_CONTROL | RADV_CMD_DIRTY_MSAA_STATE;
|
||||
cmd_buffer->state.dirty_dynamic |= RADV_DYNAMIC_RASTERIZATION_SAMPLES | RADV_DYNAMIC_FRAGMENT_SHADING_RATE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue