mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
radv: translate stencil op earlier
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37022>
This commit is contained in:
parent
a9cae4d43c
commit
f3e0d4a60b
2 changed files with 11 additions and 13 deletions
|
|
@ -8782,7 +8782,8 @@ radv_CmdSetStencilOp(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
|
|||
VkStencilOp depthFailOp, VkCompareOp compareOp)
|
||||
{
|
||||
VK_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
radv_cmd_set_stencil_op(cmd_buffer, faceMask, failOp, passOp, depthFailOp, compareOp);
|
||||
radv_cmd_set_stencil_op(cmd_buffer, faceMask, radv_translate_stencil_op(failOp), radv_translate_stencil_op(passOp),
|
||||
radv_translate_stencil_op(depthFailOp), compareOp);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
|
|
@ -11414,12 +11415,9 @@ radv_emit_depth_stencil_state(struct radv_cmd_buffer *cmd_buffer)
|
|||
S_028800_STENCILFUNC(ds.stencil.front.op.compare) | S_028800_STENCILFUNC_BF(ds.stencil.back.op.compare);
|
||||
|
||||
const uint32_t db_stencil_control =
|
||||
S_02842C_STENCILFAIL(radv_translate_stencil_op(ds.stencil.front.op.fail)) |
|
||||
S_02842C_STENCILZPASS(radv_translate_stencil_op(ds.stencil.front.op.pass)) |
|
||||
S_02842C_STENCILZFAIL(radv_translate_stencil_op(ds.stencil.front.op.depth_fail)) |
|
||||
S_02842C_STENCILFAIL_BF(radv_translate_stencil_op(ds.stencil.back.op.fail)) |
|
||||
S_02842C_STENCILZPASS_BF(radv_translate_stencil_op(ds.stencil.back.op.pass)) |
|
||||
S_02842C_STENCILZFAIL_BF(radv_translate_stencil_op(ds.stencil.back.op.depth_fail));
|
||||
S_02842C_STENCILFAIL(ds.stencil.front.op.fail) | S_02842C_STENCILZPASS(ds.stencil.front.op.pass) |
|
||||
S_02842C_STENCILZFAIL(ds.stencil.front.op.depth_fail) | S_02842C_STENCILFAIL_BF(ds.stencil.back.op.fail) |
|
||||
S_02842C_STENCILZPASS_BF(ds.stencil.back.op.pass) | S_02842C_STENCILZFAIL_BF(ds.stencil.back.op.depth_fail);
|
||||
|
||||
const uint32_t depth_bounds_min = fui(ds.depth.bounds_test.min);
|
||||
const uint32_t depth_bounds_max = fui(ds.depth.bounds_test.max);
|
||||
|
|
|
|||
|
|
@ -1066,14 +1066,14 @@ radv_pipeline_init_dynamic_state(const struct radv_device *device, struct radv_g
|
|||
|
||||
if (states & RADV_DYNAMIC_STENCIL_OP) {
|
||||
dynamic->vk.ds.stencil.front.op.compare = state->ds->stencil.front.op.compare;
|
||||
dynamic->vk.ds.stencil.front.op.fail = state->ds->stencil.front.op.fail;
|
||||
dynamic->vk.ds.stencil.front.op.pass = state->ds->stencil.front.op.pass;
|
||||
dynamic->vk.ds.stencil.front.op.depth_fail = state->ds->stencil.front.op.depth_fail;
|
||||
dynamic->vk.ds.stencil.front.op.fail = radv_translate_stencil_op(state->ds->stencil.front.op.fail);
|
||||
dynamic->vk.ds.stencil.front.op.pass = radv_translate_stencil_op(state->ds->stencil.front.op.pass);
|
||||
dynamic->vk.ds.stencil.front.op.depth_fail = radv_translate_stencil_op(state->ds->stencil.front.op.depth_fail);
|
||||
|
||||
dynamic->vk.ds.stencil.back.op.compare = state->ds->stencil.back.op.compare;
|
||||
dynamic->vk.ds.stencil.back.op.fail = state->ds->stencil.back.op.fail;
|
||||
dynamic->vk.ds.stencil.back.op.pass = state->ds->stencil.back.op.pass;
|
||||
dynamic->vk.ds.stencil.back.op.depth_fail = state->ds->stencil.back.op.depth_fail;
|
||||
dynamic->vk.ds.stencil.back.op.fail = radv_translate_stencil_op(state->ds->stencil.back.op.fail);
|
||||
dynamic->vk.ds.stencil.back.op.pass = radv_translate_stencil_op(state->ds->stencil.back.op.pass);
|
||||
dynamic->vk.ds.stencil.back.op.depth_fail = radv_translate_stencil_op(state->ds->stencil.back.op.depth_fail);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue