radv: promote VK_KHR_maintenance5 to core 1.4 API
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32432>
This commit is contained in:
committed by
Marge Bot
parent
81798d9ebe
commit
54cd43f93e
@@ -1692,7 +1692,7 @@ sqtt_CreateGraphicsPipelines(VkDevice _device, VkPipelineCache pipelineCache, ui
|
||||
if (!pipeline)
|
||||
continue;
|
||||
|
||||
const VkPipelineCreateFlagBits2KHR create_flags = vk_graphics_pipeline_create_flags(&pCreateInfos[i]);
|
||||
const VkPipelineCreateFlagBits2 create_flags = vk_graphics_pipeline_create_flags(&pCreateInfos[i]);
|
||||
if (create_flags & VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR)
|
||||
continue;
|
||||
|
||||
@@ -1769,7 +1769,7 @@ sqtt_CreateRayTracingPipelinesKHR(VkDevice _device, VkDeferredOperationKHR defer
|
||||
if (!pipeline)
|
||||
continue;
|
||||
|
||||
const VkPipelineCreateFlagBits2KHR create_flags = vk_rt_pipeline_create_flags(&pCreateInfos[i]);
|
||||
const VkPipelineCreateFlagBits2 create_flags = vk_rt_pipeline_create_flags(&pCreateInfos[i]);
|
||||
if (create_flags & VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR)
|
||||
continue;
|
||||
|
||||
|
||||
@@ -1154,7 +1154,7 @@ create_bview(struct radv_cmd_buffer *cmd_buffer, struct radv_buffer *buffer, uns
|
||||
|
||||
static void
|
||||
create_buffer_from_image(struct radv_cmd_buffer *cmd_buffer, struct radv_meta_blit2d_surf *surf,
|
||||
VkBufferUsageFlagBits2KHR usage, VkBuffer *buffer)
|
||||
VkBufferUsageFlagBits2 usage, VkBuffer *buffer)
|
||||
{
|
||||
struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
struct radv_device_memory mem;
|
||||
@@ -1165,8 +1165,8 @@ create_buffer_from_image(struct radv_cmd_buffer *cmd_buffer, struct radv_meta_bl
|
||||
&(VkBufferCreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
|
||||
.pNext =
|
||||
&(VkBufferUsageFlags2CreateInfoKHR){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR,
|
||||
&(VkBufferUsageFlags2CreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
|
||||
.usage = usage,
|
||||
},
|
||||
.flags = 0,
|
||||
@@ -1424,7 +1424,7 @@ radv_meta_buffer_to_image_cs_r32g32b32(struct radv_cmd_buffer *cmd_buffer, struc
|
||||
* image as a buffer with the same underlying memory. The compute
|
||||
* shader will copy all components separately using a R32 format.
|
||||
*/
|
||||
create_buffer_from_image(cmd_buffer, dst, VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR, &buffer);
|
||||
create_buffer_from_image(cmd_buffer, dst, VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT, &buffer);
|
||||
|
||||
create_bview(cmd_buffer, src->buffer, src->offset, src->format, &src_view);
|
||||
create_bview_for_r32g32b32(cmd_buffer, radv_buffer_from_handle(buffer), dst_offset, dst->format, &dst_view);
|
||||
@@ -1576,8 +1576,8 @@ radv_meta_image_to_image_cs_r32g32b32(struct radv_cmd_buffer *cmd_buffer, struct
|
||||
* image as a buffer with the same underlying memory. The compute
|
||||
* shader will copy all components separately using a R32 format.
|
||||
*/
|
||||
create_buffer_from_image(cmd_buffer, src, VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR, &src_buffer);
|
||||
create_buffer_from_image(cmd_buffer, dst, VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR, &dst_buffer);
|
||||
create_buffer_from_image(cmd_buffer, src, VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT, &src_buffer);
|
||||
create_buffer_from_image(cmd_buffer, dst, VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT, &dst_buffer);
|
||||
|
||||
create_bview_for_r32g32b32(cmd_buffer, radv_buffer_from_handle(src_buffer), src_offset, src->format, &src_view);
|
||||
create_bview_for_r32g32b32(cmd_buffer, radv_buffer_from_handle(dst_buffer), dst_offset, dst->format, &dst_view);
|
||||
@@ -1734,7 +1734,7 @@ radv_meta_clear_image_cs_r32g32b32(struct radv_cmd_buffer *cmd_buffer, struct ra
|
||||
* image as a buffer with the same underlying memory. The compute
|
||||
* shader will clear all components separately using a R32 format.
|
||||
*/
|
||||
create_buffer_from_image(cmd_buffer, dst, VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR, &buffer);
|
||||
create_buffer_from_image(cmd_buffer, dst, VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT, &buffer);
|
||||
|
||||
create_bview_for_r32g32b32(cmd_buffer, radv_buffer_from_handle(buffer), 0, dst->format, &dst_view);
|
||||
cleari_r32g32b32_bind_descriptors(cmd_buffer, &dst_view);
|
||||
|
||||
@@ -169,7 +169,7 @@ lower_rt_derefs(nir_shader *shader)
|
||||
*/
|
||||
struct rt_variables {
|
||||
struct radv_device *device;
|
||||
const VkPipelineCreateFlags2KHR flags;
|
||||
const VkPipelineCreateFlags2 flags;
|
||||
bool monolithic;
|
||||
|
||||
/* idx of the next shader to run in the next iteration of the main loop.
|
||||
@@ -221,8 +221,7 @@ struct rt_variables {
|
||||
};
|
||||
|
||||
static struct rt_variables
|
||||
create_rt_variables(nir_shader *shader, struct radv_device *device, const VkPipelineCreateFlags2KHR flags,
|
||||
bool monolithic)
|
||||
create_rt_variables(nir_shader *shader, struct radv_device *device, const VkPipelineCreateFlags2 flags, bool monolithic)
|
||||
{
|
||||
struct rt_variables vars = {
|
||||
.device = device,
|
||||
@@ -1696,7 +1695,7 @@ radv_build_traversal_shader(struct radv_device *device, struct radv_ray_tracing_
|
||||
struct radv_ray_tracing_stage_info *info)
|
||||
{
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
const VkPipelineCreateFlagBits2KHR create_flags = vk_rt_pipeline_create_flags(pCreateInfo);
|
||||
const VkPipelineCreateFlagBits2 create_flags = vk_rt_pipeline_create_flags(pCreateInfo);
|
||||
|
||||
/* Create the traversal shader as an intersection shader to prevent validation failures due to
|
||||
* invalid variable modes.*/
|
||||
@@ -1908,7 +1907,7 @@ radv_nir_lower_rt_abi(nir_shader *shader, const VkRayTracingPipelineCreateInfoKH
|
||||
{
|
||||
nir_function_impl *impl = nir_shader_get_entrypoint(shader);
|
||||
|
||||
const VkPipelineCreateFlagBits2KHR create_flags = vk_rt_pipeline_create_flags(pCreateInfo);
|
||||
const VkPipelineCreateFlagBits2 create_flags = vk_rt_pipeline_create_flags(pCreateInfo);
|
||||
|
||||
struct rt_variables vars = create_rt_variables(shader, device, create_flags, monolithic);
|
||||
|
||||
|
||||
@@ -280,8 +280,8 @@ radv_device_init_null_accel_struct(struct radv_device *device)
|
||||
VkBufferCreateInfo buffer_create_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
|
||||
.pNext =
|
||||
&(VkBufferUsageFlags2CreateInfoKHR){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR,
|
||||
&(VkBufferUsageFlags2CreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
|
||||
.usage = VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,
|
||||
},
|
||||
.size = size,
|
||||
|
||||
@@ -187,7 +187,7 @@ radv_BindBufferMemory2(VkDevice _device, uint32_t bindInfoCount, const VkBindBuf
|
||||
|
||||
static void
|
||||
radv_get_buffer_memory_requirements(struct radv_device *device, VkDeviceSize size, VkBufferCreateFlags flags,
|
||||
VkBufferUsageFlags2KHR usage, VkMemoryRequirements2 *pMemoryRequirements)
|
||||
VkBufferUsageFlags2 usage, VkMemoryRequirements2 *pMemoryRequirements)
|
||||
{
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
|
||||
@@ -229,11 +229,11 @@ radv_get_buffer_memory_requirements(struct radv_device *device, VkDeviceSize siz
|
||||
}
|
||||
}
|
||||
|
||||
static const VkBufferUsageFlagBits2KHR
|
||||
static const VkBufferUsageFlagBits2
|
||||
radv_get_buffer_usage_flags(const VkBufferCreateInfo *pCreateInfo)
|
||||
{
|
||||
const VkBufferUsageFlags2CreateInfoKHR *flags2 =
|
||||
vk_find_struct_const(pCreateInfo->pNext, BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR);
|
||||
const VkBufferUsageFlags2CreateInfo *flags2 =
|
||||
vk_find_struct_const(pCreateInfo->pNext, BUFFER_USAGE_FLAGS_2_CREATE_INFO);
|
||||
return flags2 ? flags2->usage : pCreateInfo->usage;
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ radv_GetDeviceBufferMemoryRequirements(VkDevice _device, const VkDeviceBufferMem
|
||||
VkMemoryRequirements2 *pMemoryRequirements)
|
||||
{
|
||||
VK_FROM_HANDLE(radv_device, device, _device);
|
||||
const VkBufferUsageFlagBits2KHR usage_flags = radv_get_buffer_usage_flags(pInfo->pCreateInfo);
|
||||
const VkBufferUsageFlagBits2 usage_flags = radv_get_buffer_usage_flags(pInfo->pCreateInfo);
|
||||
|
||||
radv_get_buffer_memory_requirements(device, pInfo->pCreateInfo->size, pInfo->pCreateInfo->flags, usage_flags,
|
||||
pMemoryRequirements);
|
||||
|
||||
@@ -7065,8 +7065,8 @@ radv_get_vgt_index_size(uint32_t type)
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
radv_CmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size,
|
||||
VkIndexType indexType)
|
||||
radv_CmdBindIndexBuffer2(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size,
|
||||
VkIndexType indexType)
|
||||
{
|
||||
VK_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
VK_FROM_HANDLE(radv_buffer, index_buffer, buffer);
|
||||
|
||||
@@ -313,9 +313,9 @@ radv_device_init_vrs_state(struct radv_device *device)
|
||||
VkBufferCreateInfo buffer_create_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
|
||||
.pNext =
|
||||
&(VkBufferUsageFlags2CreateInfoKHR){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR,
|
||||
.usage = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR,
|
||||
&(VkBufferUsageFlags2CreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
|
||||
.usage = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT,
|
||||
},
|
||||
.size = radv_image_from_handle(image)->planes[0].surface.meta_size,
|
||||
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
|
||||
@@ -1858,8 +1858,8 @@ radv_ReleaseProfilingLockKHR(VkDevice _device)
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
radv_GetDeviceImageSubresourceLayoutKHR(VkDevice device, const VkDeviceImageSubresourceInfoKHR *pInfo,
|
||||
VkSubresourceLayout2KHR *pLayout)
|
||||
radv_GetDeviceImageSubresourceLayout(VkDevice device, const VkDeviceImageSubresourceInfo *pInfo,
|
||||
VkSubresourceLayout2 *pLayout)
|
||||
{
|
||||
UNUSED VkResult result;
|
||||
VkImage image;
|
||||
@@ -1868,7 +1868,7 @@ radv_GetDeviceImageSubresourceLayoutKHR(VkDevice device, const VkDeviceImageSubr
|
||||
radv_image_create(device, &(struct radv_image_create_info){.vk_info = pInfo->pCreateInfo}, NULL, &image, true);
|
||||
assert(result == VK_SUCCESS);
|
||||
|
||||
radv_GetImageSubresourceLayout2KHR(device, image, pInfo->pSubresource, pLayout);
|
||||
radv_GetImageSubresourceLayout2(device, image, pInfo->pSubresource, pLayout);
|
||||
|
||||
radv_DestroyImage(device, image, NULL);
|
||||
}
|
||||
|
||||
@@ -1795,8 +1795,8 @@ radv_BindImageMemory2(VkDevice _device, uint32_t bindInfoCount, const VkBindImag
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
radv_GetImageSubresourceLayout2KHR(VkDevice _device, VkImage _image, const VkImageSubresource2KHR *pSubresource,
|
||||
VkSubresourceLayout2KHR *pLayout)
|
||||
radv_GetImageSubresourceLayout2(VkDevice _device, VkImage _image, const VkImageSubresource2 *pSubresource,
|
||||
VkSubresourceLayout2 *pLayout)
|
||||
{
|
||||
VK_FROM_HANDLE(radv_image, image, _image);
|
||||
VK_FROM_HANDLE(radv_device, device, _device);
|
||||
|
||||
@@ -49,7 +49,7 @@ radv_shader_need_indirect_descriptor_sets(const struct radv_shader *shader)
|
||||
}
|
||||
|
||||
bool
|
||||
radv_pipeline_capture_shaders(const struct radv_device *device, VkPipelineCreateFlags2KHR flags)
|
||||
radv_pipeline_capture_shaders(const struct radv_device *device, VkPipelineCreateFlags2 flags)
|
||||
{
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
const struct radv_instance *instance = radv_physical_device_instance(pdev);
|
||||
@@ -59,7 +59,7 @@ radv_pipeline_capture_shaders(const struct radv_device *device, VkPipelineCreate
|
||||
}
|
||||
|
||||
bool
|
||||
radv_pipeline_capture_shader_stats(const struct radv_device *device, VkPipelineCreateFlags2KHR flags)
|
||||
radv_pipeline_capture_shader_stats(const struct radv_device *device, VkPipelineCreateFlags2 flags)
|
||||
{
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
const struct radv_instance *instance = radv_physical_device_instance(pdev);
|
||||
@@ -137,7 +137,7 @@ radv_DestroyPipeline(VkDevice _device, VkPipeline _pipeline, const VkAllocationC
|
||||
|
||||
struct radv_shader_stage_key
|
||||
radv_pipeline_get_shader_key(const struct radv_device *device, const VkPipelineShaderStageCreateInfo *stage,
|
||||
VkPipelineCreateFlags2KHR flags, const void *pNext)
|
||||
VkPipelineCreateFlags2 flags, const void *pNext)
|
||||
{
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
const struct radv_instance *instance = radv_physical_device_instance(pdev);
|
||||
@@ -147,10 +147,10 @@ radv_pipeline_get_shader_key(const struct radv_device *device, const VkPipelineS
|
||||
|
||||
key.keep_statistic_info = radv_pipeline_capture_shader_stats(device, flags);
|
||||
|
||||
if (flags & VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR)
|
||||
if (flags & VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT)
|
||||
key.optimisations_disabled = 1;
|
||||
|
||||
if (flags & VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR)
|
||||
if (flags & VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT)
|
||||
key.view_index_from_device_index = 1;
|
||||
|
||||
if (flags & VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT)
|
||||
@@ -189,8 +189,7 @@ radv_pipeline_get_shader_key(const struct radv_device *device, const VkPipelineS
|
||||
}
|
||||
|
||||
void
|
||||
radv_pipeline_stage_init(VkPipelineCreateFlags2KHR pipeline_flags,
|
||||
const VkPipelineShaderStageCreateInfo *sinfo,
|
||||
radv_pipeline_stage_init(VkPipelineCreateFlags2 pipeline_flags, const VkPipelineShaderStageCreateInfo *sinfo,
|
||||
const struct radv_pipeline_layout *pipeline_layout,
|
||||
const struct radv_shader_stage_key *stage_key, struct radv_shader_stage *out_stage)
|
||||
{
|
||||
@@ -1289,8 +1288,7 @@ radv_pipeline_hash(const struct radv_device *device, const struct radv_pipeline_
|
||||
}
|
||||
|
||||
void
|
||||
radv_pipeline_hash_shader_stage(VkPipelineCreateFlags2KHR pipeline_flags,
|
||||
const VkPipelineShaderStageCreateInfo *sinfo,
|
||||
radv_pipeline_hash_shader_stage(VkPipelineCreateFlags2 pipeline_flags, const VkPipelineShaderStageCreateInfo *sinfo,
|
||||
const struct radv_shader_stage_key *stage_key, struct mesa_sha1 *ctx)
|
||||
{
|
||||
unsigned char shader_sha1[SHA1_DIGEST_LENGTH];
|
||||
|
||||
@@ -42,7 +42,7 @@ struct radv_pipeline {
|
||||
uint8_t sha1[SHA1_DIGEST_LENGTH];
|
||||
enum radv_pipeline_type type;
|
||||
|
||||
VkPipelineCreateFlags2KHR create_flags;
|
||||
VkPipelineCreateFlags2 create_flags;
|
||||
|
||||
struct vk_pipeline_cache_object *cache_object;
|
||||
|
||||
@@ -70,11 +70,11 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(radv_pipeline, base, VkPipeline, VK_OBJECT_TYPE_P
|
||||
return (struct radv_##pipe_type##_pipeline *)pipeline; \
|
||||
}
|
||||
|
||||
bool radv_pipeline_capture_shaders(const struct radv_device *device, VkPipelineCreateFlags2KHR flags);
|
||||
bool radv_pipeline_capture_shaders(const struct radv_device *device, VkPipelineCreateFlags2 flags);
|
||||
|
||||
bool radv_shader_need_indirect_descriptor_sets(const struct radv_shader *shader);
|
||||
|
||||
bool radv_pipeline_capture_shader_stats(const struct radv_device *device, VkPipelineCreateFlags2KHR flags);
|
||||
bool radv_pipeline_capture_shader_stats(const struct radv_device *device, VkPipelineCreateFlags2 flags);
|
||||
|
||||
bool radv_pipeline_skip_shaders_cache(const struct radv_device *device, const struct radv_pipeline *pipeline);
|
||||
|
||||
@@ -85,11 +85,11 @@ void radv_pipeline_destroy(struct radv_device *device, struct radv_pipeline *pip
|
||||
|
||||
struct radv_shader_stage_key radv_pipeline_get_shader_key(const struct radv_device *device,
|
||||
const VkPipelineShaderStageCreateInfo *stage,
|
||||
VkPipelineCreateFlags2KHR flags, const void *pNext);
|
||||
VkPipelineCreateFlags2 flags, const void *pNext);
|
||||
|
||||
void radv_pipeline_stage_init(VkPipelineCreateFlags2KHR pipeline_flags,
|
||||
const VkPipelineShaderStageCreateInfo *sinfo, const struct radv_pipeline_layout *layout,
|
||||
const struct radv_shader_stage_key *stage_key, struct radv_shader_stage *out_stage);
|
||||
void radv_pipeline_stage_init(VkPipelineCreateFlags2 pipeline_flags, const VkPipelineShaderStageCreateInfo *sinfo,
|
||||
const struct radv_pipeline_layout *layout, const struct radv_shader_stage_key *stage_key,
|
||||
struct radv_shader_stage *out_stage);
|
||||
|
||||
void radv_shader_layout_init(const struct radv_pipeline_layout *pipeline_layout, gl_shader_stage stage,
|
||||
struct radv_shader_layout *layout);
|
||||
@@ -106,7 +106,7 @@ VkPipelineShaderStageCreateInfo *radv_copy_shader_stage_create_info(struct radv_
|
||||
void radv_pipeline_hash(const struct radv_device *device, const struct radv_pipeline_layout *pipeline_layout,
|
||||
struct mesa_sha1 *ctx);
|
||||
|
||||
void radv_pipeline_hash_shader_stage(VkPipelineCreateFlags2KHR pipeline_flags,
|
||||
void radv_pipeline_hash_shader_stage(VkPipelineCreateFlags2 pipeline_flags,
|
||||
const VkPipelineShaderStageCreateInfo *sinfo,
|
||||
const struct radv_shader_stage_key *stage_key, struct mesa_sha1 *ctx);
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ void
|
||||
radv_compute_pipeline_hash(const struct radv_device *device, const VkComputePipelineCreateInfo *pCreateInfo,
|
||||
unsigned char *hash)
|
||||
{
|
||||
VkPipelineCreateFlags2KHR create_flags = vk_compute_pipeline_create_flags(pCreateInfo);
|
||||
VkPipelineCreateFlags2 create_flags = vk_compute_pipeline_create_flags(pCreateInfo);
|
||||
VK_FROM_HANDLE(radv_pipeline_layout, pipeline_layout, pCreateInfo->layout);
|
||||
const VkPipelineShaderStageCreateInfo *sinfo = &pCreateInfo->stage;
|
||||
struct mesa_sha1 ctx;
|
||||
@@ -204,7 +204,7 @@ radv_compute_pipeline_compile(const VkComputePipelineCreateInfo *pCreateInfo, st
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (pipeline->base.create_flags & VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR)
|
||||
if (pipeline->base.create_flags & VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT)
|
||||
return VK_PIPELINE_COMPILE_REQUIRED;
|
||||
|
||||
int64_t stage_start = os_time_get_nano();
|
||||
@@ -327,8 +327,8 @@ radv_create_compute_pipelines(VkDevice _device, VkPipelineCache pipelineCache, u
|
||||
result = r;
|
||||
pPipelines[i] = VK_NULL_HANDLE;
|
||||
|
||||
VkPipelineCreateFlagBits2KHR create_flags = vk_compute_pipeline_create_flags(&pCreateInfos[i]);
|
||||
if (create_flags & VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR)
|
||||
VkPipelineCreateFlagBits2 create_flags = vk_compute_pipeline_create_flags(&pCreateInfos[i]);
|
||||
if (create_flags & VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,7 +216,7 @@ static bool
|
||||
radv_pipeline_uses_vrs_attachment(const struct radv_graphics_pipeline *pipeline,
|
||||
const struct vk_graphics_pipeline_state *state)
|
||||
{
|
||||
VkPipelineCreateFlags2KHR create_flags = pipeline->base.create_flags;
|
||||
VkPipelineCreateFlags2 create_flags = pipeline->base.create_flags;
|
||||
if (state->rp)
|
||||
create_flags |= state->pipeline_flags;
|
||||
|
||||
@@ -611,7 +611,7 @@ radv_pipeline_import_graphics_info(struct radv_device *device, struct radv_graph
|
||||
}
|
||||
|
||||
static bool
|
||||
radv_should_import_lib_binaries(const VkPipelineCreateFlags2KHR create_flags)
|
||||
radv_should_import_lib_binaries(const VkPipelineCreateFlags2 create_flags)
|
||||
{
|
||||
return !(create_flags & (VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT |
|
||||
VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT));
|
||||
@@ -663,7 +663,7 @@ static bool
|
||||
radv_pipeline_uses_ds_feedback_loop(const struct radv_graphics_pipeline *pipeline,
|
||||
const struct vk_graphics_pipeline_state *state)
|
||||
{
|
||||
VkPipelineCreateFlags2KHR create_flags = pipeline->base.create_flags;
|
||||
VkPipelineCreateFlags2 create_flags = pipeline->base.create_flags;
|
||||
if (state->rp)
|
||||
create_flags |= state->pipeline_flags;
|
||||
|
||||
@@ -1983,7 +1983,7 @@ radv_generate_graphics_pipeline_key(const struct radv_device *device, const VkGr
|
||||
const struct vk_graphics_pipeline_state *state,
|
||||
VkGraphicsPipelineLibraryFlagBitsEXT lib_flags)
|
||||
{
|
||||
VkPipelineCreateFlags2KHR create_flags = vk_graphics_pipeline_create_flags(pCreateInfo);
|
||||
VkPipelineCreateFlags2 create_flags = vk_graphics_pipeline_create_flags(pCreateInfo);
|
||||
struct radv_graphics_pipeline_key key = {0};
|
||||
|
||||
key.gfx_state = radv_generate_graphics_state_key(device, state, lib_flags);
|
||||
@@ -2449,7 +2449,7 @@ static void
|
||||
radv_pipeline_load_retained_shaders(const struct radv_device *device, const VkGraphicsPipelineCreateInfo *pCreateInfo,
|
||||
struct radv_shader_stage *stages)
|
||||
{
|
||||
const VkPipelineCreateFlags2KHR create_flags = vk_graphics_pipeline_create_flags(pCreateInfo);
|
||||
const VkPipelineCreateFlags2 create_flags = vk_graphics_pipeline_create_flags(pCreateInfo);
|
||||
const VkPipelineLibraryCreateInfoKHR *libs_info =
|
||||
vk_find_struct_const(pCreateInfo->pNext, PIPELINE_LIBRARY_CREATE_INFO_KHR);
|
||||
|
||||
@@ -2497,7 +2497,7 @@ radv_get_rasterization_prim(const struct radv_shader_stage *stages, const struct
|
||||
static bool
|
||||
radv_is_fast_linking_enabled(const VkGraphicsPipelineCreateInfo *pCreateInfo)
|
||||
{
|
||||
const VkPipelineCreateFlags2KHR create_flags = vk_graphics_pipeline_create_flags(pCreateInfo);
|
||||
const VkPipelineCreateFlags2 create_flags = vk_graphics_pipeline_create_flags(pCreateInfo);
|
||||
const VkPipelineLibraryCreateInfoKHR *libs_info =
|
||||
vk_find_struct_const(pCreateInfo->pNext, PIPELINE_LIBRARY_CREATE_INFO_KHR);
|
||||
|
||||
@@ -2511,7 +2511,7 @@ static bool
|
||||
radv_skip_graphics_pipeline_compile(const struct radv_device *device, const VkGraphicsPipelineCreateInfo *pCreateInfo)
|
||||
{
|
||||
const VkPipelineBinaryInfoKHR *binary_info = vk_find_struct_const(pCreateInfo->pNext, PIPELINE_BINARY_INFO_KHR);
|
||||
const VkPipelineCreateFlags2KHR create_flags = vk_graphics_pipeline_create_flags(pCreateInfo);
|
||||
const VkPipelineCreateFlags2 create_flags = vk_graphics_pipeline_create_flags(pCreateInfo);
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
VkShaderStageFlagBits binary_stages = 0;
|
||||
VkShaderStageFlags active_stages = 0;
|
||||
@@ -2799,7 +2799,7 @@ radv_generate_graphics_pipeline_state(struct radv_device *device, const VkGraphi
|
||||
struct radv_graphics_pipeline_state *gfx_state)
|
||||
{
|
||||
VK_FROM_HANDLE(radv_pipeline_layout, pipeline_layout, pCreateInfo->layout);
|
||||
const VkPipelineCreateFlags2KHR create_flags = vk_graphics_pipeline_create_flags(pCreateInfo);
|
||||
const VkPipelineCreateFlags2 create_flags = vk_graphics_pipeline_create_flags(pCreateInfo);
|
||||
const bool fast_linking_enabled = radv_is_fast_linking_enabled(pCreateInfo);
|
||||
enum radv_pipeline_type pipeline_type = RADV_PIPELINE_GRAPHICS;
|
||||
VkResult result;
|
||||
@@ -2978,7 +2978,7 @@ radv_graphics_pipeline_compile(struct radv_graphics_pipeline *pipeline, const Vk
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (pipeline->base.create_flags & VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR)
|
||||
if (pipeline->base.create_flags & VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT)
|
||||
return VK_PIPELINE_COMPILE_REQUIRED;
|
||||
|
||||
if (retain_shaders) {
|
||||
@@ -3590,7 +3590,7 @@ radv_CreateGraphicsPipelines(VkDevice _device, VkPipelineCache pipelineCache, ui
|
||||
unsigned i = 0;
|
||||
|
||||
for (; i < count; i++) {
|
||||
const VkPipelineCreateFlagBits2KHR create_flags = vk_graphics_pipeline_create_flags(&pCreateInfos[i]);
|
||||
const VkPipelineCreateFlagBits2 create_flags = vk_graphics_pipeline_create_flags(&pCreateInfos[i]);
|
||||
VkResult r;
|
||||
if (create_flags & VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR) {
|
||||
r = radv_graphics_lib_pipeline_create(_device, pipelineCache, &pCreateInfos[i], pAllocator, &pPipelines[i]);
|
||||
@@ -3601,7 +3601,7 @@ radv_CreateGraphicsPipelines(VkDevice _device, VkPipelineCache pipelineCache, ui
|
||||
result = r;
|
||||
pPipelines[i] = VK_NULL_HANDLE;
|
||||
|
||||
if (create_flags & VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR)
|
||||
if (create_flags & VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ static void
|
||||
radv_generate_rt_shaders_key(const struct radv_device *device, const VkRayTracingPipelineCreateInfoKHR *pCreateInfo,
|
||||
struct radv_shader_stage_key *stage_keys)
|
||||
{
|
||||
VkPipelineCreateFlags2KHR create_flags = vk_rt_pipeline_create_flags(pCreateInfo);
|
||||
VkPipelineCreateFlags2 create_flags = vk_rt_pipeline_create_flags(pCreateInfo);
|
||||
|
||||
for (uint32_t i = 0; i < pCreateInfo->stageCount; i++) {
|
||||
const VkPipelineShaderStageCreateInfo *stage = &pCreateInfo->pStages[i];
|
||||
@@ -96,7 +96,7 @@ static VkResult
|
||||
radv_create_group_handles(struct radv_device *device, const VkRayTracingPipelineCreateInfoKHR *pCreateInfo,
|
||||
const struct radv_ray_tracing_stage *stages, struct radv_ray_tracing_group *groups)
|
||||
{
|
||||
VkPipelineCreateFlags2KHR create_flags = vk_rt_pipeline_create_flags(pCreateInfo);
|
||||
VkPipelineCreateFlags2 create_flags = vk_rt_pipeline_create_flags(pCreateInfo);
|
||||
bool capture_replay = create_flags & VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR;
|
||||
for (unsigned i = 0; i < pCreateInfo->groupCount; ++i) {
|
||||
const VkRayTracingShaderGroupCreateInfoKHR *group_info = &pCreateInfo->pGroups[i];
|
||||
@@ -278,10 +278,9 @@ radv_rt_fill_stage_info(const VkRayTracingPipelineCreateInfoKHR *pCreateInfo, st
|
||||
}
|
||||
|
||||
static void
|
||||
radv_init_rt_stage_hashes(const struct radv_device *device,
|
||||
VkPipelineCreateFlags2KHR pipeline_flags,
|
||||
const VkRayTracingPipelineCreateInfoKHR *pCreateInfo,
|
||||
struct radv_ray_tracing_stage *stages, const struct radv_shader_stage_key *stage_keys)
|
||||
radv_init_rt_stage_hashes(const struct radv_device *device, VkPipelineCreateFlags2 pipeline_flags,
|
||||
const VkRayTracingPipelineCreateInfoKHR *pCreateInfo, struct radv_ray_tracing_stage *stages,
|
||||
const struct radv_shader_stage_key *stage_keys)
|
||||
{
|
||||
const VkPipelineBinaryInfoKHR *binary_info = vk_find_struct_const(pCreateInfo->pNext, PIPELINE_BINARY_INFO_KHR);
|
||||
if (binary_info && binary_info->binaryCount > 0) {
|
||||
@@ -587,7 +586,7 @@ radv_rt_compile_shaders(struct radv_device *device, struct vk_pipeline_cache *ca
|
||||
{
|
||||
VK_FROM_HANDLE(radv_pipeline_layout, pipeline_layout, pCreateInfo->layout);
|
||||
|
||||
if (pipeline->base.base.create_flags & VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR)
|
||||
if (pipeline->base.base.create_flags & VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT)
|
||||
return VK_PIPELINE_COMPILE_REQUIRED;
|
||||
VkResult result = VK_SUCCESS;
|
||||
|
||||
@@ -1000,7 +999,7 @@ radv_generate_ray_tracing_state_key(struct radv_device *device, const VkRayTraci
|
||||
|
||||
radv_generate_rt_shaders_key(device, pCreateInfo, rt_state->stage_keys);
|
||||
|
||||
VkPipelineCreateFlags2KHR create_flags = vk_rt_pipeline_create_flags(pCreateInfo);
|
||||
VkPipelineCreateFlags2 create_flags = vk_rt_pipeline_create_flags(pCreateInfo);
|
||||
radv_init_rt_stage_hashes(device, create_flags, pCreateInfo, rt_state->stages, rt_state->stage_keys);
|
||||
|
||||
result = radv_rt_fill_group_info(device, pCreateInfo, rt_state->stages, rt_state->groups);
|
||||
@@ -1194,8 +1193,8 @@ radv_CreateRayTracingPipelinesKHR(VkDevice _device, VkDeferredOperationKHR defer
|
||||
result = r;
|
||||
pPipelines[i] = VK_NULL_HANDLE;
|
||||
|
||||
const VkPipelineCreateFlagBits2KHR create_flags = vk_rt_pipeline_create_flags(&pCreateInfos[i]);
|
||||
if (create_flags & VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR)
|
||||
const VkPipelineCreateFlagBits2 create_flags = vk_rt_pipeline_create_flags(&pCreateInfos[i]);
|
||||
if (create_flags & VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,9 +31,9 @@ radv_printf_data_init(struct radv_device *device)
|
||||
VkBufferCreateInfo buffer_create_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
|
||||
.pNext =
|
||||
&(VkBufferUsageFlags2CreateInfoKHR){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR,
|
||||
.usage = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR,
|
||||
&(VkBufferUsageFlags2CreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
|
||||
.usage = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,
|
||||
},
|
||||
.size = device->printf.buffer_size,
|
||||
};
|
||||
|
||||
@@ -916,9 +916,9 @@ radv_rra_trace_init(struct radv_device *device)
|
||||
VkBufferCreateInfo buffer_create_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
|
||||
.pNext =
|
||||
&(VkBufferUsageFlags2CreateInfoKHR){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR,
|
||||
.usage = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR,
|
||||
&(VkBufferUsageFlags2CreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
|
||||
.usage = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,
|
||||
},
|
||||
.size = device->rra_trace.ray_history_buffer_size,
|
||||
};
|
||||
@@ -1096,9 +1096,9 @@ rra_copy_context_init(struct rra_copy_context *ctx)
|
||||
VkBufferCreateInfo buffer_create_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
|
||||
.pNext =
|
||||
&(VkBufferUsageFlags2CreateInfoKHR){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR,
|
||||
.usage = VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR,
|
||||
&(VkBufferUsageFlags2CreateInfo){
|
||||
.sType = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
|
||||
.usage = VK_BUFFER_USAGE_2_TRANSFER_DST_BIT,
|
||||
},
|
||||
.size = max_size,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user