venus: fix pipeline derivatives

This was unexpected dropped in the initial GPL impl.

Fixes: a65ac274ac ("venus: Do pipeline fixes for VK_EXT_graphics_pipeline_library")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27054>
(cherry picked from commit f713b17a16)
This commit is contained in:
Yiwei Zhang 2024-01-12 15:54:59 -08:00 committed by Eric Engestrom
parent 725541c326
commit 287e146d7e
2 changed files with 13 additions and 1 deletions

View file

@ -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

View file

@ -1119,6 +1119,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.base_pipeline_handle = true;
*out_fix_desc = (struct vn_graphics_pipeline_fix_desc) {
.erase = {
/* clang-format off