radv: emit depth clamp enable as part of the viewport state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36852>
This commit is contained in:
committed by
Marge Bot
parent
9c6f37c533
commit
2733b2953e
@@ -3275,6 +3275,9 @@ radv_emit_viewport(struct radv_cmd_buffer *cmd_buffer)
|
||||
radeon_emit(fui(zmin));
|
||||
radeon_emit(fui(zmax));
|
||||
}
|
||||
|
||||
radeon_set_context_reg(R_028064_DB_VIEWPORT_CONTROL,
|
||||
S_028064_DISABLE_VIEWPORT_CLAMP(depth_clamp_mode == RADV_DEPTH_CLAMP_MODE_DISABLED));
|
||||
} else {
|
||||
radeon_set_context_reg_seq(R_02843C_PA_CL_VPORT_XSCALE, d->vk.vp.viewport_count * 6);
|
||||
|
||||
@@ -3300,6 +3303,9 @@ radv_emit_viewport(struct radv_cmd_buffer *cmd_buffer)
|
||||
radeon_emit(fui(zmin));
|
||||
radeon_emit(fui(zmax));
|
||||
}
|
||||
|
||||
radeon_set_context_reg(R_02800C_DB_RENDER_OVERRIDE,
|
||||
S_02800C_DISABLE_VIEWPORT_CLAMP(depth_clamp_mode == RADV_DEPTH_CLAMP_MODE_DISABLED));
|
||||
}
|
||||
|
||||
radeon_end();
|
||||
@@ -3596,25 +3602,6 @@ radv_emit_patch_control_points(struct radv_cmd_buffer *cmd_buffer)
|
||||
radeon_end();
|
||||
}
|
||||
|
||||
static void
|
||||
radv_emit_depth_clamp_enable(struct radv_cmd_buffer *cmd_buffer)
|
||||
{
|
||||
const struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
|
||||
enum radv_depth_clamp_mode mode = radv_get_depth_clamp_mode(cmd_buffer);
|
||||
|
||||
radeon_begin(cmd_buffer->cs);
|
||||
if (pdev->info.gfx_level >= GFX12) {
|
||||
radeon_set_context_reg(R_028064_DB_VIEWPORT_CONTROL,
|
||||
S_028064_DISABLE_VIEWPORT_CLAMP(mode == RADV_DEPTH_CLAMP_MODE_DISABLED));
|
||||
} else {
|
||||
radeon_set_context_reg(R_02800C_DB_RENDER_OVERRIDE,
|
||||
S_02800C_DISABLE_VIEWPORT_CLAMP(mode == RADV_DEPTH_CLAMP_MODE_DISABLED));
|
||||
}
|
||||
radeon_end();
|
||||
}
|
||||
|
||||
static void
|
||||
radv_emit_rasterization_samples(struct radv_cmd_buffer *cmd_buffer)
|
||||
{
|
||||
@@ -5453,9 +5440,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_DEPTH_CLAMP_ENABLE | RADV_DYNAMIC_DEPTH_CLIP_ENABLE))
|
||||
radv_emit_depth_clamp_enable(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);
|
||||
|
||||
Reference in New Issue
Block a user