mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
vulkan: Add state for extraPrimitiveOverestimationSize
Fixes: 13c422e1b2 ("anv: toggle on EXT_extended_dynamic_state3")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19817>
This commit is contained in:
parent
fa99fc3491
commit
b172fd62f5
2 changed files with 25 additions and 0 deletions
|
|
@ -489,6 +489,7 @@ vk_rasterization_state_init(struct vk_rasterization_state *rs,
|
|||
*rs = (struct vk_rasterization_state) {
|
||||
.rasterizer_discard_enable = false,
|
||||
.conservative_mode = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
|
||||
.extra_primitive_overestimation_size = 0.0f,
|
||||
.rasterization_order_amd = VK_RASTERIZATION_ORDER_STRICT_AMD,
|
||||
.provoking_vertex = VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,
|
||||
.line.mode = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
|
||||
|
|
@ -535,6 +536,8 @@ vk_rasterization_state_init(struct vk_rasterization_state *rs,
|
|||
const VkPipelineRasterizationConservativeStateCreateInfoEXT *rcs_info =
|
||||
(const VkPipelineRasterizationConservativeStateCreateInfoEXT *)ext;
|
||||
rs->conservative_mode = rcs_info->conservativeRasterizationMode;
|
||||
rs->extra_primitive_overestimation_size =
|
||||
rcs_info->extraPrimitiveOverestimationSize;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1662,6 +1665,8 @@ vk_dynamic_graphics_state_copy(struct vk_dynamic_graphics_state *dst,
|
|||
COPY_IF_SET(RS_CULL_MODE, rs.cull_mode);
|
||||
COPY_IF_SET(RS_FRONT_FACE, rs.front_face);
|
||||
COPY_IF_SET(RS_CONSERVATIVE_MODE, rs.conservative_mode);
|
||||
COPY_IF_SET(RS_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE,
|
||||
rs.extra_primitive_overestimation_size);
|
||||
COPY_IF_SET(RS_RASTERIZATION_ORDER_AMD, rs.rasterization_order_amd);
|
||||
COPY_IF_SET(RS_PROVOKING_VERTEX, rs.provoking_vertex);
|
||||
COPY_IF_SET(RS_RASTERIZATION_STREAM, rs.rasterization_stream);
|
||||
|
|
@ -2042,6 +2047,19 @@ vk_common_CmdSetConservativeRasterizationModeEXT(
|
|||
conservativeRasterizationMode);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
vk_common_CmdSetExtraPrimitiveOverestimationSizeEXT(
|
||||
VkCommandBuffer commandBuffer,
|
||||
float extraPrimitiveOverestimationSize)
|
||||
{
|
||||
VK_FROM_HANDLE(vk_command_buffer, cmd, commandBuffer);
|
||||
struct vk_dynamic_graphics_state *dyn = &cmd->dynamic_graphics_state;
|
||||
|
||||
SET_DYN_VALUE(dyn, RS_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE,
|
||||
rs.extra_primitive_overestimation_size,
|
||||
extraPrimitiveOverestimationSize);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
vk_common_CmdSetProvokingVertexModeEXT(VkCommandBuffer commandBuffer,
|
||||
VkProvokingVertexModeEXT provokingVertexMode)
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ enum mesa_vk_dynamic_graphics_state {
|
|||
MESA_VK_DYNAMIC_RS_CULL_MODE,
|
||||
MESA_VK_DYNAMIC_RS_FRONT_FACE,
|
||||
MESA_VK_DYNAMIC_RS_CONSERVATIVE_MODE,
|
||||
MESA_VK_DYNAMIC_RS_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE,
|
||||
MESA_VK_DYNAMIC_RS_RASTERIZATION_ORDER_AMD,
|
||||
MESA_VK_DYNAMIC_RS_PROVOKING_VERTEX,
|
||||
MESA_VK_DYNAMIC_RS_RASTERIZATION_STREAM,
|
||||
|
|
@ -271,6 +272,12 @@ struct vk_rasterization_state {
|
|||
*/
|
||||
VkConservativeRasterizationModeEXT conservative_mode;
|
||||
|
||||
/** VkPipelineRasterizationConservativeStateCreateInfoEXT::extraPrimitiveOverestimationSize
|
||||
*
|
||||
* MESA_VK_DYNAMIC_RS_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE
|
||||
*/
|
||||
float extra_primitive_overestimation_size;
|
||||
|
||||
/** VkPipelineRasterizationStateRasterizationOrderAMD::rasterizationOrder */
|
||||
VkRasterizationOrderAMD rasterization_order_amd;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue