mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-11 14:30:26 +01:00
radv: add a new dirty bit for the rast samples state
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
ea6cb5e7bf
commit
3d1efbce98
2 changed files with 12 additions and 6 deletions
|
|
@ -3572,7 +3572,7 @@ radv_emit_patch_control_points(struct radv_cmd_buffer *cmd_buffer)
|
|||
}
|
||||
|
||||
static void
|
||||
radv_emit_rasterization_samples(struct radv_cmd_buffer *cmd_buffer)
|
||||
radv_emit_rast_samples_state(struct radv_cmd_buffer *cmd_buffer)
|
||||
{
|
||||
struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
|
|
@ -3632,6 +3632,8 @@ radv_emit_rasterization_samples(struct radv_cmd_buffer *cmd_buffer)
|
|||
radeon_set_context_reg(R_028A4C_PA_SC_MODE_CNTL_1, pa_sc_mode_cntl_1);
|
||||
radeon_end();
|
||||
}
|
||||
|
||||
cmd_buffer->state.dirty &= ~RADV_CMD_DIRTY_RAST_SAMPLES_STATE;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -5402,10 +5404,6 @@ radv_cmd_buffer_flush_dynamic_state(struct radv_cmd_buffer *cmd_buffer, const ui
|
|||
if (states & RADV_DYNAMIC_TESS_DOMAIN_ORIGIN)
|
||||
radv_emit_tess_domain_origin(cmd_buffer);
|
||||
|
||||
if (states & (RADV_DYNAMIC_RASTERIZATION_SAMPLES | RADV_DYNAMIC_LINE_RASTERIZATION_MODE | RADV_DYNAMIC_POLYGON_MODE |
|
||||
RADV_DYNAMIC_SAMPLE_LOCATIONS_ENABLE))
|
||||
radv_emit_rasterization_samples(cmd_buffer);
|
||||
|
||||
/* RADV_DYNAMIC_ATTACHMENT_FEEDBACK_LOOP_ENABLE is handled by radv_emit_db_shader_control. */
|
||||
|
||||
cmd_buffer->state.dirty_dynamic &= ~states;
|
||||
|
|
@ -11460,6 +11458,10 @@ radv_validate_dynamic_states(struct radv_cmd_buffer *cmd_buffer, uint64_t dynami
|
|||
|
||||
if (dynamic_states & RADV_DYNAMIC_FRAGMENT_SHADING_RATE)
|
||||
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_FSR_STATE;
|
||||
|
||||
if (dynamic_states & (RADV_DYNAMIC_RASTERIZATION_SAMPLES | RADV_DYNAMIC_LINE_RASTERIZATION_MODE |
|
||||
RADV_DYNAMIC_POLYGON_MODE | RADV_DYNAMIC_SAMPLE_LOCATIONS_ENABLE))
|
||||
cmd_buffer->state.dirty |= RADV_CMD_DIRTY_RAST_SAMPLES_STATE;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -11576,6 +11578,9 @@ radv_emit_all_graphics_states(struct radv_cmd_buffer *cmd_buffer, const struct r
|
|||
if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_FSR_STATE)
|
||||
radv_emit_fsr_state(cmd_buffer);
|
||||
|
||||
if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_RAST_SAMPLES_STATE)
|
||||
radv_emit_rast_samples_state(cmd_buffer);
|
||||
|
||||
if (gfx12_emit_alt_hiz_wa)
|
||||
radv_gfx12_emit_alt_hiz_wa(cmd_buffer);
|
||||
|
||||
|
|
|
|||
|
|
@ -109,7 +109,8 @@ enum radv_cmd_dirty_bits {
|
|||
RADV_CMD_DIRTY_BINNING_STATE = 1ull << 23,
|
||||
RADV_CMD_DIRTY_NGGC_STATE = 1ull << 24,
|
||||
RADV_CMD_DIRTY_FSR_STATE = 1ull << 25,
|
||||
RADV_CMD_DIRTY_ALL = (1ull << 26) - 1,
|
||||
RADV_CMD_DIRTY_RAST_SAMPLES_STATE = 1ull << 26,
|
||||
RADV_CMD_DIRTY_ALL = (1ull << 27) - 1,
|
||||
|
||||
RADV_CMD_DIRTY_SHADER_QUERY = RADV_CMD_DIRTY_NGG_STATE | RADV_CMD_DIRTY_TASK_STATE,
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue