1 // *** THIS FILE IS GENERATED - DO NOT EDIT *** 2 // See helper_file_generator.py for modifications 3 4 5 /*************************************************************************** 6 * 7 * Copyright (c) 2015-2021 The Khronos Group Inc. 8 * Copyright (c) 2015-2021 Valve Corporation 9 * Copyright (c) 2015-2021 LunarG, Inc. 10 * Copyright (c) 2015-2021 Google Inc. 11 * 12 * Licensed under the Apache License, Version 2.0 (the "License"); 13 * you may not use this file except in compliance with the License. 14 * You may obtain a copy of the License at 15 * 16 * http://www.apache.org/licenses/LICENSE-2.0 17 * 18 * Unless required by applicable law or agreed to in writing, software 19 * distributed under the License is distributed on an "AS IS" BASIS, 20 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 * See the License for the specific language governing permissions and 22 * limitations under the License. 23 * 24 * Author: Mark Lobodzinski <mark@lunarg.com> 25 * Author: Courtney Goeltzenleuchter <courtneygo@google.com> 26 * Author: Tobin Ehlis <tobine@google.com> 27 * Author: Chris Forbes <chrisforbes@google.com> 28 * Author: John Zulauf<jzulauf@lunarg.com> 29 * 30 ****************************************************************************/ 31 32 #include "synchronization_validation_types.h" 33 34 // clang-format off 35 36 // Unique bit for each stage/access combination 37 38 // Map of the StageAccessIndices from the StageAccess Bit 39 const layer_data::unordered_map<SyncStageAccessFlags, SyncStageAccessIndex> syncStageAccessIndexByStageAccessBit = { 40 { SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ_BIT, SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ }, 41 { SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT }, 42 { SYNC_INDEX_INPUT_INDEX_READ_BIT, SYNC_INDEX_INPUT_INDEX_READ }, 43 { SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ_BIT, SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ }, 44 { SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ_BIT, SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ }, 45 { SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ_BIT, SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ }, 46 { SYNC_VERTEX_SHADER_SHADER_STORAGE_READ_BIT, SYNC_VERTEX_SHADER_SHADER_STORAGE_READ }, 47 { SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE_BIT, SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE }, 48 { SYNC_VERTEX_SHADER_UNIFORM_READ_BIT, SYNC_VERTEX_SHADER_UNIFORM_READ }, 49 { SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ_BIT, SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ }, 50 { SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ_BIT, SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ }, 51 { SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ_BIT, SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ }, 52 { SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE_BIT, SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE }, 53 { SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ_BIT, SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ }, 54 { SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ_BIT, SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ }, 55 { SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ_BIT, SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ }, 56 { SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ_BIT, SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ }, 57 { SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE_BIT, SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE }, 58 { SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ_BIT, SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ }, 59 { SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ_BIT, SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ }, 60 { SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ_BIT, SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ }, 61 { SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ_BIT, SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ }, 62 { SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE_BIT, SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE }, 63 { SYNC_GEOMETRY_SHADER_UNIFORM_READ_BIT, SYNC_GEOMETRY_SHADER_UNIFORM_READ }, 64 { SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT }, 65 { SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT }, 66 { SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_WRITE_EXT }, 67 { SYNC_FRAGMENT_DENSITY_PROCESS_BIT_EXT_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, SYNC_FRAGMENT_DENSITY_PROCESS_EXT_FRAGMENT_DENSITY_MAP_READ_EXT }, 68 { SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT, SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ }, 69 { SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ_BIT, SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ }, 70 { SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ_BIT, SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ }, 71 { SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE_BIT, SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE }, 72 { SYNC_TASK_SHADER_NV_UNIFORM_READ_BIT, SYNC_TASK_SHADER_NV_UNIFORM_READ }, 73 { SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT, SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ }, 74 { SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ_BIT, SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ }, 75 { SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ_BIT, SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ }, 76 { SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE_BIT, SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE }, 77 { SYNC_MESH_SHADER_NV_UNIFORM_READ_BIT, SYNC_MESH_SHADER_NV_UNIFORM_READ }, 78 { SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT, SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ }, 79 { SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ }, 80 { SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE }, 81 { SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ_BIT, SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ }, 82 { SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ_BIT, SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ }, 83 { SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ_BIT, SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ }, 84 { SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ_BIT, SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ }, 85 { SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE_BIT, SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE }, 86 { SYNC_FRAGMENT_SHADER_UNIFORM_READ_BIT, SYNC_FRAGMENT_SHADER_UNIFORM_READ }, 87 { SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ }, 88 { SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE }, 89 { SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_BIT, SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ }, 90 { SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_EXT }, 91 { SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE_BIT, SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE }, 92 { SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ_BIT, SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ }, 93 { SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ_BIT, SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ }, 94 { SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ_BIT, SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ }, 95 { SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE_BIT, SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE }, 96 { SYNC_COMPUTE_SHADER_UNIFORM_READ_BIT, SYNC_COMPUTE_SHADER_UNIFORM_READ }, 97 { SYNC_COPY_TRANSFER_READ_BIT, SYNC_COPY_TRANSFER_READ }, 98 { SYNC_COPY_TRANSFER_WRITE_BIT, SYNC_COPY_TRANSFER_WRITE }, 99 { SYNC_RESOLVE_TRANSFER_READ_BIT, SYNC_RESOLVE_TRANSFER_READ }, 100 { SYNC_RESOLVE_TRANSFER_WRITE_BIT, SYNC_RESOLVE_TRANSFER_WRITE }, 101 { SYNC_BLIT_TRANSFER_READ_BIT, SYNC_BLIT_TRANSFER_READ }, 102 { SYNC_BLIT_TRANSFER_WRITE_BIT, SYNC_BLIT_TRANSFER_WRITE }, 103 { SYNC_CLEAR_TRANSFER_WRITE_BIT, SYNC_CLEAR_TRANSFER_WRITE }, 104 { SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_READ_BIT_NV, SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_READ_NV }, 105 { SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_WRITE_BIT_NV, SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_WRITE_NV }, 106 { SYNC_CONDITIONAL_RENDERING_BIT_EXT_CONDITIONAL_RENDERING_READ_BIT_EXT, SYNC_CONDITIONAL_RENDERING_EXT_CONDITIONAL_RENDERING_READ_EXT }, 107 { SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ_BIT, SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ }, 108 { SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ_BIT, SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ }, 109 { SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ_BIT, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ }, 110 { SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE_BIT, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE }, 111 { SYNC_RAY_TRACING_SHADER_UNIFORM_READ_BIT, SYNC_RAY_TRACING_SHADER_UNIFORM_READ }, 112 { SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ_BIT, SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ }, 113 { SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE_BIT, SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE }, 114 { SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ_BIT, SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ }, 115 { SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ_BIT, SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ }, 116 { SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ_BIT, SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ }, 117 { SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ_BIT, SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ }, 118 { SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE_BIT, SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE }, 119 { SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ_BIT, SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ }, 120 { SYNC_VIDEO_DECODE_VIDEO_DECODE_READ_BIT, SYNC_VIDEO_DECODE_VIDEO_DECODE_READ }, 121 { SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE_BIT, SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE }, 122 { SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ_BIT, SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ }, 123 { SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE_BIT, SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE }, 124 { SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ_BIT, SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ }, 125 { SYNC_HOST_HOST_READ_BIT, SYNC_HOST_HOST_READ }, 126 { SYNC_HOST_HOST_WRITE_BIT, SYNC_HOST_HOST_WRITE }, 127 { SYNC_IMAGE_LAYOUT_TRANSITION_BIT, SYNC_IMAGE_LAYOUT_TRANSITION }, 128 { SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER_BIT, SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER }, 129 }; 130 131 // Array of text names and component masks for each stage/access index 132 const std::array<SyncStageAccessInfoType, 90> syncStageAccessInfoByStageAccessIndex { { 133 { 134 "SYNC_ACCESS_INDEX_NONE", 135 VK_PIPELINE_STAGE_2_NONE_KHR, 136 VK_ACCESS_2_NONE_KHR, 137 SYNC_ACCESS_INDEX_NONE, 138 SyncStageAccessFlags(0) 139 }, 140 { 141 "SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ", 142 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, 143 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, 144 SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ, 145 SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ_BIT 146 }, 147 { 148 "SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT", 149 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, 150 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, 151 SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT, 152 SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT 153 }, 154 { 155 "SYNC_INDEX_INPUT_INDEX_READ", 156 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, 157 VK_ACCESS_2_INDEX_READ_BIT_KHR, 158 SYNC_INDEX_INPUT_INDEX_READ, 159 SYNC_INDEX_INPUT_INDEX_READ_BIT 160 }, 161 { 162 "SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ", 163 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, 164 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, 165 SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ, 166 SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ_BIT 167 }, 168 { 169 "SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ", 170 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, 171 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 172 SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ, 173 SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ_BIT 174 }, 175 { 176 "SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ", 177 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, 178 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, 179 SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ, 180 SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ_BIT 181 }, 182 { 183 "SYNC_VERTEX_SHADER_SHADER_STORAGE_READ", 184 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, 185 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, 186 SYNC_VERTEX_SHADER_SHADER_STORAGE_READ, 187 SYNC_VERTEX_SHADER_SHADER_STORAGE_READ_BIT 188 }, 189 { 190 "SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE", 191 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, 192 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, 193 SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE, 194 SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE_BIT 195 }, 196 { 197 "SYNC_VERTEX_SHADER_UNIFORM_READ", 198 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, 199 VK_ACCESS_2_UNIFORM_READ_BIT_KHR, 200 SYNC_VERTEX_SHADER_UNIFORM_READ, 201 SYNC_VERTEX_SHADER_UNIFORM_READ_BIT 202 }, 203 { 204 "SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ", 205 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, 206 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 207 SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ, 208 SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ_BIT 209 }, 210 { 211 "SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ", 212 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, 213 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, 214 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ, 215 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ_BIT 216 }, 217 { 218 "SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ", 219 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, 220 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, 221 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ, 222 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ_BIT 223 }, 224 { 225 "SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE", 226 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, 227 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, 228 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE, 229 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE_BIT 230 }, 231 { 232 "SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ", 233 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, 234 VK_ACCESS_2_UNIFORM_READ_BIT_KHR, 235 SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ, 236 SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ_BIT 237 }, 238 { 239 "SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ", 240 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, 241 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 242 SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ, 243 SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ_BIT 244 }, 245 { 246 "SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ", 247 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, 248 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, 249 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ, 250 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ_BIT 251 }, 252 { 253 "SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ", 254 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, 255 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, 256 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ, 257 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ_BIT 258 }, 259 { 260 "SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE", 261 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, 262 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, 263 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE, 264 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE_BIT 265 }, 266 { 267 "SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ", 268 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, 269 VK_ACCESS_2_UNIFORM_READ_BIT_KHR, 270 SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ, 271 SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ_BIT 272 }, 273 { 274 "SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ", 275 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, 276 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 277 SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ, 278 SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ_BIT 279 }, 280 { 281 "SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ", 282 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, 283 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, 284 SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ, 285 SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ_BIT 286 }, 287 { 288 "SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ", 289 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, 290 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, 291 SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ, 292 SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ_BIT 293 }, 294 { 295 "SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE", 296 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, 297 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, 298 SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE, 299 SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE_BIT 300 }, 301 { 302 "SYNC_GEOMETRY_SHADER_UNIFORM_READ", 303 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, 304 VK_ACCESS_2_UNIFORM_READ_BIT_KHR, 305 SYNC_GEOMETRY_SHADER_UNIFORM_READ, 306 SYNC_GEOMETRY_SHADER_UNIFORM_READ_BIT 307 }, 308 { 309 "SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT", 310 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, 311 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, 312 SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT, 313 SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT 314 }, 315 { 316 "SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT", 317 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, 318 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, 319 SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT, 320 SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT 321 }, 322 { 323 "SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_WRITE_EXT", 324 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, 325 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, 326 SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_WRITE_EXT, 327 SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_WRITE_BIT_EXT 328 }, 329 { 330 "SYNC_FRAGMENT_DENSITY_PROCESS_EXT_FRAGMENT_DENSITY_MAP_READ_EXT", 331 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, 332 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, 333 SYNC_FRAGMENT_DENSITY_PROCESS_EXT_FRAGMENT_DENSITY_MAP_READ_EXT, 334 SYNC_FRAGMENT_DENSITY_PROCESS_BIT_EXT_FRAGMENT_DENSITY_MAP_READ_BIT_EXT 335 }, 336 { 337 "SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ", 338 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, 339 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 340 SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ, 341 SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT 342 }, 343 { 344 "SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ", 345 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, 346 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, 347 SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ, 348 SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ_BIT 349 }, 350 { 351 "SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ", 352 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, 353 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, 354 SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ, 355 SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ_BIT 356 }, 357 { 358 "SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE", 359 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, 360 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, 361 SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE, 362 SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE_BIT 363 }, 364 { 365 "SYNC_TASK_SHADER_NV_UNIFORM_READ", 366 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, 367 VK_ACCESS_2_UNIFORM_READ_BIT_KHR, 368 SYNC_TASK_SHADER_NV_UNIFORM_READ, 369 SYNC_TASK_SHADER_NV_UNIFORM_READ_BIT 370 }, 371 { 372 "SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ", 373 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, 374 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 375 SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ, 376 SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT 377 }, 378 { 379 "SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ", 380 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, 381 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, 382 SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ, 383 SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ_BIT 384 }, 385 { 386 "SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ", 387 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, 388 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, 389 SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ, 390 SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ_BIT 391 }, 392 { 393 "SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE", 394 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, 395 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, 396 SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE, 397 SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE_BIT 398 }, 399 { 400 "SYNC_MESH_SHADER_NV_UNIFORM_READ", 401 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, 402 VK_ACCESS_2_UNIFORM_READ_BIT_KHR, 403 SYNC_MESH_SHADER_NV_UNIFORM_READ, 404 SYNC_MESH_SHADER_NV_UNIFORM_READ_BIT 405 }, 406 { 407 "SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ", 408 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, 409 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, 410 SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ, 411 SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT 412 }, 413 { 414 "SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ", 415 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, 416 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, 417 SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ, 418 SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT 419 }, 420 { 421 "SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE", 422 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, 423 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, 424 SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE, 425 SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT 426 }, 427 { 428 "SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ", 429 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, 430 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 431 SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ, 432 SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ_BIT 433 }, 434 { 435 "SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ", 436 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, 437 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, 438 SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ, 439 SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ_BIT 440 }, 441 { 442 "SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ", 443 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, 444 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, 445 SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ, 446 SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ_BIT 447 }, 448 { 449 "SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ", 450 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, 451 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, 452 SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ, 453 SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ_BIT 454 }, 455 { 456 "SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE", 457 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, 458 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, 459 SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE, 460 SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE_BIT 461 }, 462 { 463 "SYNC_FRAGMENT_SHADER_UNIFORM_READ", 464 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, 465 VK_ACCESS_2_UNIFORM_READ_BIT_KHR, 466 SYNC_FRAGMENT_SHADER_UNIFORM_READ, 467 SYNC_FRAGMENT_SHADER_UNIFORM_READ_BIT 468 }, 469 { 470 "SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ", 471 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, 472 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, 473 SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ, 474 SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT 475 }, 476 { 477 "SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE", 478 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, 479 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, 480 SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE, 481 SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT 482 }, 483 { 484 "SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ", 485 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, 486 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, 487 SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ, 488 SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_BIT 489 }, 490 { 491 "SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_EXT", 492 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, 493 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, 494 SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_EXT, 495 SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT 496 }, 497 { 498 "SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE", 499 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, 500 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, 501 SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE, 502 SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE_BIT 503 }, 504 { 505 "SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ", 506 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, 507 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 508 SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ, 509 SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ_BIT 510 }, 511 { 512 "SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ", 513 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, 514 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, 515 SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ, 516 SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ_BIT 517 }, 518 { 519 "SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ", 520 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, 521 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, 522 SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ, 523 SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ_BIT 524 }, 525 { 526 "SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE", 527 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, 528 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, 529 SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE, 530 SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE_BIT 531 }, 532 { 533 "SYNC_COMPUTE_SHADER_UNIFORM_READ", 534 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, 535 VK_ACCESS_2_UNIFORM_READ_BIT_KHR, 536 SYNC_COMPUTE_SHADER_UNIFORM_READ, 537 SYNC_COMPUTE_SHADER_UNIFORM_READ_BIT 538 }, 539 { 540 "SYNC_COPY_TRANSFER_READ", 541 VK_PIPELINE_STAGE_2_COPY_BIT_KHR, 542 VK_ACCESS_2_TRANSFER_READ_BIT_KHR, 543 SYNC_COPY_TRANSFER_READ, 544 SYNC_COPY_TRANSFER_READ_BIT 545 }, 546 { 547 "SYNC_COPY_TRANSFER_WRITE", 548 VK_PIPELINE_STAGE_2_COPY_BIT_KHR, 549 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, 550 SYNC_COPY_TRANSFER_WRITE, 551 SYNC_COPY_TRANSFER_WRITE_BIT 552 }, 553 { 554 "SYNC_RESOLVE_TRANSFER_READ", 555 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, 556 VK_ACCESS_2_TRANSFER_READ_BIT_KHR, 557 SYNC_RESOLVE_TRANSFER_READ, 558 SYNC_RESOLVE_TRANSFER_READ_BIT 559 }, 560 { 561 "SYNC_RESOLVE_TRANSFER_WRITE", 562 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, 563 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, 564 SYNC_RESOLVE_TRANSFER_WRITE, 565 SYNC_RESOLVE_TRANSFER_WRITE_BIT 566 }, 567 { 568 "SYNC_BLIT_TRANSFER_READ", 569 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, 570 VK_ACCESS_2_TRANSFER_READ_BIT_KHR, 571 SYNC_BLIT_TRANSFER_READ, 572 SYNC_BLIT_TRANSFER_READ_BIT 573 }, 574 { 575 "SYNC_BLIT_TRANSFER_WRITE", 576 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, 577 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, 578 SYNC_BLIT_TRANSFER_WRITE, 579 SYNC_BLIT_TRANSFER_WRITE_BIT 580 }, 581 { 582 "SYNC_CLEAR_TRANSFER_WRITE", 583 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, 584 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, 585 SYNC_CLEAR_TRANSFER_WRITE, 586 SYNC_CLEAR_TRANSFER_WRITE_BIT 587 }, 588 { 589 "SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_READ_NV", 590 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV, 591 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, 592 SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_READ_NV, 593 SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_READ_BIT_NV 594 }, 595 { 596 "SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_WRITE_NV", 597 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV, 598 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, 599 SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_WRITE_NV, 600 SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_WRITE_BIT_NV 601 }, 602 { 603 "SYNC_CONDITIONAL_RENDERING_EXT_CONDITIONAL_RENDERING_READ_EXT", 604 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, 605 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, 606 SYNC_CONDITIONAL_RENDERING_EXT_CONDITIONAL_RENDERING_READ_EXT, 607 SYNC_CONDITIONAL_RENDERING_BIT_EXT_CONDITIONAL_RENDERING_READ_BIT_EXT 608 }, 609 { 610 "SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ", 611 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, 612 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 613 SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ, 614 SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ_BIT 615 }, 616 { 617 "SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ", 618 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, 619 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, 620 SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ, 621 SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ_BIT 622 }, 623 { 624 "SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ", 625 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, 626 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, 627 SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ, 628 SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ_BIT 629 }, 630 { 631 "SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE", 632 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, 633 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, 634 SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE, 635 SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE_BIT 636 }, 637 { 638 "SYNC_RAY_TRACING_SHADER_UNIFORM_READ", 639 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, 640 VK_ACCESS_2_UNIFORM_READ_BIT_KHR, 641 SYNC_RAY_TRACING_SHADER_UNIFORM_READ, 642 SYNC_RAY_TRACING_SHADER_UNIFORM_READ_BIT 643 }, 644 { 645 "SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ", 646 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 647 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 648 SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ, 649 SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ_BIT 650 }, 651 { 652 "SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE", 653 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 654 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, 655 SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE, 656 SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE_BIT 657 }, 658 { 659 "SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ", 660 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 661 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, 662 SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ, 663 SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ_BIT 664 }, 665 { 666 "SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ", 667 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 668 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, 669 SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ, 670 SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ_BIT 671 }, 672 { 673 "SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ", 674 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 675 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, 676 SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ, 677 SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ_BIT 678 }, 679 { 680 "SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ", 681 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 682 VK_ACCESS_2_TRANSFER_READ_BIT_KHR, 683 SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ, 684 SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ_BIT 685 }, 686 { 687 "SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE", 688 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 689 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, 690 SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE, 691 SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE_BIT 692 }, 693 { 694 "SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ", 695 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 696 VK_ACCESS_2_UNIFORM_READ_BIT_KHR, 697 SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ, 698 SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ_BIT 699 }, 700 { 701 "SYNC_VIDEO_DECODE_VIDEO_DECODE_READ", 702 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR, 703 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, 704 SYNC_VIDEO_DECODE_VIDEO_DECODE_READ, 705 SYNC_VIDEO_DECODE_VIDEO_DECODE_READ_BIT 706 }, 707 { 708 "SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE", 709 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR, 710 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, 711 SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE, 712 SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE_BIT 713 }, 714 { 715 "SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ", 716 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR, 717 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, 718 SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ, 719 SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ_BIT 720 }, 721 { 722 "SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE", 723 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR, 724 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, 725 SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE, 726 SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE_BIT 727 }, 728 { 729 "SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ", 730 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, 731 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, 732 SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ, 733 SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ_BIT 734 }, 735 { 736 "SYNC_HOST_HOST_READ", 737 VK_PIPELINE_STAGE_2_HOST_BIT_KHR, 738 VK_ACCESS_2_HOST_READ_BIT_KHR, 739 SYNC_HOST_HOST_READ, 740 SYNC_HOST_HOST_READ_BIT 741 }, 742 { 743 "SYNC_HOST_HOST_WRITE", 744 VK_PIPELINE_STAGE_2_HOST_BIT_KHR, 745 VK_ACCESS_2_HOST_WRITE_BIT_KHR, 746 SYNC_HOST_HOST_WRITE, 747 SYNC_HOST_HOST_WRITE_BIT 748 }, 749 { 750 "SYNC_IMAGE_LAYOUT_TRANSITION", 751 VK_PIPELINE_STAGE_2_NONE_KHR, 752 VK_ACCESS_2_NONE_KHR, 753 SYNC_IMAGE_LAYOUT_TRANSITION, 754 SYNC_IMAGE_LAYOUT_TRANSITION_BIT 755 }, 756 { 757 "SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER", 758 VK_PIPELINE_STAGE_2_NONE_KHR, 759 VK_ACCESS_2_NONE_KHR, 760 SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER, 761 SYNC_QUEUE_FAMILY_OWNERSHIP_TRANSFER_BIT 762 }, 763 } }; 764 765 // Constants defining the mask of all read and write stage_access states 766 // Bit order mask of stage_access bit for each stage 767 const std::map<VkPipelineStageFlags2KHR, SyncStageAccessFlags> syncStageAccessMaskByStageBit { 768 { VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, ( 769 SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ_BIT | 770 SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT 771 )}, 772 { VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, ( 773 SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 774 SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ_BIT | 775 SYNC_VERTEX_SHADER_SHADER_STORAGE_READ_BIT | 776 SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE_BIT | 777 SYNC_VERTEX_SHADER_UNIFORM_READ_BIT 778 )}, 779 { VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, ( 780 SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 781 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ_BIT | 782 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ_BIT | 783 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE_BIT | 784 SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ_BIT 785 )}, 786 { VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, ( 787 SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 788 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ_BIT | 789 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ_BIT | 790 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE_BIT | 791 SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ_BIT 792 )}, 793 { VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, ( 794 SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 795 SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ_BIT | 796 SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ_BIT | 797 SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE_BIT | 798 SYNC_GEOMETRY_SHADER_UNIFORM_READ_BIT 799 )}, 800 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, ( 801 SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 802 SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ_BIT | 803 SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ_BIT | 804 SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ_BIT | 805 SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE_BIT | 806 SYNC_FRAGMENT_SHADER_UNIFORM_READ_BIT 807 )}, 808 { VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, ( 809 SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | 810 SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT 811 )}, 812 { VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, ( 813 SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | 814 SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT 815 )}, 816 { VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, ( 817 SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_BIT | 818 SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT | 819 SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE_BIT 820 )}, 821 { VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, ( 822 SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 823 SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ_BIT | 824 SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ_BIT | 825 SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE_BIT | 826 SYNC_COMPUTE_SHADER_UNIFORM_READ_BIT 827 )}, 828 { VK_PIPELINE_STAGE_2_HOST_BIT_KHR, ( 829 SYNC_HOST_HOST_READ_BIT | 830 SYNC_HOST_HOST_WRITE_BIT 831 )}, 832 { VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV, ( 833 SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_READ_BIT_NV | 834 SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_WRITE_BIT_NV 835 )}, 836 { VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, SYNC_CONDITIONAL_RENDERING_BIT_EXT_CONDITIONAL_RENDERING_READ_BIT_EXT}, 837 { VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, ( 838 SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT | 839 SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ_BIT | 840 SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ_BIT | 841 SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE_BIT | 842 SYNC_TASK_SHADER_NV_UNIFORM_READ_BIT 843 )}, 844 { VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, ( 845 SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT | 846 SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ_BIT | 847 SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ_BIT | 848 SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE_BIT | 849 SYNC_MESH_SHADER_NV_UNIFORM_READ_BIT 850 )}, 851 { VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, ( 852 SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 853 SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ_BIT | 854 SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ_BIT | 855 SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE_BIT | 856 SYNC_RAY_TRACING_SHADER_UNIFORM_READ_BIT 857 )}, 858 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT}, 859 { VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, SYNC_FRAGMENT_DENSITY_PROCESS_BIT_EXT_FRAGMENT_DENSITY_MAP_READ_BIT_EXT}, 860 { VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, ( 861 SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT | 862 SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT | 863 SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_WRITE_BIT_EXT 864 )}, 865 { VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, ( 866 SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ_BIT | 867 SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE_BIT | 868 SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ_BIT | 869 SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ_BIT | 870 SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ_BIT | 871 SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ_BIT | 872 SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE_BIT | 873 SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ_BIT 874 )}, 875 { VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR, ( 876 SYNC_VIDEO_DECODE_VIDEO_DECODE_READ_BIT | 877 SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE_BIT 878 )}, 879 { VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR, ( 880 SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ_BIT | 881 SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE_BIT 882 )}, 883 { VK_PIPELINE_STAGE_2_COPY_BIT_KHR, ( 884 SYNC_COPY_TRANSFER_READ_BIT | 885 SYNC_COPY_TRANSFER_WRITE_BIT 886 )}, 887 { VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, ( 888 SYNC_RESOLVE_TRANSFER_READ_BIT | 889 SYNC_RESOLVE_TRANSFER_WRITE_BIT 890 )}, 891 { VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, ( 892 SYNC_BLIT_TRANSFER_READ_BIT | 893 SYNC_BLIT_TRANSFER_WRITE_BIT 894 )}, 895 { VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, SYNC_CLEAR_TRANSFER_WRITE_BIT}, 896 { VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, SYNC_INDEX_INPUT_INDEX_READ_BIT}, 897 { VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ_BIT}, 898 { VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ_BIT}, 899 }; 900 901 // Bit order mask of stage_access bit for each access 902 const std::map<VkAccessFlags2KHR, SyncStageAccessFlags> syncStageAccessMaskByAccessBit { 903 { VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, ( 904 SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ_BIT | 905 SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ_BIT 906 )}, 907 { VK_ACCESS_2_INDEX_READ_BIT_KHR, SYNC_INDEX_INPUT_INDEX_READ_BIT}, 908 { VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ_BIT}, 909 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, ( 910 SYNC_VERTEX_SHADER_UNIFORM_READ_BIT | 911 SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ_BIT | 912 SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ_BIT | 913 SYNC_GEOMETRY_SHADER_UNIFORM_READ_BIT | 914 SYNC_TASK_SHADER_NV_UNIFORM_READ_BIT | 915 SYNC_MESH_SHADER_NV_UNIFORM_READ_BIT | 916 SYNC_FRAGMENT_SHADER_UNIFORM_READ_BIT | 917 SYNC_COMPUTE_SHADER_UNIFORM_READ_BIT | 918 SYNC_RAY_TRACING_SHADER_UNIFORM_READ_BIT | 919 SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ_BIT 920 )}, 921 { VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, ( 922 SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ_BIT | 923 SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ_BIT 924 )}, 925 { VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_BIT}, 926 { VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE_BIT}, 927 { VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, ( 928 SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | 929 SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ_BIT 930 )}, 931 { VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, ( 932 SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | 933 SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT 934 )}, 935 { VK_ACCESS_2_TRANSFER_READ_BIT_KHR, ( 936 SYNC_COPY_TRANSFER_READ_BIT | 937 SYNC_RESOLVE_TRANSFER_READ_BIT | 938 SYNC_BLIT_TRANSFER_READ_BIT | 939 SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ_BIT 940 )}, 941 { VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, ( 942 SYNC_COPY_TRANSFER_WRITE_BIT | 943 SYNC_RESOLVE_TRANSFER_WRITE_BIT | 944 SYNC_BLIT_TRANSFER_WRITE_BIT | 945 SYNC_CLEAR_TRANSFER_WRITE_BIT | 946 SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE_BIT 947 )}, 948 { VK_ACCESS_2_HOST_READ_BIT_KHR, SYNC_HOST_HOST_READ_BIT}, 949 { VK_ACCESS_2_HOST_WRITE_BIT_KHR, SYNC_HOST_HOST_WRITE_BIT}, 950 { VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_READ_BIT_NV}, 951 { VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, SYNC_COMMAND_PREPROCESS_BIT_NV_COMMAND_PREPROCESS_WRITE_BIT_NV}, 952 { VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT}, 953 { VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, SYNC_CONDITIONAL_RENDERING_BIT_EXT_CONDITIONAL_RENDERING_READ_BIT_EXT}, 954 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, ( 955 SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 956 SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 957 SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 958 SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 959 SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT | 960 SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ_BIT | 961 SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 962 SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 963 SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ_BIT | 964 SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ_BIT 965 )}, 966 { VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE_BIT}, 967 { VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT}, 968 { VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, SYNC_FRAGMENT_DENSITY_PROCESS_BIT_EXT_FRAGMENT_DENSITY_MAP_READ_BIT_EXT}, 969 { VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_WRITE_BIT_EXT}, 970 { VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, ( 971 SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT | 972 SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT 973 )}, 974 { VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, SYNC_TRANSFORM_FEEDBACK_BIT_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT}, 975 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, ( 976 SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ_BIT | 977 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ_BIT | 978 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ_BIT | 979 SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ_BIT | 980 SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ_BIT | 981 SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ_BIT | 982 SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ_BIT | 983 SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ_BIT | 984 SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ_BIT | 985 SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ_BIT 986 )}, 987 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, ( 988 SYNC_VERTEX_SHADER_SHADER_STORAGE_READ_BIT | 989 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ_BIT | 990 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ_BIT | 991 SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ_BIT | 992 SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ_BIT | 993 SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ_BIT | 994 SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ_BIT | 995 SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ_BIT | 996 SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ_BIT | 997 SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ_BIT 998 )}, 999 { VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, ( 1000 SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE_BIT | 1001 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE_BIT | 1002 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE_BIT | 1003 SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE_BIT | 1004 SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE_BIT | 1005 SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE_BIT | 1006 SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE_BIT | 1007 SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE_BIT | 1008 SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE_BIT 1009 )}, 1010 { VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, SYNC_VIDEO_DECODE_VIDEO_DECODE_READ_BIT}, 1011 { VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE_BIT}, 1012 { VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ_BIT}, 1013 { VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE_BIT}, 1014 { VK_ACCESS_2_MEMORY_READ_BIT_KHR, syncStageAccessReadMask}, 1015 { VK_ACCESS_2_MEMORY_WRITE_BIT_KHR, syncStageAccessWriteMask}, 1016 }; 1017 1018 // stage_access index for each stage and access 1019 const std::map<VkPipelineStageFlags2KHR, std::map<VkAccessFlags2KHR, SyncStageAccessIndex>> syncStageAccessIndexByStageAndAccess { 1020 { VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, { 1021 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_READ }, 1022 { VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, SYNC_ACCELERATION_STRUCTURE_BUILD_ACCELERATION_STRUCTURE_WRITE }, 1023 { VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, SYNC_ACCELERATION_STRUCTURE_BUILD_INDIRECT_COMMAND_READ }, 1024 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_SAMPLED_READ }, 1025 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, SYNC_ACCELERATION_STRUCTURE_BUILD_SHADER_STORAGE_READ }, 1026 { VK_ACCESS_2_TRANSFER_READ_BIT_KHR, SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_READ }, 1027 { VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, SYNC_ACCELERATION_STRUCTURE_BUILD_TRANSFER_WRITE }, 1028 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, SYNC_ACCELERATION_STRUCTURE_BUILD_UNIFORM_READ } 1029 } }, 1030 { VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, { 1031 { VK_ACCESS_2_TRANSFER_READ_BIT_KHR, SYNC_BLIT_TRANSFER_READ }, 1032 { VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, SYNC_BLIT_TRANSFER_WRITE } 1033 } }, 1034 { VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, { 1035 { VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, SYNC_CLEAR_TRANSFER_WRITE } 1036 } }, 1037 { VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, { 1038 { VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ }, 1039 { VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ_NONCOHERENT_EXT }, 1040 { VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_WRITE } 1041 } }, 1042 { VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV, { 1043 { VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_READ_NV }, 1044 { VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, SYNC_COMMAND_PREPROCESS_NV_COMMAND_PREPROCESS_WRITE_NV } 1045 } }, 1046 { VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, { 1047 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, SYNC_COMPUTE_SHADER_ACCELERATION_STRUCTURE_READ }, 1048 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ }, 1049 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ }, 1050 { VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE }, 1051 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, SYNC_COMPUTE_SHADER_UNIFORM_READ } 1052 } }, 1053 { VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, { 1054 { VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, SYNC_CONDITIONAL_RENDERING_EXT_CONDITIONAL_RENDERING_READ_EXT } 1055 } }, 1056 { VK_PIPELINE_STAGE_2_COPY_BIT_KHR, { 1057 { VK_ACCESS_2_TRANSFER_READ_BIT_KHR, SYNC_COPY_TRANSFER_READ }, 1058 { VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, SYNC_COPY_TRANSFER_WRITE } 1059 } }, 1060 { VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, { 1061 { VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, SYNC_DRAW_INDIRECT_INDIRECT_COMMAND_READ }, 1062 { VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, SYNC_DRAW_INDIRECT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT } 1063 } }, 1064 { VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, { 1065 { VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ }, 1066 { VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE } 1067 } }, 1068 { VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, { 1069 { VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, SYNC_FRAGMENT_DENSITY_PROCESS_EXT_FRAGMENT_DENSITY_MAP_READ_EXT } 1070 } }, 1071 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, { 1072 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, SYNC_FRAGMENT_SHADER_ACCELERATION_STRUCTURE_READ }, 1073 { VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, SYNC_FRAGMENT_SHADER_INPUT_ATTACHMENT_READ }, 1074 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ }, 1075 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ }, 1076 { VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE }, 1077 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, SYNC_FRAGMENT_SHADER_UNIFORM_READ } 1078 } }, 1079 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, { 1080 { VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, SYNC_FRAGMENT_SHADING_RATE_ATTACHMENT_FRAGMENT_SHADING_RATE_ATTACHMENT_READ } 1081 } }, 1082 { VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, { 1083 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, SYNC_GEOMETRY_SHADER_ACCELERATION_STRUCTURE_READ }, 1084 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ }, 1085 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ }, 1086 { VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE }, 1087 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, SYNC_GEOMETRY_SHADER_UNIFORM_READ } 1088 } }, 1089 { VK_PIPELINE_STAGE_2_HOST_BIT_KHR, { 1090 { VK_ACCESS_2_HOST_READ_BIT_KHR, SYNC_HOST_HOST_READ }, 1091 { VK_ACCESS_2_HOST_WRITE_BIT_KHR, SYNC_HOST_HOST_WRITE } 1092 } }, 1093 { VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, { 1094 { VK_ACCESS_2_INDEX_READ_BIT_KHR, SYNC_INDEX_INPUT_INDEX_READ } 1095 } }, 1096 { VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, { 1097 { VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ }, 1098 { VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, SYNC_LATE_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_WRITE } 1099 } }, 1100 { VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, { 1101 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, SYNC_MESH_SHADER_NV_ACCELERATION_STRUCTURE_READ }, 1102 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ }, 1103 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ }, 1104 { VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE }, 1105 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, SYNC_MESH_SHADER_NV_UNIFORM_READ } 1106 } }, 1107 { VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, { 1108 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, SYNC_RAY_TRACING_SHADER_ACCELERATION_STRUCTURE_READ }, 1109 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ }, 1110 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ }, 1111 { VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE }, 1112 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, SYNC_RAY_TRACING_SHADER_UNIFORM_READ } 1113 } }, 1114 { VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, { 1115 { VK_ACCESS_2_TRANSFER_READ_BIT_KHR, SYNC_RESOLVE_TRANSFER_READ }, 1116 { VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, SYNC_RESOLVE_TRANSFER_WRITE } 1117 } }, 1118 { VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, { 1119 { VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, SYNC_SUBPASS_SHADING_HUAWEI_INPUT_ATTACHMENT_READ } 1120 } }, 1121 { VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, { 1122 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, SYNC_TASK_SHADER_NV_ACCELERATION_STRUCTURE_READ }, 1123 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ }, 1124 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ }, 1125 { VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE }, 1126 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, SYNC_TASK_SHADER_NV_UNIFORM_READ } 1127 } }, 1128 { VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, { 1129 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, SYNC_TESSELLATION_CONTROL_SHADER_ACCELERATION_STRUCTURE_READ }, 1130 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ }, 1131 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ }, 1132 { VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE }, 1133 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ } 1134 } }, 1135 { VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, { 1136 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, SYNC_TESSELLATION_EVALUATION_SHADER_ACCELERATION_STRUCTURE_READ }, 1137 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ }, 1138 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ }, 1139 { VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE }, 1140 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ } 1141 } }, 1142 { VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, { 1143 { VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_READ_EXT }, 1144 { VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT }, 1145 { VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, SYNC_TRANSFORM_FEEDBACK_EXT_TRANSFORM_FEEDBACK_WRITE_EXT } 1146 } }, 1147 { VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, { 1148 { VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, SYNC_VERTEX_ATTRIBUTE_INPUT_VERTEX_ATTRIBUTE_READ } 1149 } }, 1150 { VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, { 1151 { VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, SYNC_VERTEX_SHADER_ACCELERATION_STRUCTURE_READ }, 1152 { VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ }, 1153 { VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, SYNC_VERTEX_SHADER_SHADER_STORAGE_READ }, 1154 { VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE }, 1155 { VK_ACCESS_2_UNIFORM_READ_BIT_KHR, SYNC_VERTEX_SHADER_UNIFORM_READ } 1156 } }, 1157 { VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR, { 1158 { VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, SYNC_VIDEO_DECODE_VIDEO_DECODE_READ }, 1159 { VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, SYNC_VIDEO_DECODE_VIDEO_DECODE_WRITE } 1160 } }, 1161 { VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR, { 1162 { VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, SYNC_VIDEO_ENCODE_VIDEO_ENCODE_READ }, 1163 { VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, SYNC_VIDEO_ENCODE_VIDEO_ENCODE_WRITE } 1164 } }, 1165 }; 1166 1167 // Direct VkPipelineStageFlags to valid VkAccessFlags lookup table 1168 const std::map<VkPipelineStageFlags2KHR, VkAccessFlags2KHR> syncDirectStageToAccessMask { 1169 { VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, ( 1170 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR | 1171 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT 1172 )}, 1173 { VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, ( 1174 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR | 1175 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR | 1176 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR | 1177 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR | 1178 VK_ACCESS_2_UNIFORM_READ_BIT_KHR 1179 )}, 1180 { VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, ( 1181 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR | 1182 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR | 1183 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR | 1184 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR | 1185 VK_ACCESS_2_UNIFORM_READ_BIT_KHR 1186 )}, 1187 { VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, ( 1188 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR | 1189 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR | 1190 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR | 1191 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR | 1192 VK_ACCESS_2_UNIFORM_READ_BIT_KHR 1193 )}, 1194 { VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, ( 1195 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR | 1196 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR | 1197 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR | 1198 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR | 1199 VK_ACCESS_2_UNIFORM_READ_BIT_KHR 1200 )}, 1201 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, ( 1202 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR | 1203 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR | 1204 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR | 1205 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR | 1206 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR | 1207 VK_ACCESS_2_UNIFORM_READ_BIT_KHR 1208 )}, 1209 { VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, ( 1210 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR | 1211 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR 1212 )}, 1213 { VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, ( 1214 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR | 1215 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR 1216 )}, 1217 { VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, ( 1218 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR | 1219 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT | 1220 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR 1221 )}, 1222 { VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, ( 1223 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR | 1224 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR | 1225 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR | 1226 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR | 1227 VK_ACCESS_2_UNIFORM_READ_BIT_KHR 1228 )}, 1229 { VK_PIPELINE_STAGE_2_HOST_BIT_KHR, ( 1230 VK_ACCESS_2_HOST_READ_BIT_KHR | 1231 VK_ACCESS_2_HOST_WRITE_BIT_KHR 1232 )}, 1233 { VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV, ( 1234 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV | 1235 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV 1236 )}, 1237 { VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT}, 1238 { VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, ( 1239 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR | 1240 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR | 1241 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR | 1242 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR | 1243 VK_ACCESS_2_UNIFORM_READ_BIT_KHR 1244 )}, 1245 { VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, ( 1246 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR | 1247 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR | 1248 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR | 1249 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR | 1250 VK_ACCESS_2_UNIFORM_READ_BIT_KHR 1251 )}, 1252 { VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, ( 1253 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR | 1254 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR | 1255 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR | 1256 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR | 1257 VK_ACCESS_2_UNIFORM_READ_BIT_KHR 1258 )}, 1259 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR}, 1260 { VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT}, 1261 { VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, ( 1262 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT | 1263 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT | 1264 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT 1265 )}, 1266 { VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, ( 1267 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR | 1268 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR | 1269 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR | 1270 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR | 1271 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR | 1272 VK_ACCESS_2_TRANSFER_READ_BIT_KHR | 1273 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR | 1274 VK_ACCESS_2_UNIFORM_READ_BIT_KHR 1275 )}, 1276 { VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR, ( 1277 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR | 1278 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR 1279 )}, 1280 { VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR, ( 1281 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR | 1282 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR 1283 )}, 1284 { VK_PIPELINE_STAGE_2_COPY_BIT_KHR, ( 1285 VK_ACCESS_2_TRANSFER_READ_BIT_KHR | 1286 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR 1287 )}, 1288 { VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, ( 1289 VK_ACCESS_2_TRANSFER_READ_BIT_KHR | 1290 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR 1291 )}, 1292 { VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, ( 1293 VK_ACCESS_2_TRANSFER_READ_BIT_KHR | 1294 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR 1295 )}, 1296 { VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR}, 1297 { VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_ACCESS_2_INDEX_READ_BIT_KHR}, 1298 { VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR}, 1299 { VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR}, 1300 }; 1301 1302 // Pipeline stages corresponding to VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR for each VkQueueFlagBits 1303 const std::map<VkQueueFlagBits, VkPipelineStageFlags2KHR> syncAllCommandStagesByQueueFlags { 1304 { VK_QUEUE_COMPUTE_BIT, ( 1305 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1306 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1307 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR | 1308 VK_PIPELINE_STAGE_2_COPY_BIT_KHR | 1309 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR | 1310 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR | 1311 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR | 1312 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV | 1313 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT | 1314 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR | 1315 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR | 1316 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR | 1317 VK_PIPELINE_STAGE_2_HOST_BIT_KHR 1318 )}, 1319 { VK_QUEUE_GRAPHICS_BIT, ( 1320 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1321 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1322 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1323 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1324 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1325 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1326 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1327 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1328 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1329 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT | 1330 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV | 1331 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV | 1332 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1333 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1334 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1335 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1336 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1337 VK_PIPELINE_STAGE_2_COPY_BIT_KHR | 1338 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR | 1339 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR | 1340 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR | 1341 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV | 1342 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT | 1343 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI | 1344 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR | 1345 VK_PIPELINE_STAGE_2_HOST_BIT_KHR 1346 )}, 1347 { VK_QUEUE_TRANSFER_BIT, ( 1348 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1349 VK_PIPELINE_STAGE_2_COPY_BIT_KHR | 1350 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR | 1351 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR | 1352 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR | 1353 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR | 1354 VK_PIPELINE_STAGE_2_HOST_BIT_KHR 1355 )}, 1356 { VK_QUEUE_VIDEO_DECODE_BIT_KHR, ( 1357 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1358 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR | 1359 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR | 1360 VK_PIPELINE_STAGE_2_HOST_BIT_KHR 1361 )}, 1362 { VK_QUEUE_VIDEO_ENCODE_BIT_KHR, ( 1363 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1364 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR | 1365 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR | 1366 VK_PIPELINE_STAGE_2_HOST_BIT_KHR 1367 )}, 1368 }; 1369 1370 // Masks of logically earlier stage flags for a given stage flag 1371 const std::map<VkPipelineStageFlags2KHR, VkPipelineStageFlags2KHR> syncLogicallyEarlierStages { 1372 { VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1373 { VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1374 { VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, ( 1375 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1376 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR 1377 )}, 1378 { VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, ( 1379 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1380 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1381 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR 1382 )}, 1383 { VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, ( 1384 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1385 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1386 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1387 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR 1388 )}, 1389 { VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, ( 1390 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1391 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1392 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1393 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1394 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR 1395 )}, 1396 { VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, ( 1397 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1398 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1399 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1400 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1401 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1402 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR 1403 )}, 1404 { VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, ( 1405 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1406 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1407 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1408 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1409 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1410 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1411 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR 1412 )}, 1413 { VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, ( 1414 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1415 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1416 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1417 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1418 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1419 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1420 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1421 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR 1422 )}, 1423 { VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1424 { VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, ( 1425 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1426 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR 1427 )}, 1428 { VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, ( 1429 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1430 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1431 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV 1432 )}, 1433 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, ( 1434 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1435 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1436 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1437 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1438 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1439 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1440 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1441 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1442 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1443 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV | 1444 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV 1445 )}, 1446 { VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, ( 1447 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1448 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1449 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1450 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1451 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1452 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1453 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1454 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1455 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1456 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT | 1457 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV | 1458 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV | 1459 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR 1460 )}, 1461 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, ( 1462 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1463 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1464 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1465 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1466 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1467 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1468 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1469 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1470 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1471 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT | 1472 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV | 1473 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV | 1474 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1475 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR 1476 )}, 1477 { VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, ( 1478 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1479 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1480 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1481 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1482 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1483 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1484 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1485 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1486 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1487 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT | 1488 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV | 1489 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV | 1490 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1491 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1492 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR 1493 )}, 1494 { VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, ( 1495 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1496 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1497 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1498 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1499 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1500 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1501 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1502 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1503 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1504 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT | 1505 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV | 1506 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV | 1507 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1508 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1509 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1510 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR 1511 )}, 1512 { VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, ( 1513 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1514 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR 1515 )}, 1516 { VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1517 { VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1518 { VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1519 { VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1520 { VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1521 { VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1522 { VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, ( 1523 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1524 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR 1525 )}, 1526 { VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1527 { VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1528 { VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1529 { VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR}, 1530 { VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR, ( 1531 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1532 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1533 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1534 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1535 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1536 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1537 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1538 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1539 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1540 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT | 1541 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV | 1542 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV | 1543 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1544 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1545 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1546 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1547 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1548 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR | 1549 VK_PIPELINE_STAGE_2_COPY_BIT_KHR | 1550 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR | 1551 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR | 1552 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR | 1553 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV | 1554 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT | 1555 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR | 1556 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR | 1557 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR | 1558 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR | 1559 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI | 1560 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1561 )}, 1562 }; 1563 1564 // Masks of logically later stage flags for a given stage flag 1565 const std::map<VkPipelineStageFlags2KHR, VkPipelineStageFlags2KHR> syncLogicallyLaterStages { 1566 { VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, ( 1567 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR | 1568 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR | 1569 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1570 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1571 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1572 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1573 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1574 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1575 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1576 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT | 1577 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV | 1578 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV | 1579 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1580 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1581 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1582 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1583 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1584 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR | 1585 VK_PIPELINE_STAGE_2_COPY_BIT_KHR | 1586 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR | 1587 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR | 1588 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR | 1589 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV | 1590 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT | 1591 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR | 1592 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR | 1593 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR | 1594 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR | 1595 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI | 1596 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1597 )}, 1598 { VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, ( 1599 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR | 1600 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1601 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1602 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1603 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1604 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1605 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1606 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV | 1607 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV | 1608 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1609 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1610 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1611 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1612 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1613 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR | 1614 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR | 1615 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1616 )}, 1617 { VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, ( 1618 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR | 1619 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1620 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1621 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1622 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1623 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1624 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1625 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1626 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1627 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1628 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1629 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1630 )}, 1631 { VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, ( 1632 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR | 1633 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1634 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1635 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1636 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1637 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1638 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1639 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1640 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1641 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1642 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1643 )}, 1644 { VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, ( 1645 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR | 1646 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1647 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1648 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1649 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1650 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1651 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1652 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1653 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1654 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1655 )}, 1656 { VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, ( 1657 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR | 1658 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1659 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1660 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1661 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1662 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1663 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1664 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1665 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1666 )}, 1667 { VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, ( 1668 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR | 1669 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1670 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1671 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1672 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1673 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1674 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1675 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1676 )}, 1677 { VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, ( 1678 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT | 1679 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1680 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1681 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1682 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1683 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1684 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1685 )}, 1686 { VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, ( 1687 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1688 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1689 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1690 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1691 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1692 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1693 )}, 1694 { VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, ( 1695 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1696 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1697 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1698 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1699 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1700 )}, 1701 { VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, ( 1702 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV | 1703 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1704 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1705 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1706 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1707 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1708 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1709 )}, 1710 { VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, ( 1711 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | 1712 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1713 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1714 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1715 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1716 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1717 )}, 1718 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, ( 1719 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR | 1720 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1721 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1722 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1723 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1724 )}, 1725 { VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, ( 1726 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR | 1727 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1728 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1729 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1730 )}, 1731 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, ( 1732 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR | 1733 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1734 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1735 )}, 1736 { VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, ( 1737 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR | 1738 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR 1739 )}, 1740 { VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1741 { VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1742 { VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1743 { VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1744 { VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1745 { VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1746 { VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1747 { VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1748 { VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1749 { VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1750 { VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1751 { VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1752 { VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1753 { VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR}, 1754 }; 1755 1756 // Lookup table of stage orderings 1757 const std::map<VkPipelineStageFlags2KHR, int> syncStageOrder { 1758 { VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR, 0}, 1759 { VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, 1}, 1760 { VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, 2}, 1761 { VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, 3}, 1762 { VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR, 4}, 1763 { VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR, 5}, 1764 { VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR, 6}, 1765 { VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR, 7}, 1766 { VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, 8}, 1767 { VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, 9}, 1768 { VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV, 10}, 1769 { VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV, 11}, 1770 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, 12}, 1771 { VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, 13}, 1772 { VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, 14}, 1773 { VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, 15}, 1774 { VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR, 16}, 1775 { VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR, 17}, 1776 { VK_PIPELINE_STAGE_2_COPY_BIT_KHR, 18}, 1777 { VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, 19}, 1778 { VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, 20}, 1779 { VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, 21}, 1780 { VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV, 22}, 1781 { VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, 23}, 1782 { VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, 24}, 1783 { VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 25}, 1784 { VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR, 26}, 1785 { VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR, 27}, 1786 { VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, 28}, 1787 { VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR, 29}, 1788 { VK_PIPELINE_STAGE_2_HOST_BIT_KHR, 30}, 1789 }; 1790 1791 const std::map<VkShaderStageFlagBits, SyncShaderStageAccess> syncStageAccessMaskByShaderStage { 1792 {VK_SHADER_STAGE_VERTEX_BIT, { 1793 SYNC_VERTEX_SHADER_SHADER_SAMPLED_READ, SYNC_VERTEX_SHADER_SHADER_STORAGE_READ, SYNC_VERTEX_SHADER_SHADER_STORAGE_WRITE, SYNC_VERTEX_SHADER_UNIFORM_READ}}, 1794 {VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, { 1795 SYNC_TESSELLATION_CONTROL_SHADER_SHADER_SAMPLED_READ, SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_READ, SYNC_TESSELLATION_CONTROL_SHADER_SHADER_STORAGE_WRITE, SYNC_TESSELLATION_CONTROL_SHADER_UNIFORM_READ}}, 1796 {VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, { 1797 SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_SAMPLED_READ, SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_READ, SYNC_TESSELLATION_EVALUATION_SHADER_SHADER_STORAGE_WRITE, SYNC_TESSELLATION_EVALUATION_SHADER_UNIFORM_READ}}, 1798 {VK_SHADER_STAGE_GEOMETRY_BIT, { 1799 SYNC_GEOMETRY_SHADER_SHADER_SAMPLED_READ, SYNC_GEOMETRY_SHADER_SHADER_STORAGE_READ, SYNC_GEOMETRY_SHADER_SHADER_STORAGE_WRITE, SYNC_GEOMETRY_SHADER_UNIFORM_READ}}, 1800 {VK_SHADER_STAGE_FRAGMENT_BIT, { 1801 SYNC_FRAGMENT_SHADER_SHADER_SAMPLED_READ, SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ, SYNC_FRAGMENT_SHADER_SHADER_STORAGE_WRITE, SYNC_FRAGMENT_SHADER_UNIFORM_READ}}, 1802 {VK_SHADER_STAGE_COMPUTE_BIT, { 1803 SYNC_COMPUTE_SHADER_SHADER_SAMPLED_READ, SYNC_COMPUTE_SHADER_SHADER_STORAGE_READ, SYNC_COMPUTE_SHADER_SHADER_STORAGE_WRITE, SYNC_COMPUTE_SHADER_UNIFORM_READ}}, 1804 {VK_SHADER_STAGE_RAYGEN_BIT_KHR, { 1805 SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE, SYNC_RAY_TRACING_SHADER_UNIFORM_READ}}, 1806 {VK_SHADER_STAGE_ANY_HIT_BIT_KHR, { 1807 SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE, SYNC_RAY_TRACING_SHADER_UNIFORM_READ}}, 1808 {VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, { 1809 SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE, SYNC_RAY_TRACING_SHADER_UNIFORM_READ}}, 1810 {VK_SHADER_STAGE_MISS_BIT_KHR, { 1811 SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE, SYNC_RAY_TRACING_SHADER_UNIFORM_READ}}, 1812 {VK_SHADER_STAGE_INTERSECTION_BIT_KHR, { 1813 SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE, SYNC_RAY_TRACING_SHADER_UNIFORM_READ}}, 1814 {VK_SHADER_STAGE_CALLABLE_BIT_KHR, { 1815 SYNC_RAY_TRACING_SHADER_SHADER_SAMPLED_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_READ, SYNC_RAY_TRACING_SHADER_SHADER_STORAGE_WRITE, SYNC_RAY_TRACING_SHADER_UNIFORM_READ}}, 1816 {VK_SHADER_STAGE_TASK_BIT_NV, { 1817 SYNC_TASK_SHADER_NV_SHADER_SAMPLED_READ, SYNC_TASK_SHADER_NV_SHADER_STORAGE_READ, SYNC_TASK_SHADER_NV_SHADER_STORAGE_WRITE, SYNC_TASK_SHADER_NV_UNIFORM_READ}}, 1818 {VK_SHADER_STAGE_MESH_BIT_NV, { 1819 SYNC_MESH_SHADER_NV_SHADER_SAMPLED_READ, SYNC_MESH_SHADER_NV_SHADER_STORAGE_READ, SYNC_MESH_SHADER_NV_SHADER_STORAGE_WRITE, SYNC_MESH_SHADER_NV_UNIFORM_READ}}, 1820 }; 1821