mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-10 03:28:18 +02:00
tu: handle DS_DEPTH_BOUNDS_TEST_BOUNDS state under TU_DYNAMIC_STATE_RB_DEPTH_CNTL
MESA_VK_DYNAMIC_DS_DEPTH_BOUNDS_TEST_BOUNDS state should be emitted as part of TU_DYNAMIC_STATE_RB_DEPTH_CNTL along with other depth state, and not as part of dynamic stencil state. Signed-off-by: Zan Dobersek <zdobersek@igalia.com> Fixes:979cf7bac0("tu: Merge depth/stencil draw states") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39323> (cherry picked from commit3cb4776ede)
This commit is contained in:
parent
6c6ed2a9e6
commit
cfdaa05349
2 changed files with 10 additions and 8 deletions
|
|
@ -2614,7 +2614,7 @@
|
|||
"description": "tu: handle DS_DEPTH_BOUNDS_TEST_BOUNDS state under TU_DYNAMIC_STATE_RB_DEPTH_CNTL",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "979cf7bac04fd833c13407b98851e7a4f15d8d33",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -3556,7 +3556,6 @@ static const enum mesa_vk_dynamic_graphics_state tu_ds_state[] = {
|
|||
MESA_VK_DYNAMIC_DS_STENCIL_COMPARE_MASK,
|
||||
MESA_VK_DYNAMIC_DS_STENCIL_WRITE_MASK,
|
||||
MESA_VK_DYNAMIC_DS_STENCIL_REFERENCE,
|
||||
MESA_VK_DYNAMIC_DS_DEPTH_BOUNDS_TEST_BOUNDS,
|
||||
};
|
||||
|
||||
template <chip CHIP>
|
||||
|
|
@ -3565,7 +3564,7 @@ tu6_ds_size(struct tu_device *dev,
|
|||
const struct vk_depth_stencil_state *ds,
|
||||
const struct vk_render_pass_state *rp)
|
||||
{
|
||||
return 13;
|
||||
return 10;
|
||||
}
|
||||
|
||||
template <chip CHIP>
|
||||
|
|
@ -3615,10 +3614,6 @@ tu6_emit_ds(struct tu_cs *cs,
|
|||
tu_cs_emit_regs(cs, A6XX_RB_STENCIL_REF_CNTL(
|
||||
.ref = ds->stencil.front.reference,
|
||||
.bfref = ds->stencil.back.reference));
|
||||
|
||||
tu_cs_emit_regs(cs,
|
||||
A6XX_RB_DEPTH_BOUND_MIN(ds->depth.bounds_test.min),
|
||||
A6XX_RB_DEPTH_BOUND_MAX(ds->depth.bounds_test.max));
|
||||
}
|
||||
|
||||
static const enum mesa_vk_dynamic_graphics_state tu_rb_depth_cntl_state[] = {
|
||||
|
|
@ -3626,6 +3621,7 @@ static const enum mesa_vk_dynamic_graphics_state tu_rb_depth_cntl_state[] = {
|
|||
MESA_VK_DYNAMIC_DS_DEPTH_WRITE_ENABLE,
|
||||
MESA_VK_DYNAMIC_DS_DEPTH_COMPARE_OP,
|
||||
MESA_VK_DYNAMIC_DS_DEPTH_BOUNDS_TEST_ENABLE,
|
||||
MESA_VK_DYNAMIC_DS_DEPTH_BOUNDS_TEST_BOUNDS,
|
||||
MESA_VK_DYNAMIC_RS_DEPTH_CLAMP_ENABLE,
|
||||
};
|
||||
|
||||
|
|
@ -3636,7 +3632,7 @@ tu6_rb_depth_cntl_size(struct tu_device *dev,
|
|||
const struct vk_render_pass_state *rp,
|
||||
const struct vk_rasterization_state *rs)
|
||||
{
|
||||
return 4;
|
||||
return 7;
|
||||
}
|
||||
|
||||
template <chip CHIP>
|
||||
|
|
@ -3676,9 +3672,15 @@ tu6_emit_rb_depth_cntl(struct tu_cs *cs,
|
|||
.o_depth_01_clamp_en = CHIP >= A8XX,
|
||||
));
|
||||
tu_cs_emit_regs(cs, GRAS_SU_DEPTH_CNTL(CHIP, depth_test));
|
||||
tu_cs_emit_regs(cs,
|
||||
A6XX_RB_DEPTH_BOUND_MIN(ds->depth.bounds_test.min),
|
||||
A6XX_RB_DEPTH_BOUND_MAX(ds->depth.bounds_test.max));
|
||||
} else {
|
||||
tu_cs_emit_regs(cs, A6XX_RB_DEPTH_CNTL());
|
||||
tu_cs_emit_regs(cs, GRAS_SU_DEPTH_CNTL(CHIP));
|
||||
tu_cs_emit_regs(cs,
|
||||
A6XX_RB_DEPTH_BOUND_MIN(),
|
||||
A6XX_RB_DEPTH_BOUND_MAX());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue