vk,lvp,tu,radv,anv: Add common vk_*_pipeline_create_flags() helper

And replace the various homegrown or copy-pasted helpers in drivers.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25436>
This commit is contained in:
Connor Abbott
2023-09-28 12:31:18 +02:00
committed by Marge Bot
parent cac194ff38
commit e6f5d7222c
11 changed files with 81 additions and 114 deletions
+51
View File
@@ -25,6 +25,7 @@
#define VK_PIPELINE_H
#include "vulkan/vulkan_core.h"
#include "vk_util.h"
#include <stdbool.h>
@@ -88,6 +89,56 @@ vk_pipeline_robustness_state_fill(const struct vk_device *device,
const void *pipeline_pNext,
const void *shader_stage_pNext);
static inline VkPipelineCreateFlags2KHR
vk_compute_pipeline_create_flags(const VkComputePipelineCreateInfo *info)
{
const VkPipelineCreateFlags2CreateInfoKHR *flags2 =
vk_find_struct_const(info->pNext,
PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR);
if (flags2)
return flags2->flags;
else
return info->flags;
}
static inline VkPipelineCreateFlags2KHR
vk_graphics_pipeline_create_flags(const VkGraphicsPipelineCreateInfo *info)
{
const VkPipelineCreateFlags2CreateInfoKHR *flags2 =
vk_find_struct_const(info->pNext,
PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR);
if (flags2)
return flags2->flags;
else
return info->flags;
}
static inline VkPipelineCreateFlags2KHR
vk_rt_pipeline_create_flags(const VkRayTracingPipelineCreateInfoKHR *info)
{
const VkPipelineCreateFlags2CreateInfoKHR *flags2 =
vk_find_struct_const(info->pNext,
PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR);
if (flags2)
return flags2->flags;
else
return info->flags;
}
#ifdef VK_ENABLE_BETA_EXTENSIONS
static inline VkPipelineCreateFlags2KHR
vk_graph_pipeline_create_flags(const VkExecutionGraphPipelineCreateInfoAMDX *info)
{
const VkPipelineCreateFlags2CreateInfoKHR *flags2 =
vk_find_struct_const(info->pNext,
PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR);
if (flags2)
return flags2->flags;
else
return info->flags;
}
#endif
#ifdef __cplusplus
}
#endif