• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2019-2024 The Khronos Group Inc.
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5// Common Valid Usage
6// Common to all dispatch and drawing commands
7  * [[VUID-{refpage}-magFilter-04553]]
8    If a slink:VkSampler created with pname:magFilter or pname:minFilter
9    equal to ename:VK_FILTER_LINEAR and pname:compareEnable equal to
10    ename:VK_FALSE is used to sample a slink:VkImageView as a result of this
11    command, then the image view's
12    <<resources-image-view-format-features,format features>> must: contain
13    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
14  * [[VUID-{refpage}-mipmapMode-04770]]
15    If a slink:VkSampler created with pname:mipmapMode equal to
16    ename:VK_SAMPLER_MIPMAP_MODE_LINEAR and pname:compareEnable equal to
17    ename:VK_FALSE is used to sample a slink:VkImageView as a result of this
18    command, then the image view's
19    <<resources-image-view-format-features,format features>> must: contain
20    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
21ifndef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
22  * [[VUID-{refpage}-aspectMask-06478]]
23    If a slink:VkImageView is sampled with
24    <<textures-depth-compare-operation,depth comparison>>, the image view
25    must: have been created with an pname:aspectMask that contains
26    ename:VK_IMAGE_ASPECT_DEPTH_BIT
27endif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
28ifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
29  * [[VUID-{refpage}-None-06479]]
30    If a slink:VkImageView is sampled with
31    <<textures-depth-compare-operation,depth comparison>>, the image view's
32    <<resources-image-view-format-features,format features>> must: contain
33    ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
34endif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
35  * [[VUID-{refpage}-None-02691]]
36    If a slink:VkImageView is accessed using atomic operations as a result
37    of this command, then the image view's
38    <<resources-image-view-format-features,format features>> must: contain
39    ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
40  * [[VUID-{refpage}-None-07888]]
41    If a ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is
42    accessed using atomic operations as a result of this command, then the
43    storage texel buffer's <<resources-buffer-view-format-features,format
44    features>> must: contain
45    ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
46ifdef::VK_IMG_filter_cubic,VK_EXT_filter_cubic[]
47  * [[VUID-{refpage}-None-02692]]
48    If a slink:VkImageView is sampled with ename:VK_FILTER_CUBIC_EXT as a
49    result of this command, then the image view's
50    <<resources-image-view-format-features,format features>> must: contain
51    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
52  * [[VUID-{refpage}-None-02693]]
53    If
54ifdef::VK_EXT_filter_cubic[]
55    the apiext:VK_EXT_filter_cubic extension is not enabled and
56endif::VK_EXT_filter_cubic[]
57    any slink:VkImageView is sampled with ename:VK_FILTER_CUBIC_EXT as a
58    result of this command, it must: not have a elink:VkImageViewType of
59    ename:VK_IMAGE_VIEW_TYPE_3D, ename:VK_IMAGE_VIEW_TYPE_CUBE, or
60    ename:VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
61ifdef::VK_EXT_filter_cubic[]
62  * [[VUID-{refpage}-filterCubic-02694]]
63    Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_EXT as a
64    result of this command must: have a elink:VkImageViewType and format
65    that supports cubic filtering, as specified by
66    slink:VkFilterCubicImageViewImageFormatPropertiesEXT::pname:filterCubic
67    returned by flink:vkGetPhysicalDeviceImageFormatProperties2
68  * [[VUID-{refpage}-filterCubicMinmax-02695]]
69    Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_EXT with
70    a reduction mode of either ename:VK_SAMPLER_REDUCTION_MODE_MIN or
71    ename:VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must:
72    have a elink:VkImageViewType and format that supports cubic filtering
73    together with minmax filtering, as specified by
74    slink:VkFilterCubicImageViewImageFormatPropertiesEXT::pname:filterCubicMinmax
75    returned by flink:vkGetPhysicalDeviceImageFormatProperties2
76endif::VK_EXT_filter_cubic[]
77endif::VK_IMG_filter_cubic,VK_EXT_filter_cubic[]
78ifdef::VK_QCOM_filter_cubic_clamp[]
79  * [[VUID-{refpage}-cubicRangeClamp-09212]]
80    If the <<features-filter-cubic-range-clamp, pname:cubicRangeClamp>>
81    feature is not enabled, then any slink:VkImageView being sampled with
82    ename:VK_FILTER_CUBIC_EXT as a result of this command must: not have a
83    slink:VkSamplerReductionModeCreateInfo::pname:reductionMode equal to
84    ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM
85  * [[VUID-{refpage}-reductionMode-09213]]
86    Any slink:VkImageView being sampled with a
87    slink:VkSamplerReductionModeCreateInfo::pname:reductionMode equal to
88    ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a
89    result of this command must: sample with ename:VK_FILTER_CUBIC_EXT
90endif::VK_QCOM_filter_cubic_clamp[]
91ifdef::VK_QCOM_filter_cubic_weights[]
92  * [[VUID-{refpage}-selectableCubicWeights-09214]]
93    If the <<features-filter-cubic-weight-selection,
94    pname:selectableCubicWeights>> feature is not enabled, then any
95    slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_EXT as a
96    result of this command must: have
97    slink:VkSamplerCubicWeightsCreateInfoQCOM::pname:cubicWeights equal to
98    ename:VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM
99endif::VK_QCOM_filter_cubic_weights[]
100ifdef::VK_NV_corner_sampled_image[]
101  * [[VUID-{refpage}-flags-02696]]
102    Any slink:VkImage created with a slink:VkImageCreateInfo::pname:flags
103    containing ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a
104    result of this command must: only be sampled using a
105    elink:VkSamplerAddressMode of
106    ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
107endif::VK_NV_corner_sampled_image[]
108ifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
109  * [[VUID-{refpage}-OpTypeImage-07027]]
110    For any slink:VkImageView being written as a storage image where the
111    image format field of the code:OpTypeImage is code:Unknown, the view's
112    <<resources-image-view-format-features,format features>> must: contain
113    ename:VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
114  * [[VUID-{refpage}-OpTypeImage-07028]]
115    For any slink:VkImageView being read as a storage image where the image
116    format field of the code:OpTypeImage is code:Unknown, the view's
117    <<resources-image-view-format-features,format features>> must: contain
118    ename:VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
119  * [[VUID-{refpage}-OpTypeImage-07029]]
120    For any slink:VkBufferView being written as a storage texel buffer where
121    the image format field of the code:OpTypeImage is code:Unknown, the
122    view's <<VkFormatProperties3,buffer features>> must: contain
123    ename:VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
124  * [[VUID-{refpage}-OpTypeImage-07030]]
125    Any slink:VkBufferView being read as a storage texel buffer where the
126    image format field of the code:OpTypeImage is code:Unknown then the
127    view's <<VkFormatProperties3,buffer features>> must: contain
128    ename:VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
129endif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
130  * [[VUID-{refpage}-None-08600]]
131    For each set _n_ that is statically used by <<shaders-binding,a bound
132    shader>>, a descriptor set must: have been bound to _n_ at the same
133    pipeline bind point, with a slink:VkPipelineLayout that is compatible
134    for set _n_, with the slink:VkPipelineLayout used to create the current
135    slink:VkPipeline
136ifdef::VK_EXT_shader_object[]
137    or the slink:VkDescriptorSetLayout array used to create the current
138    slink:VkShaderEXT
139endif::VK_EXT_shader_object[]
140    , as described in <<descriptorsets-compatibility>>
141  * [[VUID-{refpage}-None-08601]]
142    For each push constant that is statically used by <<shaders-binding,a
143    bound shader>>, a push constant value must: have been set for the same
144    pipeline bind point, with a slink:VkPipelineLayout that is compatible
145    for push constants, with the slink:VkPipelineLayout used to create the
146    current slink:VkPipeline
147ifdef::VK_EXT_shader_object[]
148    or the slink:VkDescriptorSetLayout array used to create the current
149    slink:VkShaderEXT
150endif::VK_EXT_shader_object[]
151    , as described in <<descriptorsets-compatibility>>
152ifdef::VK_VERSION_1_3,VK_KHR_maintenance4[]
153  * [[VUID-{refpage}-maintenance4-08602]]
154    If the <<features-maintenance4, pname:maintenance4>> feature is not
155    enabled, then for each push constant that is statically used by
156    <<shaders-binding,a bound shader>>, a push constant value must: have
157    been set for the same pipeline bind point, with a slink:VkPipelineLayout
158    that is compatible for push constants, with the slink:VkPipelineLayout
159    used to create the current slink:VkPipeline
160ifdef::VK_EXT_shader_object[]
161    or the slink:VkDescriptorSetLayout and slink:VkPushConstantRange arrays
162    used to create the current slink:VkShaderEXT
163endif::VK_EXT_shader_object[]
164    , as described in <<descriptorsets-compatibility>>
165endif::VK_VERSION_1_3,VK_KHR_maintenance4[]
166  * [[VUID-{refpage}-None-08114]]
167    Descriptors in each bound descriptor set, specified via
168    flink:vkCmdBindDescriptorSets, must: be valid as described by
169    <<descriptor-validity,descriptor validity>> if they are statically used
170    by
171ifndef::VK_EXT_descriptor_buffer[<<shaders-binding,a bound shader>>]
172ifdef::VK_EXT_descriptor_buffer[]
173    the slink:VkPipeline bound to the pipeline bind point used by this
174    command and the bound slink:VkPipeline was not created with
175    ename:VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
176endif::VK_EXT_descriptor_buffer[]
177ifdef::VK_EXT_descriptor_buffer[]
178  * [[VUID-{refpage}-None-08115]]
179    If the descriptors used by the slink:VkPipeline bound to the pipeline
180    bind point were specified via flink:vkCmdBindDescriptorSets, the bound
181    slink:VkPipeline must: have been created without
182    ename:VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
183  * [[VUID-{refpage}-None-08116]]
184    Descriptors in bound descriptor buffers, specified via
185    flink:vkCmdSetDescriptorBufferOffsetsEXT, must: be valid if they are
186    dynamically used by the slink:VkPipeline bound to the pipeline bind
187    point used by this command and the bound slink:VkPipeline was created
188    with ename:VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
189ifdef::VK_EXT_shader_object[]
190  * [[VUID-{refpage}-None-08604]]
191    Descriptors in bound descriptor buffers, specified via
192    flink:vkCmdSetDescriptorBufferOffsetsEXT, must: be valid if they are
193    dynamically used by any slink:VkShaderEXT bound to a stage corresponding
194    to the pipeline bind point used by this command
195endif::VK_EXT_shader_object[]
196  * [[VUID-{refpage}-None-08117]]
197    If the descriptors used by the slink:VkPipeline bound to the pipeline
198    bind point were specified via flink:vkCmdSetDescriptorBufferOffsetsEXT,
199    the bound slink:VkPipeline must: have been created with
200    ename:VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
201  * [[VUID-{refpage}-None-08119]]
202    If a descriptor is dynamically used with a slink:VkPipeline created with
203    ename:VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor
204    memory must: be resident
205ifdef::VK_EXT_shader_object[]
206  * [[VUID-{refpage}-None-08605]]
207    If a descriptor is dynamically used with a slink:VkShaderEXT created
208    with a sname:VkDescriptorSetLayout that was created with
209    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the
210    descriptor memory must: be resident
211endif::VK_EXT_shader_object[]
212endif::VK_EXT_descriptor_buffer[]
213  * [[VUID-{refpage}-None-08606]]
214ifdef::VK_EXT_shader_object[]
215    If the <<features-shaderObject, pname:shaderObject>> feature is not
216    enabled, a
217endif::VK_EXT_shader_object[]
218ifndef::VK_EXT_shader_object[A]
219    valid pipeline must: be bound to the pipeline bind point used by this
220    command
221  * [[VUID-{refpage}-None-08608]]
222ifdef::VK_EXT_shader_object[]
223    If a pipeline is bound to the pipeline bind point used by this command,
224    there
225endif::VK_EXT_shader_object[]
226ifndef::VK_EXT_shader_object[There]
227    must: not have been any calls to dynamic state setting commands for any
228    state not specified as dynamic in the slink:VkPipeline object bound to
229    the pipeline bind point used by this command, since that pipeline was
230    bound
231  * [[VUID-{refpage}-None-08609]]
232    If the slink:VkPipeline object bound to the pipeline bind point used by
233    this command
234ifdef::VK_EXT_shader_object[]
235    or any slink:VkShaderEXT bound to a stage corresponding to the pipeline
236    bind point used by this command
237endif::VK_EXT_shader_object[]
238    accesses a slink:VkSampler object that uses unnormalized coordinates,
239    that sampler must: not be used to sample from any slink:VkImage with a
240    slink:VkImageView of the type ename:VK_IMAGE_VIEW_TYPE_3D,
241    ename:VK_IMAGE_VIEW_TYPE_CUBE, ename:VK_IMAGE_VIEW_TYPE_1D_ARRAY,
242    ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY or
243    ename:VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
244  * [[VUID-{refpage}-None-08610]]
245    If the slink:VkPipeline object bound to the pipeline bind point used by
246    this command
247ifdef::VK_EXT_shader_object[]
248    or any slink:VkShaderEXT bound to a stage corresponding to the pipeline
249    bind point used by this command
250endif::VK_EXT_shader_object[]
251    accesses a slink:VkSampler object that uses unnormalized coordinates,
252    that sampler must: not be used with any of the SPIR-V `OpImageSample*`
253    or `OpImageSparseSample*` instructions with code:ImplicitLod, code:Dref
254    or code:Proj in their name, in any shader stage
255  * [[VUID-{refpage}-None-08611]]
256    If the slink:VkPipeline object bound to the pipeline bind point used by
257    this command
258ifdef::VK_EXT_shader_object[]
259    or any slink:VkShaderEXT bound to a stage corresponding to the pipeline
260    bind point used by this command
261endif::VK_EXT_shader_object[]
262    accesses a slink:VkSampler object that uses unnormalized coordinates,
263    that sampler must: not be used with any of the SPIR-V `OpImageSample*`
264    or `OpImageSparseSample*` instructions that includes a LOD bias or any
265    offset values, in any shader stage
266ifdef::VK_EXT_shader_object[]
267  * [[VUID-{refpage}-None-08607]]
268    If the <<features-shaderObject, pname:shaderObject>> is enabled, either
269    a valid pipeline must: be bound to the pipeline bind point used by this
270    command, or a valid combination of valid and dlink:VK_NULL_HANDLE shader
271    objects must: be bound to every supported shader stage corresponding to
272    the pipeline bind point used by this command
273endif::VK_EXT_shader_object[]
274  * [[VUID-{refpage}-uniformBuffers-06935]]
275    If any stage of the slink:VkPipeline object bound to the pipeline bind
276    point used by this command accesses a uniform buffer,
277ifdef::VK_EXT_pipeline_robustness[]
278    and that stage was created without enabling either
279    ename:VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or
280    ename:VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
281    for pname:uniformBuffers,
282endif::VK_EXT_pipeline_robustness[]
283    and the <<features-robustBufferAccess, pname:robustBufferAccess>>
284    feature is not enabled, that stage must: not access values outside of
285    the range of the buffer as specified in the descriptor set bound to the
286    same pipeline bind point
287ifdef::VK_EXT_shader_object[]
288  * [[VUID-{refpage}-None-08612]]
289    If the <<features-robustBufferAccess, pname:robustBufferAccess>> feature
290    is not enabled, and any slink:VkShaderEXT bound to a stage corresponding
291    to the pipeline bind point used by this command accesses a uniform
292    buffer, it must: not access values outside of the range of the buffer as
293    specified in the descriptor set bound to the same pipeline bind point
294endif::VK_EXT_shader_object[]
295  * [[VUID-{refpage}-storageBuffers-06936]]
296    If any stage of the slink:VkPipeline object bound to the pipeline bind
297    point used by this command accesses a storage buffer,
298ifdef::VK_EXT_pipeline_robustness[]
299    and that stage was created without enabling either
300    ename:VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or
301    ename:VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
302    for pname:storageBuffers,
303endif::VK_EXT_pipeline_robustness[]
304    and the <<features-robustBufferAccess, pname:robustBufferAccess>>
305    feature is not enabled, that stage must: not access values outside of
306    the range of the buffer as specified in the descriptor set bound to the
307    same pipeline bind point
308ifdef::VK_EXT_shader_object[]
309  * [[VUID-{refpage}-None-08613]]
310    If the <<features-robustBufferAccess, pname:robustBufferAccess>> feature
311    is not enabled, and any slink:VkShaderEXT bound to a stage corresponding
312    to the pipeline bind point used by this command accesses a storage
313    buffer, it must: not access values outside of the range of the buffer as
314    specified in the descriptor set bound to the same pipeline bind point
315endif::VK_EXT_shader_object[]
316ifdef::VK_VERSION_1_1[]
317  * [[VUID-{refpage}-commandBuffer-02707]]
318    If pname:commandBuffer is an unprotected command buffer and
319    <<limits-protectedNoFault, pname:protectedNoFault>> is not supported,
320    any resource accessed by <<shaders-binding,bound shaders>> must: not be
321    a protected resource
322endif::VK_VERSION_1_1[]
323ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
324  * [[VUID-{refpage}-None-06550]]
325    If <<shaders-binding,a bound shader>> accesses a slink:VkSampler or
326    slink:VkImageView object that enables
327    <<samplers-YCbCr-conversion,sampler {YCbCr} conversion>>, that object
328    must: only be used with `OpImageSample*` or `OpImageSparseSample*`
329    instructions
330  * [[VUID-{refpage}-ConstOffset-06551]]
331    If <<shaders-binding,a bound shader>> accesses a slink:VkSampler or
332    slink:VkImageView object that enables
333    <<samplers-YCbCr-conversion,sampler {YCbCr} conversion>>, that object
334    must: not use the code:ConstOffset and code:Offset operands
335endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
336  * [[VUID-{refpage}-viewType-07752]]
337    If a slink:VkImageView is accessed as a result of this command, then the
338    image view's pname:viewType must: match the code:Dim operand of the
339    code:OpTypeImage as described in <<textures-operation-validation>>
340  * [[VUID-{refpage}-format-07753]]
341    If a slink:VkImageView is accessed as a result of this command, then the
342    <<formats-numericformat, numeric type>> of the image view's pname:format
343    and the code:Sampled code:Type operand of the code:OpTypeImage must:
344    match
345  * [[VUID-{refpage}-OpImageWrite-08795]]
346    If a slink:VkImageView
347ifdef::VK_KHR_maintenance5[]
348    created with a format other than ename:VK_FORMAT_A8_UNORM_KHR
349endif::VK_KHR_maintenance5[]
350    is accessed using code:OpImageWrite as a result of this command, then
351    the code:Type of the code:Texel operand of that instruction must: have
352    at least as many components as the image view's format
353ifdef::VK_KHR_maintenance5[]
354  * [[VUID-{refpage}-OpImageWrite-08796]]
355    If a slink:VkImageView created with the format
356    ename:VK_FORMAT_A8_UNORM_KHR is accessed using code:OpImageWrite as a
357    result of this command, then the code:Type of the code:Texel operand of
358    that instruction must: have four components
359endif::VK_KHR_maintenance5[]
360  * [[VUID-{refpage}-OpImageWrite-04469]]
361    If a slink:VkBufferView is accessed using code:OpImageWrite as a result
362    of this command, then the code:Type of the code:Texel operand of that
363    instruction must: have at least as many components as the buffer view's
364    format
365ifdef::VK_EXT_shader_image_atomic_int64[]
366  * [[VUID-{refpage}-SampledType-04470]]
367    If a slink:VkImageView with a elink:VkFormat that has a 64-bit component
368    width is accessed as a result of this command, the code:SampledType of
369    the code:OpTypeImage operand of that instruction must: have a code:Width
370    of 64
371  * [[VUID-{refpage}-SampledType-04471]]
372    If a slink:VkImageView with a elink:VkFormat that has a component width
373    less than 64-bit is accessed as a result of this command, the
374    code:SampledType of the code:OpTypeImage operand of that instruction
375    must: have a code:Width of 32
376  * [[VUID-{refpage}-SampledType-04472]]
377    If a slink:VkBufferView with a elink:VkFormat that has a 64-bit
378    component width is accessed as a result of this command, the
379    code:SampledType of the code:OpTypeImage operand of that instruction
380    must: have a code:Width of 64
381  * [[VUID-{refpage}-SampledType-04473]]
382    If a slink:VkBufferView with a elink:VkFormat that has a component width
383    less than 64-bit is accessed as a result of this command, the
384    code:SampledType of the code:OpTypeImage operand of that instruction
385    must: have a code:Width of 32
386  * [[VUID-{refpage}-sparseImageInt64Atomics-04474]]
387    If the <<features-sparseImageInt64Atomics,
388    pname:sparseImageInt64Atomics>> feature is not enabled, slink:VkImage
389    objects created with the ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag
390    must: not be accessed by atomic instructions through an code:OpTypeImage
391    with a code:SampledType with a code:Width of 64 by this command
392  * [[VUID-{refpage}-sparseImageInt64Atomics-04475]]
393    If the <<features-sparseImageInt64Atomics,
394    pname:sparseImageInt64Atomics>> feature is not enabled, slink:VkBuffer
395    objects created with the ename:VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
396    flag must: not be accessed by atomic instructions through an
397    code:OpTypeImage with a code:SampledType with a code:Width of 64 by this
398    command
399endif::VK_EXT_shader_image_atomic_int64[]
400ifdef::VK_QCOM_image_processing[]
401  * [[VUID-{refpage}-OpImageWeightedSampleQCOM-06971]]
402    If code:OpImageWeightedSampleQCOM is used to sample a slink:VkImageView
403    as a result of this command, then the image view's
404    <<resources-image-view-format-features,format features>> must: contain
405    ename:VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
406  * [[VUID-{refpage}-OpImageWeightedSampleQCOM-06972]]
407    If code:OpImageWeightedSampleQCOM uses a slink:VkImageView as a sample
408    weight image as a result of this command, then the image view's
409    <<resources-image-view-format-features,format features>> must: contain
410    ename:VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
411  * [[VUID-{refpage}-OpImageBoxFilterQCOM-06973]]
412    If code:OpImageBoxFilterQCOM is used to sample a slink:VkImageView as a
413    result of this command, then the image view's
414    <<resources-image-view-format-features,format features>> must: contain
415    ename:VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
416  * [[VUID-{refpage}-OpImageBlockMatchSSDQCOM-06974]]
417    If code:OpImageBlockMatchSSDQCOM is used to read from an
418    slink:VkImageView as a result of this command, then the image view's
419    <<resources-image-view-format-features,format features>> must: contain
420    ename:VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
421  * [[VUID-{refpage}-OpImageBlockMatchSADQCOM-06975]]
422    If code:OpImageBlockMatchSADQCOM is used to read from an
423    slink:VkImageView as a result of this command, then the image view's
424    <<resources-image-view-format-features,format features>> must: contain
425    ename:VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
426  * [[VUID-{refpage}-OpImageBlockMatchSADQCOM-06976]]
427    If code:OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to
428    read from a reference image as result of this command, then the
429    specified reference coordinates must: not fail
430    <<textures-integer-coordinate-validation,integer texel coordinate
431    validation>>
432  * [[VUID-{refpage}-OpImageWeightedSampleQCOM-06977]]
433    If code:OpImageWeightedSampleQCOM, code:OpImageBoxFilterQCOM,
434ifdef::VK_QCOM_image_processing2[]
435    code:OpImageBlockMatchWindowSSDQCOM,
436    code:OpImageBlockMatchWindowSADQCOM,
437    code:OpImageBlockMatchGatherSSDQCOM,
438    code:OpImageBlockMatchGatherSADQCOM,
439endif::VK_QCOM_image_processing2[]
440    code:OpImageBlockMatchSSDQCOM, or code:OpImageBlockMatchSADQCOM uses a
441    slink:VkSampler as a result of this command, then the sampler must: have
442    been created with ename:VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
443  * [[VUID-{refpage}-OpImageWeightedSampleQCOM-06978]]
444    If any command other than code:OpImageWeightedSampleQCOM,
445    code:OpImageBoxFilterQCOM,
446ifdef::VK_QCOM_image_processing2[]
447    code:OpImageBlockMatchWindowSSDQCOM,
448    code:OpImageBlockMatchWindowSADQCOM,
449    code:OpImageBlockMatchGatherSSDQCOM,
450    code:OpImageBlockMatchGatherSADQCOM,
451endif::VK_QCOM_image_processing2[]
452    code:OpImageBlockMatchSSDQCOM, or code:OpImageBlockMatchSADQCOM uses a
453    slink:VkSampler as a result of this command, then the sampler must: not
454    have been created with ename:VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
455endif::VK_QCOM_image_processing[]
456ifdef::VK_QCOM_image_processing2[]
457  * [[VUID-{refpage}-OpImageBlockMatchWindow-09215]]
458    If a code:OpImageBlockMatchWindow*QCOM or
459    code:OpImageBlockMatchGather*QCOM instruction is used to read from an
460    slink:VkImageView as a result of this command, then the image view's
461    <<resources-image-view-format-features,format features>> must: contain
462    ename:VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
463  * [[VUID-{refpage}-OpImageBlockMatchWindow-09216]]
464    If a code:OpImageBlockMatchWindow*QCOM or
465    code:OpImageBlockMatchGather*QCOM instruction is used to read from an
466    slink:VkImageView as a result of this command, then the image view's
467    format must: be a single-component format.
468  * [[VUID-{refpage}-OpImageBlockMatchWindow-09217]]
469    If a code:OpImageBlockMatchWindow*QCOM or
470    code:OpImageBlockMatchGather*QCOM read from a reference image as result
471    of this command, then the specified reference coordinates must: not fail
472    <<textures-integer-coordinate-validation,integer texel coordinate
473    validation>>
474endif::VK_QCOM_image_processing2[]
475  * [[VUID-{refpage}-None-07288]]
476    Any shader invocation executed by this command must:
477    <<shaders-termination,terminate>>
478// Common Valid Usage
479