pvr: implement VK_EXT_depth_clip_enable

Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412>
This commit is contained in:
Frank Binns 2024-04-11 10:22:38 +01:00 committed by Marge Bot
parent fb1f900537
commit 6b00301c04
3 changed files with 19 additions and 3 deletions

View file

@ -604,7 +604,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_depth_bias_control DONE (anv, hk, lvp, nvk, panvk, radv, vn)
VK_EXT_depth_clamp_control DONE (anv, hasvk, nvk, radv, vn)
VK_EXT_depth_clip_control DONE (anv, hasvk, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_depth_clip_enable DONE (anv, hasvk, hk, lvp, nvk, panvk, radv, tu, v3dv/vc7+, vn)
VK_EXT_depth_clip_enable DONE (anv, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv/vc7+, vn)
VK_EXT_depth_range_unrestricted DONE (anv/gen20+, nvk, radv, lvp, vn)
VK_EXT_descriptor_buffer DONE (anv, lvp, nvk, radv, tu)
VK_EXT_device_address_binding_report DONE (radv, tu)

View file

@ -5532,10 +5532,22 @@ static void pvr_setup_ppp_control(struct pvr_cmd_buffer *const cmd_buffer)
else
control.flatshade_vtx = ROGUE_TA_FLATSHADE_VTX_VERTEX_0;
if (dynamic_state->rs.depth_clamp_enable)
switch (dynamic_state->rs.depth_clip_enable) {
case VK_MESA_DEPTH_CLIP_ENABLE_FALSE:
control.clip_mode = ROGUE_TA_CLIP_MODE_NO_FRONT_OR_REAR;
else
break;
case VK_MESA_DEPTH_CLIP_ENABLE_TRUE:
control.clip_mode = ROGUE_TA_CLIP_MODE_FRONT_REAR;
break;
case VK_MESA_DEPTH_CLIP_ENABLE_NOT_CLAMP:
if (dynamic_state->rs.depth_clamp_enable)
control.clip_mode = ROGUE_TA_CLIP_MODE_NO_FRONT_OR_REAR;
else
control.clip_mode = ROGUE_TA_CLIP_MODE_FRONT_REAR;
break;
}
/* +--- FrontIsCCW?
* | +--- Cull Front?

View file

@ -198,6 +198,7 @@ static void pvr_physical_device_get_supported_extensions(
.EXT_color_write_enable = true,
.EXT_custom_border_color = true,
.EXT_depth_clamp_zero_one = true,
.EXT_depth_clip_enable = true,
.EXT_extended_dynamic_state = true,
.EXT_external_memory_dma_buf = true,
.EXT_host_query_reset = true,
@ -339,6 +340,9 @@ static void pvr_physical_device_get_supported_features(
/* VK_EXT_custom_border_color */
.customBorderColors = true,
/* VK_EXT_depth_clip_enable */
.depthClipEnable = true,
};
}