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 f713b17a16d7899ef78f85b91c14a46b9f91b3c8)
This commit is contained in:
Yiwei Zhang 2024-01-12 15:54:59 -08:00 committed by Eric Engestrom
parent 95167b212e
commit 252a87e77c
2 changed files with 13 additions and 1 deletions

View file

@ -94,7 +94,7 @@
"description": "venus: fix pipeline derivatives", "description": "venus: fix pipeline derivatives",
"nominated": true, "nominated": true,
"nomination_type": 1, "nomination_type": 1,
"resolution": 0, "resolution": 1,
"main_sha": null, "main_sha": null,
"because_sha": "a65ac274acf250a8f4a5abb030c46b572c3552f4", "because_sha": "a65ac274acf250a8f4a5abb030c46b572c3552f4",
"notes": null "notes": null

View file

@ -1221,6 +1221,18 @@ vn_graphics_pipeline_state_fill(
state->gpl.fragment_output = true; 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) { *out_fix_desc = (struct vn_graphics_pipeline_fix_desc) {
.self = { .self = {
/* clang-format off */ /* clang-format off */