diff --git a/.pick_status.json b/.pick_status.json index e0e08dee189..b54414b58e3 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -94,7 +94,7 @@ "description": "venus: fix pipeline derivatives", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "a65ac274acf250a8f4a5abb030c46b572c3552f4", "notes": null diff --git a/src/virtio/vulkan/vn_pipeline.c b/src/virtio/vulkan/vn_pipeline.c index 32244eda7f5..5095fcb7568 100644 --- a/src/virtio/vulkan/vn_pipeline.c +++ b/src/virtio/vulkan/vn_pipeline.c @@ -1221,6 +1221,18 @@ vn_graphics_pipeline_state_fill( state->gpl.fragment_output = true; } + /* Pipeline Derivatives + * + * VUID-VkGraphicsPipelineCreateInfo-flags-07984 + * + * If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and + * basePipelineIndex is -1, basePipelineHandle must be a valid graphics + * VkPipeline handle + */ + if ((info->flags & VK_PIPELINE_CREATE_DERIVATIVE_BIT) && + info->basePipelineIndex == -1) + valid.self.base_pipeline_handle = true; + *out_fix_desc = (struct vn_graphics_pipeline_fix_desc) { .self = { /* clang-format off */