Module: Mesa Branch: master Commit: f758b1a25bff6ce33abc5e23190503fb22c5e8bf URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f758b1a25bff6ce33abc5e23190503fb22c5e8bf
Author: Alejandro PiƱeiro <[email protected]> Date: Tue Feb 9 13:12:03 2021 +0100 v3dv: support for depthBiasClamp Gets tests like the following working: dEQP-VK.dynamic_state.rs_state.depth_bias_clamp Reviewed-by: Iago Toral Quiroga <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8928> --- src/broadcom/vulkan/v3dv_cmd_buffer.c | 3 +++ src/broadcom/vulkan/v3dv_device.c | 2 +- src/broadcom/vulkan/v3dv_pipeline.c | 2 ++ src/broadcom/vulkan/v3dv_private.h | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/broadcom/vulkan/v3dv_cmd_buffer.c b/src/broadcom/vulkan/v3dv_cmd_buffer.c index e390305b218..26b0daed941 100644 --- a/src/broadcom/vulkan/v3dv_cmd_buffer.c +++ b/src/broadcom/vulkan/v3dv_cmd_buffer.c @@ -53,6 +53,7 @@ const struct v3dv_dynamic_state default_dynamic_state = { .blend_constants = { 0.0f, 0.0f, 0.0f, 0.0f }, .depth_bias = { .constant_factor = 0.0f, + .depth_bias_clamp = 0.0f, .slope_factor = 0.0f, }, .line_width = 1.0f, @@ -3481,6 +3482,7 @@ emit_depth_bias(struct v3dv_cmd_buffer *cmd_buffer) bias.depth_offset_units = dynamic->depth_bias.constant_factor; if (pipeline->depth_bias.is_z16) bias.depth_offset_units *= 256.0f; + bias.limit = dynamic->depth_bias.depth_bias_clamp; } cmd_buffer->state.dirty &= ~V3DV_CMD_DIRTY_DEPTH_BIAS; @@ -4693,6 +4695,7 @@ v3dv_CmdSetDepthBias(VkCommandBuffer commandBuffer, V3DV_FROM_HANDLE(v3dv_cmd_buffer, cmd_buffer, commandBuffer); cmd_buffer->state.dynamic.depth_bias.constant_factor = depthBiasConstantFactor; + cmd_buffer->state.dynamic.depth_bias.depth_bias_clamp = depthBiasClamp; cmd_buffer->state.dynamic.depth_bias.slope_factor = depthBiasSlopeFactor; cmd_buffer->state.dirty |= V3DV_CMD_DIRTY_DEPTH_BIAS; } diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index 3b254b7ea18..c3cee0fc4d0 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -847,7 +847,7 @@ v3dv_GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, .multiDrawIndirect = false, .drawIndirectFirstInstance = true, .depthClamp = false, - .depthBiasClamp = false, + .depthBiasClamp = true, .fillModeNonSolid = true, .depthBounds = false, /* Only available since V3D 4.3.16.2 */ .wideLines = true, diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c index 2895a885e9a..2d623625f1e 100644 --- a/src/broadcom/vulkan/v3dv_pipeline.c +++ b/src/broadcom/vulkan/v3dv_pipeline.c @@ -2123,6 +2123,8 @@ pipeline_init_dynamic_state( !(dynamic_states & V3DV_DYNAMIC_DEPTH_BIAS)) { dynamic->depth_bias.constant_factor = pRasterizationState->depthBiasConstantFactor; + dynamic->depth_bias.depth_bias_clamp = + pRasterizationState->depthBiasClamp; dynamic->depth_bias.slope_factor = pRasterizationState->depthBiasSlopeFactor; } diff --git a/src/broadcom/vulkan/v3dv_private.h b/src/broadcom/vulkan/v3dv_private.h index 93239721ccc..bf81d76acf0 100644 --- a/src/broadcom/vulkan/v3dv_private.h +++ b/src/broadcom/vulkan/v3dv_private.h @@ -724,6 +724,7 @@ struct v3dv_dynamic_state { struct { float constant_factor; + float depth_bias_clamp; float slope_factor; } depth_bias; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
