| // *** THIS FILE IS GENERATED - DO NOT EDIT *** |
| // See helper_file_generator.py for modifications |
| |
| |
| /*************************************************************************** |
| * |
| * Copyright (c) 2015-2021 The Khronos Group Inc. |
| * Copyright (c) 2015-2021 Valve Corporation |
| * Copyright (c) 2015-2021 LunarG, Inc. |
| * Copyright (c) 2015-2021 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| * Author: Mark Lobodzinski <mark@lunarg.com> |
| * Author: Courtney Goeltzenleuchter <courtneygo@google.com> |
| * Author: Tobin Ehlis <tobine@google.com> |
| * Author: Chris Forbes <chrisforbes@google.com> |
| * Author: John Zulauf<jzulauf@lunarg.com> |
| * |
| ****************************************************************************/ |
| |
| #pragma once |
| |
| #include <array> |
| #include <bitset> |
| #include <map> |
| #include <stdint.h> |
| #include <vulkan/vulkan.h> |
| #include "vk_layer_data.h" |
| using SyncStageAccessFlags = std::bitset<128>; |
| |
| // clang-format off |
| |
| // Unique number for each stage/access combination |
| enum SyncStageAccessIndex { |
| SYNC_ACCESS_INDEX_NONE = 0, |
| SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ = 1, |
| SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT = 2, |
| SYNC_INDEX_INPUT_INDEX_READ = 3, |
| SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ = 4, |
| SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ = 5, |
| SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ = 6, |
| SYNC_VERTEX_SHADER_SHADER_STORAGE_READ = 7, |
| SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE = 8, |
| SYNC_VERTEX_SHADER_UNIFORM_READ = 9, |
| SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ = 10, |
| SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ = 11, |
| SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ = 12, |
| SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE = 13, |
| SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ = 14, |
| SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ = 15, |
| SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ = 16, |
| SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ = 17, |
| SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE = 18, |
| SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ = 19, |
| SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ = 20, |
| SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ = 21, |
| SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ = 22, |
| SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE = 23, |
| SYNC_GEOMETRY_SHADER_UNIFORM_READ = 24, |
| SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT = 25, |
| SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT = 26, |
| SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_WRITE_EXT = 27, |
| SYNC_FRAGMENT_DENSITY_PROCESS_EXT_FRAGMENT_DENSITY_MAP_READ_EXT = 28, |
| SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ = 29, |
| SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ = 30, |
| SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ = 31, |
| SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE = 32, |
| SYNC_TASK_SHADER_NV_UNIFORM_READ = 33, |
| SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ = 34, |
| SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ = 35, |
| SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ = 36, |
| SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE = 37, |
| SYNC_MESH_SHADER_NV_UNIFORM_READ = 38, |
| SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ = 39, |
| SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ = 40, |
| SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE = 41, |
| SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ = 42, |
| SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ = 43, |
| SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ = 44, |
| SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ = 45, |
| SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE = 46, |
| SYNC_FRAGMENT_SHADER_UNIFORM_READ = 47, |
| SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ = 48, |
| SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE = 49, |
| SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ = 50, |
| SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_EXT = 51, |
| SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE = 52, |
| SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ = 53, |
| SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ = 54, |
| SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ = 55, |
| SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE = 56, |
| SYNC_COMPUTE_SHADER_UNIFORM_READ = 57, |
| SYNC_COPY_TRANSFER_READ = 58, |
| SYNC_COPY_TRANSFER_WRITE = 59, |
| SYNC_RESOLVE_TRANSFER_READ = 60, |
| SYNC_RESOLVE_TRANSFER_WRITE = 61, |
| SYNC_BLIT_TRANSFER_READ = 62, |
| SYNC_BLIT_TRANSFER_WRITE = 63, |
| SYNC_CLEAR_TRANSFER_WRITE = 64, |
| SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_READ_NV = 65, |
| SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_WRITE_NV = 66, |
| SYNC_CONDITIONAL_RENDERING_EXT_CONDITIONAL_RENDERING_READ_EXT = 67, |
| SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ = 68, |
| SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ = 69, |
| SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ = 70, |
| SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE = 71, |
| SYNC_RAY_TRACING_SHADER_UNIFORM_READ = 72, |
| SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ = 73, |
| SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE = 74, |
| SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ = 75, |
| SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ = 76, |
| SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ = 77, |
| SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ = 78, |
| SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE = 79, |
| SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ = 80, |
| SYNC_VIDEO_DECODE_VIDEO_DECODE_READ = 81, |
| SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE = 82, |
| SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ = 83, |
| SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE = 84, |
| SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ = 85, |
| SYNC_HOST_HOST_READ = 86, |
| SYNC_HOST_HOST_WRITE = 87, |
| SYNC_IMAGE_LAYOUT_TRANSITION = 88, |
| SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER = 89, |
| }; |
| |
| // Unique bit for each stage/access combination |
| static const SyncStageAccessFlags SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ_BIT = (SyncStageAccessFlags(1) << SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ); |
| static const SyncStageAccessFlags SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = (SyncStageAccessFlags(1) << SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT); |
| static const SyncStageAccessFlags SYNC_INDEX_INPUT_INDEX_READ_BIT = (SyncStageAccessFlags(1) << SYNC_INDEX_INPUT_INDEX_READ); |
| static const SyncStageAccessFlags SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ); |
| static const SyncStageAccessFlags SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ); |
| static const SyncStageAccessFlags SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ_BIT = (SyncStageAccessFlags(1) << SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ); |
| static const SyncStageAccessFlags SYNC_VERTEX_SHADER_SHADER_STORAGE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_VERTEX_SHADER_SHADER_STORAGE_READ); |
| static const SyncStageAccessFlags SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE); |
| static const SyncStageAccessFlags SYNC_VERTEX_SHADER_UNIFORM_READ_BIT = (SyncStageAccessFlags(1) << SYNC_VERTEX_SHADER_UNIFORM_READ); |
| static const SyncStageAccessFlags SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ); |
| static const SyncStageAccessFlags SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ); |
| static const SyncStageAccessFlags SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ); |
| static const SyncStageAccessFlags SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE); |
| static const SyncStageAccessFlags SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ); |
| static const SyncStageAccessFlags SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ); |
| static const SyncStageAccessFlags SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ); |
| static const SyncStageAccessFlags SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ); |
| static const SyncStageAccessFlags SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE); |
| static const SyncStageAccessFlags SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ); |
| static const SyncStageAccessFlags SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ); |
| static const SyncStageAccessFlags SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ_BIT = (SyncStageAccessFlags(1) << SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ); |
| static const SyncStageAccessFlags SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ); |
| static const SyncStageAccessFlags SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE); |
| static const SyncStageAccessFlags SYNC_GEOMETRY_SHADER_UNIFORM_READ_BIT = (SyncStageAccessFlags(1) << SYNC_GEOMETRY_SHADER_UNIFORM_READ); |
| static const SyncStageAccessFlags SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = (SyncStageAccessFlags(1) << SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT); |
| static const SyncStageAccessFlags SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = (SyncStageAccessFlags(1) << SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT); |
| static const SyncStageAccessFlags SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = (SyncStageAccessFlags(1) << SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_WRITE_EXT); |
| static const SyncStageAccessFlags SYNC_FRAGMENT_DENSITY_PROCESS_BIT_EXT_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = (SyncStageAccessFlags(1) << SYNC_FRAGMENT_DENSITY_PROCESS_EXT_FRAGMENT_DENSITY_MAP_READ_EXT); |
| static const SyncStageAccessFlags SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ); |
| static const SyncStageAccessFlags SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ); |
| static const SyncStageAccessFlags SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ); |
| static const SyncStageAccessFlags SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE); |
| static const SyncStageAccessFlags SYNC_TASK_SHADER_NV_UNIFORM_READ_BIT = (SyncStageAccessFlags(1) << SYNC_TASK_SHADER_NV_UNIFORM_READ); |
| static const SyncStageAccessFlags SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ); |
| static const SyncStageAccessFlags SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ_BIT = (SyncStageAccessFlags(1) << SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ); |
| static const SyncStageAccessFlags SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ); |
| static const SyncStageAccessFlags SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE); |
| static const SyncStageAccessFlags SYNC_MESH_SHADER_NV_UNIFORM_READ_BIT = (SyncStageAccessFlags(1) << SYNC_MESH_SHADER_NV_UNIFORM_READ); |
| static const SyncStageAccessFlags SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT = (SyncStageAccessFlags(1) << SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ); |
| static const SyncStageAccessFlags SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = (SyncStageAccessFlags(1) << SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ); |
| static const SyncStageAccessFlags SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE); |
| static const SyncStageAccessFlags SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ); |
| static const SyncStageAccessFlags SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ_BIT = (SyncStageAccessFlags(1) << SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ); |
| static const SyncStageAccessFlags SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ_BIT = (SyncStageAccessFlags(1) << SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ); |
| static const SyncStageAccessFlags SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ); |
| static const SyncStageAccessFlags SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE); |
| static const SyncStageAccessFlags SYNC_FRAGMENT_SHADER_UNIFORM_READ_BIT = (SyncStageAccessFlags(1) << SYNC_FRAGMENT_SHADER_UNIFORM_READ); |
| static const SyncStageAccessFlags SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = (SyncStageAccessFlags(1) << SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ); |
| static const SyncStageAccessFlags SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE); |
| static const SyncStageAccessFlags SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_BIT = (SyncStageAccessFlags(1) << SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ); |
| static const SyncStageAccessFlags SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = (SyncStageAccessFlags(1) << SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_EXT); |
| static const SyncStageAccessFlags SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE); |
| static const SyncStageAccessFlags SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ); |
| static const SyncStageAccessFlags SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ_BIT = (SyncStageAccessFlags(1) << SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ); |
| static const SyncStageAccessFlags SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ); |
| static const SyncStageAccessFlags SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE); |
| static const SyncStageAccessFlags SYNC_COMPUTE_SHADER_UNIFORM_READ_BIT = (SyncStageAccessFlags(1) << SYNC_COMPUTE_SHADER_UNIFORM_READ); |
| static const SyncStageAccessFlags SYNC_COPY_TRANSFER_READ_BIT = (SyncStageAccessFlags(1) << SYNC_COPY_TRANSFER_READ); |
| static const SyncStageAccessFlags SYNC_COPY_TRANSFER_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_COPY_TRANSFER_WRITE); |
| static const SyncStageAccessFlags SYNC_RESOLVE_TRANSFER_READ_BIT = (SyncStageAccessFlags(1) << SYNC_RESOLVE_TRANSFER_READ); |
| static const SyncStageAccessFlags SYNC_RESOLVE_TRANSFER_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_RESOLVE_TRANSFER_WRITE); |
| static const SyncStageAccessFlags SYNC_BLIT_TRANSFER_READ_BIT = (SyncStageAccessFlags(1) << SYNC_BLIT_TRANSFER_READ); |
| static const SyncStageAccessFlags SYNC_BLIT_TRANSFER_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_BLIT_TRANSFER_WRITE); |
| static const SyncStageAccessFlags SYNC_CLEAR_TRANSFER_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_CLEAR_TRANSFER_WRITE); |
| static const SyncStageAccessFlags SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_READ_BIT_NV = (SyncStageAccessFlags(1) << SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_READ_NV); |
| static const SyncStageAccessFlags SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_WRITE_BIT_NV = (SyncStageAccessFlags(1) << SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_WRITE_NV); |
| static const SyncStageAccessFlags SYNC_CONDITIONAL_RENDERING_BIT_EXT_CONDITIONAL_RENDERING_READ_BIT_EXT = (SyncStageAccessFlags(1) << SYNC_CONDITIONAL_RENDERING_EXT_CONDITIONAL_RENDERING_READ_EXT); |
| static const SyncStageAccessFlags SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ); |
| static const SyncStageAccessFlags SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ_BIT = (SyncStageAccessFlags(1) << SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ); |
| static const SyncStageAccessFlags SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ); |
| static const SyncStageAccessFlags SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE); |
| static const SyncStageAccessFlags SYNC_RAY_TRACING_SHADER_UNIFORM_READ_BIT = (SyncStageAccessFlags(1) << SYNC_RAY_TRACING_SHADER_UNIFORM_READ); |
| static const SyncStageAccessFlags SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ); |
| static const SyncStageAccessFlags SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE); |
| static const SyncStageAccessFlags SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ_BIT = (SyncStageAccessFlags(1) << SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ); |
| static const SyncStageAccessFlags SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ_BIT = (SyncStageAccessFlags(1) << SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ); |
| static const SyncStageAccessFlags SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ); |
| static const SyncStageAccessFlags SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ_BIT = (SyncStageAccessFlags(1) << SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ); |
| static const SyncStageAccessFlags SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE); |
| static const SyncStageAccessFlags SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ_BIT = (SyncStageAccessFlags(1) << SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ); |
| static const SyncStageAccessFlags SYNC_VIDEO_DECODE_VIDEO_DECODE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_VIDEO_DECODE_VIDEO_DECODE_READ); |
| static const SyncStageAccessFlags SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE); |
| static const SyncStageAccessFlags SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ_BIT = (SyncStageAccessFlags(1) << SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ); |
| static const SyncStageAccessFlags SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE); |
| static const SyncStageAccessFlags SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ_BIT = (SyncStageAccessFlags(1) << SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ); |
| static const SyncStageAccessFlags SYNC_HOST_HOST_READ_BIT = (SyncStageAccessFlags(1) << SYNC_HOST_HOST_READ); |
| static const SyncStageAccessFlags SYNC_HOST_HOST_WRITE_BIT = (SyncStageAccessFlags(1) << SYNC_HOST_HOST_WRITE); |
| static const SyncStageAccessFlags SYNC_IMAGE_LAYOUT_TRANSITION_BIT = (SyncStageAccessFlags(1) << SYNC_IMAGE_LAYOUT_TRANSITION); |
| static const SyncStageAccessFlags SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER_BIT = (SyncStageAccessFlags(1) << SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER); |
| |
| // Map of the StageAccessIndices from the StageAccess Bit |
| extern const layer_data::unordered_map<SyncStageAccessFlags, SyncStageAccessIndex> syncStageAccessIndexByStageAccessBit; |
| |
| struct SyncStageAccessInfoType { |
| const char *name; |
| VkPipelineStageFlags2KHR stage_mask; |
| VkAccessFlags2KHR access_mask; |
| SyncStageAccessIndex stage_access_index; |
| SyncStageAccessFlags stage_access_bit; |
| }; |
| |
| // Array of text names and component masks for each stage/access index |
| extern const std::array<SyncStageAccessInfoType, 90> syncStageAccessInfoByStageAccessIndex; |
| |
| // Constants defining the mask of all read and write stage_access states |
| static const SyncStageAccessFlags syncStageAccessReadMask = ( // Mask of all read StageAccess bits |
| SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ_BIT | |
| SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT | |
| SYNC_INDEX_INPUT_INDEX_READ_BIT | |
| SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ_BIT | |
| SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ_BIT | |
| SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ_BIT | |
| SYNC_VERTEX_SHADER_SHADER_STORAGE_READ_BIT | |
| SYNC_VERTEX_SHADER_UNIFORM_READ_BIT | |
| SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ_BIT | |
| SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ_BIT | |
| SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ_BIT | |
| SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ_BIT | |
| SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ_BIT | |
| SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ_BIT | |
| SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ_BIT | |
| SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ_BIT | |
| SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ_BIT | |
| SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ_BIT | |
| SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ_BIT | |
| SYNC_GEOMETRY_SHADER_UNIFORM_READ_BIT | |
| SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT | |
| SYNC_FRAGMENT_DENSITY_PROCESS_BIT_EXT_FRAGMENT_DENSITY_MAP_READ_BIT_EXT | |
| SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT | |
| SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ_BIT | |
| SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ_BIT | |
| SYNC_TASK_SHADER_NV_UNIFORM_READ_BIT | |
| SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT | |
| SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ_BIT | |
| SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ_BIT | |
| SYNC_MESH_SHADER_NV_UNIFORM_READ_BIT | |
| SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT | |
| SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | |
| SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ_BIT | |
| SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ_BIT | |
| SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ_BIT | |
| SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ_BIT | |
| SYNC_FRAGMENT_SHADER_UNIFORM_READ_BIT | |
| SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | |
| SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_BIT | |
| SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT | |
| SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ_BIT | |
| SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ_BIT | |
| SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ_BIT | |
| SYNC_COMPUTE_SHADER_UNIFORM_READ_BIT | |
| SYNC_COPY_TRANSFER_READ_BIT | |
| SYNC_RESOLVE_TRANSFER_READ_BIT | |
| SYNC_BLIT_TRANSFER_READ_BIT | |
| SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_READ_BIT_NV | |
| SYNC_CONDITIONAL_RENDERING_BIT_EXT_CONDITIONAL_RENDERING_READ_BIT_EXT | |
| SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ_BIT | |
| SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ_BIT | |
| SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ_BIT | |
| SYNC_RAY_TRACING_SHADER_UNIFORM_READ_BIT | |
| SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ_BIT | |
| SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ_BIT | |
| SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ_BIT | |
| SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ_BIT | |
| SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ_BIT | |
| SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ_BIT | |
| SYNC_VIDEO_DECODE_VIDEO_DECODE_READ_BIT | |
| SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ_BIT | |
| SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ_BIT | |
| SYNC_HOST_HOST_READ_BIT |
| ); |
| |
| static const SyncStageAccessFlags syncStageAccessWriteMask = ( // Mask of all write StageAccess bits |
| SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE_BIT | |
| SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE_BIT | |
| SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE_BIT | |
| SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE_BIT | |
| SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT | |
| SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_WRITE_BIT_EXT | |
| SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE_BIT | |
| SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE_BIT | |
| SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | |
| SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE_BIT | |
| SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | |
| SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE_BIT | |
| SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE_BIT | |
| SYNC_COPY_TRANSFER_WRITE_BIT | |
| SYNC_RESOLVE_TRANSFER_WRITE_BIT | |
| SYNC_BLIT_TRANSFER_WRITE_BIT | |
| SYNC_CLEAR_TRANSFER_WRITE_BIT | |
| SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_WRITE_BIT_NV | |
| SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE_BIT | |
| SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE_BIT | |
| SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE_BIT | |
| SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE_BIT | |
| SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE_BIT | |
| SYNC_HOST_HOST_WRITE_BIT | |
| SYNC_IMAGE_LAYOUT_TRANSITION_BIT | |
| SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER_BIT |
| ); |
| |
| // Bit order mask of stage_access bit for each stage |
| extern const std::map<VkPipelineStageFlags2KHR, SyncStageAccessFlags> syncStageAccessMaskByStageBit; |
| |
| // Bit order mask of stage_access bit for each access |
| extern const std::map<VkAccessFlags2KHR, SyncStageAccessFlags> syncStageAccessMaskByAccessBit; |
| |
| // stage_access index for each stage and access |
| extern const std::map<VkPipelineStageFlags2KHR, std::map<VkAccessFlags2KHR, SyncStageAccessIndex>> syncStageAccessIndexByStageAndAccess; |
| |
| // Direct VkPipelineStageFlags to valid VkAccessFlags lookup table |
| extern const std::map<VkPipelineStageFlags2KHR, VkAccessFlags2KHR> syncDirectStageToAccessMask; |
| |
| // Pipeline stages corresponding to VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR for each VkQueueFlagBits |
| extern const std::map<VkQueueFlagBits, VkPipelineStageFlags2KHR> syncAllCommandStagesByQueueFlags; |
| |
| // Masks of logically earlier stage flags for a given stage flag |
| extern const std::map<VkPipelineStageFlags2KHR, VkPipelineStageFlags2KHR> syncLogicallyEarlierStages; |
| |
| // Masks of logically later stage flags for a given stage flag |
| extern const std::map<VkPipelineStageFlags2KHR, VkPipelineStageFlags2KHR> syncLogicallyLaterStages; |
| |
| // Lookup table of stage orderings |
| extern const std::map<VkPipelineStageFlags2KHR, int> syncStageOrder; |
| |
| struct SyncShaderStageAccess { |
| SyncStageAccessIndex sampled_read; |
| SyncStageAccessIndex storage_read; |
| SyncStageAccessIndex storage_write; |
| SyncStageAccessIndex uniform_read; |
| }; |
| |
| extern const std::map<VkShaderStageFlagBits, SyncShaderStageAccess> syncStageAccessMaskByShaderStage; |