mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 13:50:09 +01:00
vulkan: Add helpers for access flags
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26407>
This commit is contained in:
parent
44add595af
commit
00e88584af
2 changed files with 44 additions and 0 deletions
|
|
@ -31,6 +31,42 @@
|
|||
#include "vk_util.h"
|
||||
#include "../wsi/wsi_common.h"
|
||||
|
||||
VkAccessFlags2
|
||||
vk_filter_src_access_flags2(VkPipelineStageFlags2 stages,
|
||||
VkAccessFlags2 access)
|
||||
{
|
||||
const VkPipelineStageFlags2 all_write_access =
|
||||
vk_write_access2_for_pipeline_stage_flags2(stages);
|
||||
|
||||
if (access & VK_ACCESS_2_MEMORY_WRITE_BIT)
|
||||
access |= all_write_access;
|
||||
|
||||
if (access & VK_ACCESS_2_SHADER_WRITE_BIT)
|
||||
access |= VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT;
|
||||
|
||||
/* We only care about write access in src flags */
|
||||
return access & all_write_access;
|
||||
}
|
||||
|
||||
VkAccessFlags2
|
||||
vk_filter_dst_access_flags2(VkPipelineStageFlags2 stages,
|
||||
VkAccessFlags2 access)
|
||||
{
|
||||
const VkPipelineStageFlags2 all_read_access =
|
||||
vk_read_access2_for_pipeline_stage_flags2(stages);
|
||||
|
||||
if (access & VK_ACCESS_2_MEMORY_READ_BIT)
|
||||
access |= all_read_access;
|
||||
|
||||
if (access & VK_ACCESS_2_SHADER_READ_BIT)
|
||||
access |= VK_ACCESS_2_SHADER_SAMPLED_READ_BIT |
|
||||
VK_ACCESS_2_SHADER_STORAGE_READ_BIT |
|
||||
VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR;
|
||||
|
||||
/* We only care about read access in dst flags */
|
||||
return access & all_read_access;
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
vk_common_CmdWriteTimestamp(
|
||||
VkCommandBuffer commandBuffer,
|
||||
|
|
|
|||
|
|
@ -94,6 +94,14 @@ vk_read_access2_for_pipeline_stage_flags2(VkPipelineStageFlags2 stages);
|
|||
VkAccessFlags2
|
||||
vk_write_access2_for_pipeline_stage_flags2(VkPipelineStageFlags2 stages);
|
||||
|
||||
VkAccessFlags2
|
||||
vk_filter_src_access_flags2(VkPipelineStageFlags2 stages,
|
||||
VkAccessFlags2 access);
|
||||
|
||||
VkAccessFlags2
|
||||
vk_filter_dst_access_flags2(VkPipelineStageFlags2 stages,
|
||||
VkAccessFlags2 access);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue