diff --git a/.pick_status.json b/.pick_status.json index f2e83d5d64b..8a91e6d3f85 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -121,7 +121,7 @@ "description": "lavapipe: fix dynamic patchControlPoints", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c index 2a57bdad612..ce5e6bdf976 100644 --- a/src/gallium/frontends/lavapipe/lvp_execute.c +++ b/src/gallium/frontends/lavapipe/lvp_execute.c @@ -898,13 +898,14 @@ static void handle_graphics_pipeline(struct vk_cmd_queue_entry *cmd, state->info.primitive_restart = ia->primitiveRestartEnable; } - if (pipeline->graphics_create_info.pTessellationState) { - if (!dynamic_states[conv_dynamic_state_idx(VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT)]) { + if (!dynamic_states[conv_dynamic_state_idx(VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT)]) { + if (pipeline->graphics_create_info.pTessellationState) { const VkPipelineTessellationStateCreateInfo *ts = pipeline->graphics_create_info.pTessellationState; state->patch_vertices = ts->patchControlPoints; + } else { + state->patch_vertices = 0; } - } else - state->patch_vertices = 0; + } bool halfz_changed = false; if (!pipeline->negative_one_to_one != clip_halfz) {