1// Copyright 2020-2023 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5// Common Valid Usage 6// Common to structs taking VkPipelineStageFlags2 and VkAccessFlags2 parameters to define scopes 7// Set "stageMaskName" and "accessMaskName" attribute to the name of the stage and access mask to validate 8 * [[VUID-{refpage}-{accessMaskName}-03900]] 9 If pname:{accessMaskName} includes 10 ename:VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname:{stageMaskName} must: 11 include ename:VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, 12ifdef::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 13 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 14endif::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 15 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 16 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 17 * [[VUID-{refpage}-{accessMaskName}-03901]] 18 If pname:{accessMaskName} includes ename:VK_ACCESS_2_INDEX_READ_BIT, 19 pname:{stageMaskName} must: include 20 ename:VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT, 21 ename:VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, 22 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 23 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 24 * [[VUID-{refpage}-{accessMaskName}-03902]] 25 If pname:{accessMaskName} includes 26 ename:VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname:{stageMaskName} must: 27 include ename:VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT, 28 ename:VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT, 29 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 30 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 31 * [[VUID-{refpage}-{accessMaskName}-03903]] 32 If pname:{accessMaskName} includes 33 ename:VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:{stageMaskName} must: 34 include ename:VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, 35 ename:VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, 36 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 37 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 38 * [[VUID-{refpage}-{accessMaskName}-03904]] 39 If pname:{accessMaskName} includes ename:VK_ACCESS_2_UNIFORM_READ_BIT, 40 pname:{stageMaskName} must: include 41 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, 42 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the 43 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 44 * [[VUID-{refpage}-{accessMaskName}-03905]] 45 If pname:{accessMaskName} includes 46 ename:VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname:{stageMaskName} must: 47 include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, 48 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the 49 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 50 * [[VUID-{refpage}-{accessMaskName}-03906]] 51 If pname:{accessMaskName} includes 52 ename:VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname:{stageMaskName} must: 53 include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, 54 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the 55 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 56 * [[VUID-{refpage}-{accessMaskName}-03907]] 57 If pname:{accessMaskName} includes 58 ename:VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname:{stageMaskName} must: 59 include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, 60 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the 61 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 62 * [[VUID-{refpage}-{accessMaskName}-07454]] 63 If pname:{accessMaskName} includes ename:VK_ACCESS_2_SHADER_READ_BIT, 64 pname:{stageMaskName} must: include 65 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, 66 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, 67ifdef::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 68 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 69endif::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 70ifdef::VK_EXT_opacity_micromap[] 71 ename:VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, 72endif::VK_EXT_opacity_micromap[] 73 or one of the etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 74 * [[VUID-{refpage}-{accessMaskName}-03909]] 75 If pname:{accessMaskName} includes ename:VK_ACCESS_2_SHADER_WRITE_BIT, 76 pname:{stageMaskName} must: include 77 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, 78 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the 79 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 80 * [[VUID-{refpage}-{accessMaskName}-03910]] 81 If pname:{accessMaskName} includes 82 ename:VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname:{stageMaskName} must: 83 include ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT 84 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 85 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 86 * [[VUID-{refpage}-{accessMaskName}-03911]] 87 If pname:{accessMaskName} includes 88 ename:VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname:{stageMaskName} 89 must: include ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT 90 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 91 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 92 * [[VUID-{refpage}-{accessMaskName}-03912]] 93 If pname:{accessMaskName} includes 94 ename:VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, 95 pname:{stageMaskName} must: include 96 ename:VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, 97 ename:VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, 98 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 99 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 100 * [[VUID-{refpage}-{accessMaskName}-03913]] 101 If pname:{accessMaskName} includes 102 ename:VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, 103 pname:{stageMaskName} must: include 104 ename:VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT, 105 ename:VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT, 106 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 107 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 108 * [[VUID-{refpage}-{accessMaskName}-03914]] 109 If pname:{accessMaskName} includes ename:VK_ACCESS_2_TRANSFER_READ_BIT, 110 pname:{stageMaskName} must: include ename:VK_PIPELINE_STAGE_2_COPY_BIT, 111 ename:VK_PIPELINE_STAGE_2_BLIT_BIT, 112 ename:VK_PIPELINE_STAGE_2_RESOLVE_BIT, 113 ename:VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, 114ifdef::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 115 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 116endif::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 117ifdef::VK_KHR_ray_tracing_maintenance1[] 118 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, 119endif::VK_KHR_ray_tracing_maintenance1[] 120 or ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 121 * [[VUID-{refpage}-{accessMaskName}-03915]] 122 If pname:{accessMaskName} includes ename:VK_ACCESS_2_TRANSFER_WRITE_BIT, 123 pname:{stageMaskName} must: include ename:VK_PIPELINE_STAGE_2_COPY_BIT, 124 ename:VK_PIPELINE_STAGE_2_BLIT_BIT, 125 ename:VK_PIPELINE_STAGE_2_RESOLVE_BIT, 126 ename:VK_PIPELINE_STAGE_2_CLEAR_BIT, 127 ename:VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT, 128ifdef::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 129 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 130endif::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 131ifdef::VK_KHR_ray_tracing_maintenance1[] 132 or ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, 133endif::VK_KHR_ray_tracing_maintenance1[] 134 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 135 * [[VUID-{refpage}-{accessMaskName}-03916]] 136 If pname:{accessMaskName} includes ename:VK_ACCESS_2_HOST_READ_BIT, 137 pname:{stageMaskName} must: include ename:VK_PIPELINE_STAGE_2_HOST_BIT 138 * [[VUID-{refpage}-{accessMaskName}-03917]] 139 If pname:{accessMaskName} includes ename:VK_ACCESS_2_HOST_WRITE_BIT, 140 pname:{stageMaskName} must: include ename:VK_PIPELINE_STAGE_2_HOST_BIT 141ifdef::VK_EXT_conditional_rendering[] 142 * [[VUID-{refpage}-{accessMaskName}-03918]] 143 If pname:{accessMaskName} includes 144 ename:VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, 145 pname:{stageMaskName} must: include 146 ename:VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, 147 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 148 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 149endif::VK_EXT_conditional_rendering[] 150ifdef::VK_EXT_fragment_density_map[] 151 * [[VUID-{refpage}-{accessMaskName}-03919]] 152 If pname:{accessMaskName} includes 153 ename:VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, 154 pname:{stageMaskName} must: include 155 ename:VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, 156 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 157 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 158endif::VK_EXT_fragment_density_map[] 159ifdef::VK_EXT_transform_feedback[] 160 * [[VUID-{refpage}-{accessMaskName}-03920]] 161 If pname:{accessMaskName} includes 162 ename:VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, 163 pname:{stageMaskName} must: include 164 ename:VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, 165 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 166 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 167 * [[VUID-{refpage}-{accessMaskName}-04747]] 168 If pname:{accessMaskName} includes 169 ename:VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, 170 pname:{stageMaskName} must: include 171 ename:VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, 172 ename:VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, 173 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 174 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 175 * [[VUID-{refpage}-{accessMaskName}-03922]] 176 If pname:{accessMaskName} includes 177 ename:VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, 178 pname:{stageMaskName} must: include 179 ename:VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, 180 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 181 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 182endif::VK_EXT_transform_feedback[] 183ifdef::VK_NV_shading_rate_image[] 184 * [[VUID-{refpage}-{accessMaskName}-03923]] 185 If pname:{accessMaskName} includes 186 ename:VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:{stageMaskName} 187 must: include ename:VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, 188 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 189 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 190endif::VK_NV_shading_rate_image[] 191ifdef::VK_HUAWEI_invocation_mask[] 192 * [[VUID-{refpage}-{accessMaskName}-04994]] 193 If pname:{accessMaskName} includes 194 ename:VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:{stageMaskName} 195 must: include ename:VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI 196endif::VK_HUAWEI_invocation_mask[] 197ifdef::VK_NV_device_generated_commands[] 198 * [[VUID-{refpage}-{accessMaskName}-03924]] 199 If pname:{accessMaskName} includes 200 ename:VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:{stageMaskName} 201 must: include ename:VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or 202 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 203 * [[VUID-{refpage}-{accessMaskName}-03925]] 204 If pname:{accessMaskName} includes 205 ename:VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:{stageMaskName} 206 must: include ename:VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or 207 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 208endif::VK_NV_device_generated_commands[] 209ifdef::VK_EXT_blend_operation_advanced[] 210 * [[VUID-{refpage}-{accessMaskName}-03926]] 211 If pname:{accessMaskName} includes 212 ename:VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, 213 pname:{stageMaskName} must: include 214 ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT 215 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or 216 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 217endif::VK_EXT_blend_operation_advanced[] 218ifdef::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 219 * [[VUID-{refpage}-{accessMaskName}-03927]] 220 If pname:{accessMaskName} includes 221 ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 222 pname:{stageMaskName} must: include 223 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 224 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, 225 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the 226 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 227 * [[VUID-{refpage}-{accessMaskName}-03928]] 228 If pname:{accessMaskName} includes 229 ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, 230 pname:{stageMaskName} must: include 231 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR, 232 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or 233 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT 234 * [[VUID-{refpage}-{accessMaskName}-06256]] 235 If 236ifdef::VK_KHR_ray_query[] 237 the <<features-rayQuery, pname:rayQuery>> feature is not enabled and 238endif::VK_KHR_ray_query[] 239 pname:{accessMaskName} includes 240 ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 241 pname:{stageMaskName} must: not include any of the 242 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 243ifdef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[] 244 except ename:VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR 245endif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[] 246ifdef::VK_KHR_ray_tracing_maintenance1[] 247 * [[VUID-{refpage}-{accessMaskName}-07272]] 248 If pname:{accessMaskName} includes 249 ename:VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, 250 pname:{stageMaskName} must: include 251 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or 252 ename:VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR 253endif::VK_KHR_ray_tracing_maintenance1[] 254endif::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 255ifdef::VK_KHR_video_decode_queue[] 256 * [[VUID-{refpage}-{accessMaskName}-04858]] 257 If pname:{accessMaskName} includes 258 ename:VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:{stageMaskName} must: 259 include ename:VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR 260 * [[VUID-{refpage}-{accessMaskName}-04859]] 261 If pname:{accessMaskName} includes 262 ename:VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:{stageMaskName} 263 must: include ename:VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR 264endif::VK_KHR_video_decode_queue[] 265ifdef::VK_KHR_video_encode_queue[] 266 * [[VUID-{refpage}-{accessMaskName}-04860]] 267 If pname:{accessMaskName} includes 268 ename:VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:{stageMaskName} must: 269 include ename:VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR 270 * [[VUID-{refpage}-{accessMaskName}-04861]] 271 If pname:{accessMaskName} includes 272 ename:VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:{stageMaskName} 273 must: include ename:VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR 274endif::VK_KHR_video_encode_queue[] 275ifdef::VK_NV_optical_flow[] 276 * [[VUID-{refpage}-{accessMaskName}-07455]] 277 If pname:{accessMaskName} includes 278 ename:VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:{stageMaskName} must: 279 include ename:VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV 280 * [[VUID-{refpage}-{accessMaskName}-07456]] 281 If pname:{accessMaskName} includes 282 ename:VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:{stageMaskName} must: 283 include ename:VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV 284endif::VK_NV_optical_flow[] 285ifdef::VK_EXT_opacity_micromap[] 286 * [[VUID-{refpage}-{accessMaskName}-07457]] 287 If pname:{accessMaskName} includes 288 ename:VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:{stageMaskName} must: 289 include ename:VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT 290 * [[VUID-{refpage}-{accessMaskName}-07458]] 291 If pname:{accessMaskName} includes 292 ename:VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:{stageMaskName} must: 293 include ename:VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or 294 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR 295endif::VK_EXT_opacity_micromap[] 296ifdef::VK_EXT_descriptor_buffer[] 297 * [[VUID-{refpage}-{accessMaskName}-08118]] 298 If pname:{accessMaskName} includes 299 ename:VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname:{stageMaskName} 300 must: include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, 301 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of 302 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 303endif::VK_EXT_descriptor_buffer[] 304// Common Valid Usage 305