xref: /aosp_15_r20/external/vulkan-validation-layers/layers/generated/parameter_validation.h (revision b7893ccf7851cd6a48cc5a1e965257d8a5cdcc70)
1*b7893ccfSSadaf Ebrahimi /* *** THIS FILE IS GENERATED - DO NOT EDIT! ***
2*b7893ccfSSadaf Ebrahimi  * See parameter_validation_generator.py for modifications
3*b7893ccfSSadaf Ebrahimi  *
4*b7893ccfSSadaf Ebrahimi  * Copyright (c) 2015-2019 The Khronos Group Inc.
5*b7893ccfSSadaf Ebrahimi  * Copyright (c) 2015-2019 LunarG, Inc.
6*b7893ccfSSadaf Ebrahimi  * Copyright (C) 2015-2019 Google Inc.
7*b7893ccfSSadaf Ebrahimi  *
8*b7893ccfSSadaf Ebrahimi  * Licensed under the Apache License, Version 2.0 (the "License");
9*b7893ccfSSadaf Ebrahimi  * you may not use this file except in compliance with the License.
10*b7893ccfSSadaf Ebrahimi  * Copyright (c) 2015-2017 Valve Corporation
11*b7893ccfSSadaf Ebrahimi  * You may obtain a copy of the License at
12*b7893ccfSSadaf Ebrahimi  *
13*b7893ccfSSadaf Ebrahimi  *     http://www.apache.org/licenses/LICENSE-2.0
14*b7893ccfSSadaf Ebrahimi  *
15*b7893ccfSSadaf Ebrahimi  * Unless required by applicable law or agreed to in writing, software
16*b7893ccfSSadaf Ebrahimi  * distributed under the License is distributed on an "AS IS" BASIS,
17*b7893ccfSSadaf Ebrahimi  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18*b7893ccfSSadaf Ebrahimi  * See the License for the specific language governing permissions and
19*b7893ccfSSadaf Ebrahimi  * limitations under the License.
20*b7893ccfSSadaf Ebrahimi  *
21*b7893ccfSSadaf Ebrahimi  * Author: Mark Lobodzinski <[email protected]>
22*b7893ccfSSadaf Ebrahimi  * Author: Dave Houlton <[email protected]>
23*b7893ccfSSadaf Ebrahimi  */
24*b7893ccfSSadaf Ebrahimi 
25*b7893ccfSSadaf Ebrahimi 
26*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateInstance(
27*b7893ccfSSadaf Ebrahimi     const VkInstanceCreateInfo*                 pCreateInfo,
28*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
29*b7893ccfSSadaf Ebrahimi     VkInstance*                                 pInstance);
30*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyInstance(
31*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
32*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
33*b7893ccfSSadaf Ebrahimi bool PreCallValidateEnumeratePhysicalDevices(
34*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
35*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPhysicalDeviceCount,
36*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice*                           pPhysicalDevices);
37*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceFeatures(
38*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
39*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceFeatures*                   pFeatures);
40*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceFormatProperties(
41*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
42*b7893ccfSSadaf Ebrahimi     VkFormat                                    format,
43*b7893ccfSSadaf Ebrahimi     VkFormatProperties*                         pFormatProperties);
44*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceImageFormatProperties(
45*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
46*b7893ccfSSadaf Ebrahimi     VkFormat                                    format,
47*b7893ccfSSadaf Ebrahimi     VkImageType                                 type,
48*b7893ccfSSadaf Ebrahimi     VkImageTiling                               tiling,
49*b7893ccfSSadaf Ebrahimi     VkImageUsageFlags                           usage,
50*b7893ccfSSadaf Ebrahimi     VkImageCreateFlags                          flags,
51*b7893ccfSSadaf Ebrahimi     VkImageFormatProperties*                    pImageFormatProperties);
52*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceProperties(
53*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
54*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceProperties*                 pProperties);
55*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceQueueFamilyProperties(
56*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
57*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pQueueFamilyPropertyCount,
58*b7893ccfSSadaf Ebrahimi     VkQueueFamilyProperties*                    pQueueFamilyProperties);
59*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceMemoryProperties(
60*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
61*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
62*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateDevice(
63*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
64*b7893ccfSSadaf Ebrahimi     const VkDeviceCreateInfo*                   pCreateInfo,
65*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
66*b7893ccfSSadaf Ebrahimi     VkDevice*                                   pDevice);
67*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyDevice(
68*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
69*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
70*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDeviceQueue(
71*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
72*b7893ccfSSadaf Ebrahimi     uint32_t                                    queueFamilyIndex,
73*b7893ccfSSadaf Ebrahimi     uint32_t                                    queueIndex,
74*b7893ccfSSadaf Ebrahimi     VkQueue*                                    pQueue);
75*b7893ccfSSadaf Ebrahimi bool PreCallValidateQueueSubmit(
76*b7893ccfSSadaf Ebrahimi     VkQueue                                     queue,
77*b7893ccfSSadaf Ebrahimi     uint32_t                                    submitCount,
78*b7893ccfSSadaf Ebrahimi     const VkSubmitInfo*                         pSubmits,
79*b7893ccfSSadaf Ebrahimi     VkFence                                     fence);
80*b7893ccfSSadaf Ebrahimi bool PreCallValidateQueueWaitIdle(
81*b7893ccfSSadaf Ebrahimi     VkQueue                                     queue);
82*b7893ccfSSadaf Ebrahimi bool PreCallValidateDeviceWaitIdle(
83*b7893ccfSSadaf Ebrahimi     VkDevice                                    device);
84*b7893ccfSSadaf Ebrahimi bool PreCallValidateAllocateMemory(
85*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
86*b7893ccfSSadaf Ebrahimi     const VkMemoryAllocateInfo*                 pAllocateInfo,
87*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
88*b7893ccfSSadaf Ebrahimi     VkDeviceMemory*                             pMemory);
89*b7893ccfSSadaf Ebrahimi bool PreCallValidateFreeMemory(
90*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
91*b7893ccfSSadaf Ebrahimi     VkDeviceMemory                              memory,
92*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
93*b7893ccfSSadaf Ebrahimi bool PreCallValidateMapMemory(
94*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
95*b7893ccfSSadaf Ebrahimi     VkDeviceMemory                              memory,
96*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset,
97*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                size,
98*b7893ccfSSadaf Ebrahimi     VkMemoryMapFlags                            flags,
99*b7893ccfSSadaf Ebrahimi     void**                                      ppData);
100*b7893ccfSSadaf Ebrahimi bool PreCallValidateUnmapMemory(
101*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
102*b7893ccfSSadaf Ebrahimi     VkDeviceMemory                              memory);
103*b7893ccfSSadaf Ebrahimi bool PreCallValidateFlushMappedMemoryRanges(
104*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
105*b7893ccfSSadaf Ebrahimi     uint32_t                                    memoryRangeCount,
106*b7893ccfSSadaf Ebrahimi     const VkMappedMemoryRange*                  pMemoryRanges);
107*b7893ccfSSadaf Ebrahimi bool PreCallValidateInvalidateMappedMemoryRanges(
108*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
109*b7893ccfSSadaf Ebrahimi     uint32_t                                    memoryRangeCount,
110*b7893ccfSSadaf Ebrahimi     const VkMappedMemoryRange*                  pMemoryRanges);
111*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDeviceMemoryCommitment(
112*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
113*b7893ccfSSadaf Ebrahimi     VkDeviceMemory                              memory,
114*b7893ccfSSadaf Ebrahimi     VkDeviceSize*                               pCommittedMemoryInBytes);
115*b7893ccfSSadaf Ebrahimi bool PreCallValidateBindBufferMemory(
116*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
117*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
118*b7893ccfSSadaf Ebrahimi     VkDeviceMemory                              memory,
119*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                memoryOffset);
120*b7893ccfSSadaf Ebrahimi bool PreCallValidateBindImageMemory(
121*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
122*b7893ccfSSadaf Ebrahimi     VkImage                                     image,
123*b7893ccfSSadaf Ebrahimi     VkDeviceMemory                              memory,
124*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                memoryOffset);
125*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetBufferMemoryRequirements(
126*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
127*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
128*b7893ccfSSadaf Ebrahimi     VkMemoryRequirements*                       pMemoryRequirements);
129*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetImageMemoryRequirements(
130*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
131*b7893ccfSSadaf Ebrahimi     VkImage                                     image,
132*b7893ccfSSadaf Ebrahimi     VkMemoryRequirements*                       pMemoryRequirements);
133*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetImageSparseMemoryRequirements(
134*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
135*b7893ccfSSadaf Ebrahimi     VkImage                                     image,
136*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pSparseMemoryRequirementCount,
137*b7893ccfSSadaf Ebrahimi     VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
138*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSparseImageFormatProperties(
139*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
140*b7893ccfSSadaf Ebrahimi     VkFormat                                    format,
141*b7893ccfSSadaf Ebrahimi     VkImageType                                 type,
142*b7893ccfSSadaf Ebrahimi     VkSampleCountFlagBits                       samples,
143*b7893ccfSSadaf Ebrahimi     VkImageUsageFlags                           usage,
144*b7893ccfSSadaf Ebrahimi     VkImageTiling                               tiling,
145*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPropertyCount,
146*b7893ccfSSadaf Ebrahimi     VkSparseImageFormatProperties*              pProperties);
147*b7893ccfSSadaf Ebrahimi bool PreCallValidateQueueBindSparse(
148*b7893ccfSSadaf Ebrahimi     VkQueue                                     queue,
149*b7893ccfSSadaf Ebrahimi     uint32_t                                    bindInfoCount,
150*b7893ccfSSadaf Ebrahimi     const VkBindSparseInfo*                     pBindInfo,
151*b7893ccfSSadaf Ebrahimi     VkFence                                     fence);
152*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateFence(
153*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
154*b7893ccfSSadaf Ebrahimi     const VkFenceCreateInfo*                    pCreateInfo,
155*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
156*b7893ccfSSadaf Ebrahimi     VkFence*                                    pFence);
157*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyFence(
158*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
159*b7893ccfSSadaf Ebrahimi     VkFence                                     fence,
160*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
161*b7893ccfSSadaf Ebrahimi bool PreCallValidateResetFences(
162*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
163*b7893ccfSSadaf Ebrahimi     uint32_t                                    fenceCount,
164*b7893ccfSSadaf Ebrahimi     const VkFence*                              pFences);
165*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetFenceStatus(
166*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
167*b7893ccfSSadaf Ebrahimi     VkFence                                     fence);
168*b7893ccfSSadaf Ebrahimi bool PreCallValidateWaitForFences(
169*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
170*b7893ccfSSadaf Ebrahimi     uint32_t                                    fenceCount,
171*b7893ccfSSadaf Ebrahimi     const VkFence*                              pFences,
172*b7893ccfSSadaf Ebrahimi     VkBool32                                    waitAll,
173*b7893ccfSSadaf Ebrahimi     uint64_t                                    timeout);
174*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateSemaphore(
175*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
176*b7893ccfSSadaf Ebrahimi     const VkSemaphoreCreateInfo*                pCreateInfo,
177*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
178*b7893ccfSSadaf Ebrahimi     VkSemaphore*                                pSemaphore);
179*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroySemaphore(
180*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
181*b7893ccfSSadaf Ebrahimi     VkSemaphore                                 semaphore,
182*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
183*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateEvent(
184*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
185*b7893ccfSSadaf Ebrahimi     const VkEventCreateInfo*                    pCreateInfo,
186*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
187*b7893ccfSSadaf Ebrahimi     VkEvent*                                    pEvent);
188*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyEvent(
189*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
190*b7893ccfSSadaf Ebrahimi     VkEvent                                     event,
191*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
192*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetEventStatus(
193*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
194*b7893ccfSSadaf Ebrahimi     VkEvent                                     event);
195*b7893ccfSSadaf Ebrahimi bool PreCallValidateSetEvent(
196*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
197*b7893ccfSSadaf Ebrahimi     VkEvent                                     event);
198*b7893ccfSSadaf Ebrahimi bool PreCallValidateResetEvent(
199*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
200*b7893ccfSSadaf Ebrahimi     VkEvent                                     event);
201*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateQueryPool(
202*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
203*b7893ccfSSadaf Ebrahimi     const VkQueryPoolCreateInfo*                pCreateInfo,
204*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
205*b7893ccfSSadaf Ebrahimi     VkQueryPool*                                pQueryPool);
206*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyQueryPool(
207*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
208*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
209*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
210*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetQueryPoolResults(
211*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
212*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
213*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstQuery,
214*b7893ccfSSadaf Ebrahimi     uint32_t                                    queryCount,
215*b7893ccfSSadaf Ebrahimi     size_t                                      dataSize,
216*b7893ccfSSadaf Ebrahimi     void*                                       pData,
217*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                stride,
218*b7893ccfSSadaf Ebrahimi     VkQueryResultFlags                          flags);
219*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateBuffer(
220*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
221*b7893ccfSSadaf Ebrahimi     const VkBufferCreateInfo*                   pCreateInfo,
222*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
223*b7893ccfSSadaf Ebrahimi     VkBuffer*                                   pBuffer);
224*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyBuffer(
225*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
226*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
227*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
228*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateBufferView(
229*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
230*b7893ccfSSadaf Ebrahimi     const VkBufferViewCreateInfo*               pCreateInfo,
231*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
232*b7893ccfSSadaf Ebrahimi     VkBufferView*                               pView);
233*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyBufferView(
234*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
235*b7893ccfSSadaf Ebrahimi     VkBufferView                                bufferView,
236*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
237*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateImage(
238*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
239*b7893ccfSSadaf Ebrahimi     const VkImageCreateInfo*                    pCreateInfo,
240*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
241*b7893ccfSSadaf Ebrahimi     VkImage*                                    pImage);
242*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyImage(
243*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
244*b7893ccfSSadaf Ebrahimi     VkImage                                     image,
245*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
246*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetImageSubresourceLayout(
247*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
248*b7893ccfSSadaf Ebrahimi     VkImage                                     image,
249*b7893ccfSSadaf Ebrahimi     const VkImageSubresource*                   pSubresource,
250*b7893ccfSSadaf Ebrahimi     VkSubresourceLayout*                        pLayout);
251*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateImageView(
252*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
253*b7893ccfSSadaf Ebrahimi     const VkImageViewCreateInfo*                pCreateInfo,
254*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
255*b7893ccfSSadaf Ebrahimi     VkImageView*                                pView);
256*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyImageView(
257*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
258*b7893ccfSSadaf Ebrahimi     VkImageView                                 imageView,
259*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
260*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateShaderModule(
261*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
262*b7893ccfSSadaf Ebrahimi     const VkShaderModuleCreateInfo*             pCreateInfo,
263*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
264*b7893ccfSSadaf Ebrahimi     VkShaderModule*                             pShaderModule);
265*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyShaderModule(
266*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
267*b7893ccfSSadaf Ebrahimi     VkShaderModule                              shaderModule,
268*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
269*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreatePipelineCache(
270*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
271*b7893ccfSSadaf Ebrahimi     const VkPipelineCacheCreateInfo*            pCreateInfo,
272*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
273*b7893ccfSSadaf Ebrahimi     VkPipelineCache*                            pPipelineCache);
274*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyPipelineCache(
275*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
276*b7893ccfSSadaf Ebrahimi     VkPipelineCache                             pipelineCache,
277*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
278*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPipelineCacheData(
279*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
280*b7893ccfSSadaf Ebrahimi     VkPipelineCache                             pipelineCache,
281*b7893ccfSSadaf Ebrahimi     size_t*                                     pDataSize,
282*b7893ccfSSadaf Ebrahimi     void*                                       pData);
283*b7893ccfSSadaf Ebrahimi bool PreCallValidateMergePipelineCaches(
284*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
285*b7893ccfSSadaf Ebrahimi     VkPipelineCache                             dstCache,
286*b7893ccfSSadaf Ebrahimi     uint32_t                                    srcCacheCount,
287*b7893ccfSSadaf Ebrahimi     const VkPipelineCache*                      pSrcCaches);
288*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateGraphicsPipelines(
289*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
290*b7893ccfSSadaf Ebrahimi     VkPipelineCache                             pipelineCache,
291*b7893ccfSSadaf Ebrahimi     uint32_t                                    createInfoCount,
292*b7893ccfSSadaf Ebrahimi     const VkGraphicsPipelineCreateInfo*         pCreateInfos,
293*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
294*b7893ccfSSadaf Ebrahimi     VkPipeline*                                 pPipelines);
295*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateComputePipelines(
296*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
297*b7893ccfSSadaf Ebrahimi     VkPipelineCache                             pipelineCache,
298*b7893ccfSSadaf Ebrahimi     uint32_t                                    createInfoCount,
299*b7893ccfSSadaf Ebrahimi     const VkComputePipelineCreateInfo*          pCreateInfos,
300*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
301*b7893ccfSSadaf Ebrahimi     VkPipeline*                                 pPipelines);
302*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyPipeline(
303*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
304*b7893ccfSSadaf Ebrahimi     VkPipeline                                  pipeline,
305*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
306*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreatePipelineLayout(
307*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
308*b7893ccfSSadaf Ebrahimi     const VkPipelineLayoutCreateInfo*           pCreateInfo,
309*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
310*b7893ccfSSadaf Ebrahimi     VkPipelineLayout*                           pPipelineLayout);
311*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyPipelineLayout(
312*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
313*b7893ccfSSadaf Ebrahimi     VkPipelineLayout                            pipelineLayout,
314*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
315*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateSampler(
316*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
317*b7893ccfSSadaf Ebrahimi     const VkSamplerCreateInfo*                  pCreateInfo,
318*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
319*b7893ccfSSadaf Ebrahimi     VkSampler*                                  pSampler);
320*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroySampler(
321*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
322*b7893ccfSSadaf Ebrahimi     VkSampler                                   sampler,
323*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
324*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateDescriptorSetLayout(
325*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
326*b7893ccfSSadaf Ebrahimi     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
327*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
328*b7893ccfSSadaf Ebrahimi     VkDescriptorSetLayout*                      pSetLayout);
329*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyDescriptorSetLayout(
330*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
331*b7893ccfSSadaf Ebrahimi     VkDescriptorSetLayout                       descriptorSetLayout,
332*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
333*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateDescriptorPool(
334*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
335*b7893ccfSSadaf Ebrahimi     const VkDescriptorPoolCreateInfo*           pCreateInfo,
336*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
337*b7893ccfSSadaf Ebrahimi     VkDescriptorPool*                           pDescriptorPool);
338*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyDescriptorPool(
339*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
340*b7893ccfSSadaf Ebrahimi     VkDescriptorPool                            descriptorPool,
341*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
342*b7893ccfSSadaf Ebrahimi bool PreCallValidateResetDescriptorPool(
343*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
344*b7893ccfSSadaf Ebrahimi     VkDescriptorPool                            descriptorPool,
345*b7893ccfSSadaf Ebrahimi     VkDescriptorPoolResetFlags                  flags);
346*b7893ccfSSadaf Ebrahimi bool PreCallValidateAllocateDescriptorSets(
347*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
348*b7893ccfSSadaf Ebrahimi     const VkDescriptorSetAllocateInfo*          pAllocateInfo,
349*b7893ccfSSadaf Ebrahimi     VkDescriptorSet*                            pDescriptorSets);
350*b7893ccfSSadaf Ebrahimi bool PreCallValidateFreeDescriptorSets(
351*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
352*b7893ccfSSadaf Ebrahimi     VkDescriptorPool                            descriptorPool,
353*b7893ccfSSadaf Ebrahimi     uint32_t                                    descriptorSetCount,
354*b7893ccfSSadaf Ebrahimi     const VkDescriptorSet*                      pDescriptorSets);
355*b7893ccfSSadaf Ebrahimi bool PreCallValidateUpdateDescriptorSets(
356*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
357*b7893ccfSSadaf Ebrahimi     uint32_t                                    descriptorWriteCount,
358*b7893ccfSSadaf Ebrahimi     const VkWriteDescriptorSet*                 pDescriptorWrites,
359*b7893ccfSSadaf Ebrahimi     uint32_t                                    descriptorCopyCount,
360*b7893ccfSSadaf Ebrahimi     const VkCopyDescriptorSet*                  pDescriptorCopies);
361*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateFramebuffer(
362*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
363*b7893ccfSSadaf Ebrahimi     const VkFramebufferCreateInfo*              pCreateInfo,
364*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
365*b7893ccfSSadaf Ebrahimi     VkFramebuffer*                              pFramebuffer);
366*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyFramebuffer(
367*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
368*b7893ccfSSadaf Ebrahimi     VkFramebuffer                               framebuffer,
369*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
370*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateRenderPass(
371*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
372*b7893ccfSSadaf Ebrahimi     const VkRenderPassCreateInfo*               pCreateInfo,
373*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
374*b7893ccfSSadaf Ebrahimi     VkRenderPass*                               pRenderPass);
375*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyRenderPass(
376*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
377*b7893ccfSSadaf Ebrahimi     VkRenderPass                                renderPass,
378*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
379*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetRenderAreaGranularity(
380*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
381*b7893ccfSSadaf Ebrahimi     VkRenderPass                                renderPass,
382*b7893ccfSSadaf Ebrahimi     VkExtent2D*                                 pGranularity);
383*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateCommandPool(
384*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
385*b7893ccfSSadaf Ebrahimi     const VkCommandPoolCreateInfo*              pCreateInfo,
386*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
387*b7893ccfSSadaf Ebrahimi     VkCommandPool*                              pCommandPool);
388*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyCommandPool(
389*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
390*b7893ccfSSadaf Ebrahimi     VkCommandPool                               commandPool,
391*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
392*b7893ccfSSadaf Ebrahimi bool PreCallValidateResetCommandPool(
393*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
394*b7893ccfSSadaf Ebrahimi     VkCommandPool                               commandPool,
395*b7893ccfSSadaf Ebrahimi     VkCommandPoolResetFlags                     flags);
396*b7893ccfSSadaf Ebrahimi bool PreCallValidateAllocateCommandBuffers(
397*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
398*b7893ccfSSadaf Ebrahimi     const VkCommandBufferAllocateInfo*          pAllocateInfo,
399*b7893ccfSSadaf Ebrahimi     VkCommandBuffer*                            pCommandBuffers);
400*b7893ccfSSadaf Ebrahimi bool PreCallValidateFreeCommandBuffers(
401*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
402*b7893ccfSSadaf Ebrahimi     VkCommandPool                               commandPool,
403*b7893ccfSSadaf Ebrahimi     uint32_t                                    commandBufferCount,
404*b7893ccfSSadaf Ebrahimi     const VkCommandBuffer*                      pCommandBuffers);
405*b7893ccfSSadaf Ebrahimi bool PreCallValidateBeginCommandBuffer(
406*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
407*b7893ccfSSadaf Ebrahimi     const VkCommandBufferBeginInfo*             pBeginInfo);
408*b7893ccfSSadaf Ebrahimi bool PreCallValidateEndCommandBuffer(
409*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer);
410*b7893ccfSSadaf Ebrahimi bool PreCallValidateResetCommandBuffer(
411*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
412*b7893ccfSSadaf Ebrahimi     VkCommandBufferResetFlags                   flags);
413*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBindPipeline(
414*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
415*b7893ccfSSadaf Ebrahimi     VkPipelineBindPoint                         pipelineBindPoint,
416*b7893ccfSSadaf Ebrahimi     VkPipeline                                  pipeline);
417*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetViewport(
418*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
419*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstViewport,
420*b7893ccfSSadaf Ebrahimi     uint32_t                                    viewportCount,
421*b7893ccfSSadaf Ebrahimi     const VkViewport*                           pViewports);
422*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetScissor(
423*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
424*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstScissor,
425*b7893ccfSSadaf Ebrahimi     uint32_t                                    scissorCount,
426*b7893ccfSSadaf Ebrahimi     const VkRect2D*                             pScissors);
427*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetLineWidth(
428*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
429*b7893ccfSSadaf Ebrahimi     float                                       lineWidth);
430*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetDepthBias(
431*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
432*b7893ccfSSadaf Ebrahimi     float                                       depthBiasConstantFactor,
433*b7893ccfSSadaf Ebrahimi     float                                       depthBiasClamp,
434*b7893ccfSSadaf Ebrahimi     float                                       depthBiasSlopeFactor);
435*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetBlendConstants(
436*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
437*b7893ccfSSadaf Ebrahimi     const float                                 blendConstants[4]);
438*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetDepthBounds(
439*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
440*b7893ccfSSadaf Ebrahimi     float                                       minDepthBounds,
441*b7893ccfSSadaf Ebrahimi     float                                       maxDepthBounds);
442*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetStencilCompareMask(
443*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
444*b7893ccfSSadaf Ebrahimi     VkStencilFaceFlags                          faceMask,
445*b7893ccfSSadaf Ebrahimi     uint32_t                                    compareMask);
446*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetStencilWriteMask(
447*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
448*b7893ccfSSadaf Ebrahimi     VkStencilFaceFlags                          faceMask,
449*b7893ccfSSadaf Ebrahimi     uint32_t                                    writeMask);
450*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetStencilReference(
451*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
452*b7893ccfSSadaf Ebrahimi     VkStencilFaceFlags                          faceMask,
453*b7893ccfSSadaf Ebrahimi     uint32_t                                    reference);
454*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBindDescriptorSets(
455*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
456*b7893ccfSSadaf Ebrahimi     VkPipelineBindPoint                         pipelineBindPoint,
457*b7893ccfSSadaf Ebrahimi     VkPipelineLayout                            layout,
458*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstSet,
459*b7893ccfSSadaf Ebrahimi     uint32_t                                    descriptorSetCount,
460*b7893ccfSSadaf Ebrahimi     const VkDescriptorSet*                      pDescriptorSets,
461*b7893ccfSSadaf Ebrahimi     uint32_t                                    dynamicOffsetCount,
462*b7893ccfSSadaf Ebrahimi     const uint32_t*                             pDynamicOffsets);
463*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBindIndexBuffer(
464*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
465*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
466*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset,
467*b7893ccfSSadaf Ebrahimi     VkIndexType                                 indexType);
468*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBindVertexBuffers(
469*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
470*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstBinding,
471*b7893ccfSSadaf Ebrahimi     uint32_t                                    bindingCount,
472*b7893ccfSSadaf Ebrahimi     const VkBuffer*                             pBuffers,
473*b7893ccfSSadaf Ebrahimi     const VkDeviceSize*                         pOffsets);
474*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDraw(
475*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
476*b7893ccfSSadaf Ebrahimi     uint32_t                                    vertexCount,
477*b7893ccfSSadaf Ebrahimi     uint32_t                                    instanceCount,
478*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstVertex,
479*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstInstance);
480*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawIndexed(
481*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
482*b7893ccfSSadaf Ebrahimi     uint32_t                                    indexCount,
483*b7893ccfSSadaf Ebrahimi     uint32_t                                    instanceCount,
484*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstIndex,
485*b7893ccfSSadaf Ebrahimi     int32_t                                     vertexOffset,
486*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstInstance);
487*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawIndirect(
488*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
489*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
490*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset,
491*b7893ccfSSadaf Ebrahimi     uint32_t                                    drawCount,
492*b7893ccfSSadaf Ebrahimi     uint32_t                                    stride);
493*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawIndexedIndirect(
494*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
495*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
496*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset,
497*b7893ccfSSadaf Ebrahimi     uint32_t                                    drawCount,
498*b7893ccfSSadaf Ebrahimi     uint32_t                                    stride);
499*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDispatch(
500*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
501*b7893ccfSSadaf Ebrahimi     uint32_t                                    groupCountX,
502*b7893ccfSSadaf Ebrahimi     uint32_t                                    groupCountY,
503*b7893ccfSSadaf Ebrahimi     uint32_t                                    groupCountZ);
504*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDispatchIndirect(
505*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
506*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
507*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset);
508*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdCopyBuffer(
509*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
510*b7893ccfSSadaf Ebrahimi     VkBuffer                                    srcBuffer,
511*b7893ccfSSadaf Ebrahimi     VkBuffer                                    dstBuffer,
512*b7893ccfSSadaf Ebrahimi     uint32_t                                    regionCount,
513*b7893ccfSSadaf Ebrahimi     const VkBufferCopy*                         pRegions);
514*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdCopyImage(
515*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
516*b7893ccfSSadaf Ebrahimi     VkImage                                     srcImage,
517*b7893ccfSSadaf Ebrahimi     VkImageLayout                               srcImageLayout,
518*b7893ccfSSadaf Ebrahimi     VkImage                                     dstImage,
519*b7893ccfSSadaf Ebrahimi     VkImageLayout                               dstImageLayout,
520*b7893ccfSSadaf Ebrahimi     uint32_t                                    regionCount,
521*b7893ccfSSadaf Ebrahimi     const VkImageCopy*                          pRegions);
522*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBlitImage(
523*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
524*b7893ccfSSadaf Ebrahimi     VkImage                                     srcImage,
525*b7893ccfSSadaf Ebrahimi     VkImageLayout                               srcImageLayout,
526*b7893ccfSSadaf Ebrahimi     VkImage                                     dstImage,
527*b7893ccfSSadaf Ebrahimi     VkImageLayout                               dstImageLayout,
528*b7893ccfSSadaf Ebrahimi     uint32_t                                    regionCount,
529*b7893ccfSSadaf Ebrahimi     const VkImageBlit*                          pRegions,
530*b7893ccfSSadaf Ebrahimi     VkFilter                                    filter);
531*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdCopyBufferToImage(
532*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
533*b7893ccfSSadaf Ebrahimi     VkBuffer                                    srcBuffer,
534*b7893ccfSSadaf Ebrahimi     VkImage                                     dstImage,
535*b7893ccfSSadaf Ebrahimi     VkImageLayout                               dstImageLayout,
536*b7893ccfSSadaf Ebrahimi     uint32_t                                    regionCount,
537*b7893ccfSSadaf Ebrahimi     const VkBufferImageCopy*                    pRegions);
538*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdCopyImageToBuffer(
539*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
540*b7893ccfSSadaf Ebrahimi     VkImage                                     srcImage,
541*b7893ccfSSadaf Ebrahimi     VkImageLayout                               srcImageLayout,
542*b7893ccfSSadaf Ebrahimi     VkBuffer                                    dstBuffer,
543*b7893ccfSSadaf Ebrahimi     uint32_t                                    regionCount,
544*b7893ccfSSadaf Ebrahimi     const VkBufferImageCopy*                    pRegions);
545*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdUpdateBuffer(
546*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
547*b7893ccfSSadaf Ebrahimi     VkBuffer                                    dstBuffer,
548*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                dstOffset,
549*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                dataSize,
550*b7893ccfSSadaf Ebrahimi     const void*                                 pData);
551*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdFillBuffer(
552*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
553*b7893ccfSSadaf Ebrahimi     VkBuffer                                    dstBuffer,
554*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                dstOffset,
555*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                size,
556*b7893ccfSSadaf Ebrahimi     uint32_t                                    data);
557*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdClearColorImage(
558*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
559*b7893ccfSSadaf Ebrahimi     VkImage                                     image,
560*b7893ccfSSadaf Ebrahimi     VkImageLayout                               imageLayout,
561*b7893ccfSSadaf Ebrahimi     const VkClearColorValue*                    pColor,
562*b7893ccfSSadaf Ebrahimi     uint32_t                                    rangeCount,
563*b7893ccfSSadaf Ebrahimi     const VkImageSubresourceRange*              pRanges);
564*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdClearDepthStencilImage(
565*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
566*b7893ccfSSadaf Ebrahimi     VkImage                                     image,
567*b7893ccfSSadaf Ebrahimi     VkImageLayout                               imageLayout,
568*b7893ccfSSadaf Ebrahimi     const VkClearDepthStencilValue*             pDepthStencil,
569*b7893ccfSSadaf Ebrahimi     uint32_t                                    rangeCount,
570*b7893ccfSSadaf Ebrahimi     const VkImageSubresourceRange*              pRanges);
571*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdClearAttachments(
572*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
573*b7893ccfSSadaf Ebrahimi     uint32_t                                    attachmentCount,
574*b7893ccfSSadaf Ebrahimi     const VkClearAttachment*                    pAttachments,
575*b7893ccfSSadaf Ebrahimi     uint32_t                                    rectCount,
576*b7893ccfSSadaf Ebrahimi     const VkClearRect*                          pRects);
577*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdResolveImage(
578*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
579*b7893ccfSSadaf Ebrahimi     VkImage                                     srcImage,
580*b7893ccfSSadaf Ebrahimi     VkImageLayout                               srcImageLayout,
581*b7893ccfSSadaf Ebrahimi     VkImage                                     dstImage,
582*b7893ccfSSadaf Ebrahimi     VkImageLayout                               dstImageLayout,
583*b7893ccfSSadaf Ebrahimi     uint32_t                                    regionCount,
584*b7893ccfSSadaf Ebrahimi     const VkImageResolve*                       pRegions);
585*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetEvent(
586*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
587*b7893ccfSSadaf Ebrahimi     VkEvent                                     event,
588*b7893ccfSSadaf Ebrahimi     VkPipelineStageFlags                        stageMask);
589*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdResetEvent(
590*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
591*b7893ccfSSadaf Ebrahimi     VkEvent                                     event,
592*b7893ccfSSadaf Ebrahimi     VkPipelineStageFlags                        stageMask);
593*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdWaitEvents(
594*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
595*b7893ccfSSadaf Ebrahimi     uint32_t                                    eventCount,
596*b7893ccfSSadaf Ebrahimi     const VkEvent*                              pEvents,
597*b7893ccfSSadaf Ebrahimi     VkPipelineStageFlags                        srcStageMask,
598*b7893ccfSSadaf Ebrahimi     VkPipelineStageFlags                        dstStageMask,
599*b7893ccfSSadaf Ebrahimi     uint32_t                                    memoryBarrierCount,
600*b7893ccfSSadaf Ebrahimi     const VkMemoryBarrier*                      pMemoryBarriers,
601*b7893ccfSSadaf Ebrahimi     uint32_t                                    bufferMemoryBarrierCount,
602*b7893ccfSSadaf Ebrahimi     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
603*b7893ccfSSadaf Ebrahimi     uint32_t                                    imageMemoryBarrierCount,
604*b7893ccfSSadaf Ebrahimi     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
605*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdPipelineBarrier(
606*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
607*b7893ccfSSadaf Ebrahimi     VkPipelineStageFlags                        srcStageMask,
608*b7893ccfSSadaf Ebrahimi     VkPipelineStageFlags                        dstStageMask,
609*b7893ccfSSadaf Ebrahimi     VkDependencyFlags                           dependencyFlags,
610*b7893ccfSSadaf Ebrahimi     uint32_t                                    memoryBarrierCount,
611*b7893ccfSSadaf Ebrahimi     const VkMemoryBarrier*                      pMemoryBarriers,
612*b7893ccfSSadaf Ebrahimi     uint32_t                                    bufferMemoryBarrierCount,
613*b7893ccfSSadaf Ebrahimi     const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
614*b7893ccfSSadaf Ebrahimi     uint32_t                                    imageMemoryBarrierCount,
615*b7893ccfSSadaf Ebrahimi     const VkImageMemoryBarrier*                 pImageMemoryBarriers);
616*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBeginQuery(
617*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
618*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
619*b7893ccfSSadaf Ebrahimi     uint32_t                                    query,
620*b7893ccfSSadaf Ebrahimi     VkQueryControlFlags                         flags);
621*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdEndQuery(
622*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
623*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
624*b7893ccfSSadaf Ebrahimi     uint32_t                                    query);
625*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdResetQueryPool(
626*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
627*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
628*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstQuery,
629*b7893ccfSSadaf Ebrahimi     uint32_t                                    queryCount);
630*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdWriteTimestamp(
631*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
632*b7893ccfSSadaf Ebrahimi     VkPipelineStageFlagBits                     pipelineStage,
633*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
634*b7893ccfSSadaf Ebrahimi     uint32_t                                    query);
635*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdCopyQueryPoolResults(
636*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
637*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
638*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstQuery,
639*b7893ccfSSadaf Ebrahimi     uint32_t                                    queryCount,
640*b7893ccfSSadaf Ebrahimi     VkBuffer                                    dstBuffer,
641*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                dstOffset,
642*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                stride,
643*b7893ccfSSadaf Ebrahimi     VkQueryResultFlags                          flags);
644*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdPushConstants(
645*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
646*b7893ccfSSadaf Ebrahimi     VkPipelineLayout                            layout,
647*b7893ccfSSadaf Ebrahimi     VkShaderStageFlags                          stageFlags,
648*b7893ccfSSadaf Ebrahimi     uint32_t                                    offset,
649*b7893ccfSSadaf Ebrahimi     uint32_t                                    size,
650*b7893ccfSSadaf Ebrahimi     const void*                                 pValues);
651*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBeginRenderPass(
652*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
653*b7893ccfSSadaf Ebrahimi     const VkRenderPassBeginInfo*                pRenderPassBegin,
654*b7893ccfSSadaf Ebrahimi     VkSubpassContents                           contents);
655*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdNextSubpass(
656*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
657*b7893ccfSSadaf Ebrahimi     VkSubpassContents                           contents);
658*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdEndRenderPass(
659*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer);
660*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdExecuteCommands(
661*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
662*b7893ccfSSadaf Ebrahimi     uint32_t                                    commandBufferCount,
663*b7893ccfSSadaf Ebrahimi     const VkCommandBuffer*                      pCommandBuffers);
664*b7893ccfSSadaf Ebrahimi bool PreCallValidateBindBufferMemory2(
665*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
666*b7893ccfSSadaf Ebrahimi     uint32_t                                    bindInfoCount,
667*b7893ccfSSadaf Ebrahimi     const VkBindBufferMemoryInfo*               pBindInfos);
668*b7893ccfSSadaf Ebrahimi bool PreCallValidateBindImageMemory2(
669*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
670*b7893ccfSSadaf Ebrahimi     uint32_t                                    bindInfoCount,
671*b7893ccfSSadaf Ebrahimi     const VkBindImageMemoryInfo*                pBindInfos);
672*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDeviceGroupPeerMemoryFeatures(
673*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
674*b7893ccfSSadaf Ebrahimi     uint32_t                                    heapIndex,
675*b7893ccfSSadaf Ebrahimi     uint32_t                                    localDeviceIndex,
676*b7893ccfSSadaf Ebrahimi     uint32_t                                    remoteDeviceIndex,
677*b7893ccfSSadaf Ebrahimi     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
678*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetDeviceMask(
679*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
680*b7893ccfSSadaf Ebrahimi     uint32_t                                    deviceMask);
681*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDispatchBase(
682*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
683*b7893ccfSSadaf Ebrahimi     uint32_t                                    baseGroupX,
684*b7893ccfSSadaf Ebrahimi     uint32_t                                    baseGroupY,
685*b7893ccfSSadaf Ebrahimi     uint32_t                                    baseGroupZ,
686*b7893ccfSSadaf Ebrahimi     uint32_t                                    groupCountX,
687*b7893ccfSSadaf Ebrahimi     uint32_t                                    groupCountY,
688*b7893ccfSSadaf Ebrahimi     uint32_t                                    groupCountZ);
689*b7893ccfSSadaf Ebrahimi bool PreCallValidateEnumeratePhysicalDeviceGroups(
690*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
691*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPhysicalDeviceGroupCount,
692*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
693*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetImageMemoryRequirements2(
694*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
695*b7893ccfSSadaf Ebrahimi     const VkImageMemoryRequirementsInfo2*       pInfo,
696*b7893ccfSSadaf Ebrahimi     VkMemoryRequirements2*                      pMemoryRequirements);
697*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetBufferMemoryRequirements2(
698*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
699*b7893ccfSSadaf Ebrahimi     const VkBufferMemoryRequirementsInfo2*      pInfo,
700*b7893ccfSSadaf Ebrahimi     VkMemoryRequirements2*                      pMemoryRequirements);
701*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetImageSparseMemoryRequirements2(
702*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
703*b7893ccfSSadaf Ebrahimi     const VkImageSparseMemoryRequirementsInfo2* pInfo,
704*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pSparseMemoryRequirementCount,
705*b7893ccfSSadaf Ebrahimi     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
706*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceFeatures2(
707*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
708*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceFeatures2*                  pFeatures);
709*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceProperties2(
710*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
711*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceProperties2*                pProperties);
712*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceFormatProperties2(
713*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
714*b7893ccfSSadaf Ebrahimi     VkFormat                                    format,
715*b7893ccfSSadaf Ebrahimi     VkFormatProperties2*                        pFormatProperties);
716*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceImageFormatProperties2(
717*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
718*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
719*b7893ccfSSadaf Ebrahimi     VkImageFormatProperties2*                   pImageFormatProperties);
720*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceQueueFamilyProperties2(
721*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
722*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pQueueFamilyPropertyCount,
723*b7893ccfSSadaf Ebrahimi     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
724*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceMemoryProperties2(
725*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
726*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
727*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSparseImageFormatProperties2(
728*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
729*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
730*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPropertyCount,
731*b7893ccfSSadaf Ebrahimi     VkSparseImageFormatProperties2*             pProperties);
732*b7893ccfSSadaf Ebrahimi bool PreCallValidateTrimCommandPool(
733*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
734*b7893ccfSSadaf Ebrahimi     VkCommandPool                               commandPool,
735*b7893ccfSSadaf Ebrahimi     VkCommandPoolTrimFlags                      flags);
736*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDeviceQueue2(
737*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
738*b7893ccfSSadaf Ebrahimi     const VkDeviceQueueInfo2*                   pQueueInfo,
739*b7893ccfSSadaf Ebrahimi     VkQueue*                                    pQueue);
740*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateSamplerYcbcrConversion(
741*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
742*b7893ccfSSadaf Ebrahimi     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
743*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
744*b7893ccfSSadaf Ebrahimi     VkSamplerYcbcrConversion*                   pYcbcrConversion);
745*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroySamplerYcbcrConversion(
746*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
747*b7893ccfSSadaf Ebrahimi     VkSamplerYcbcrConversion                    ycbcrConversion,
748*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
749*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateDescriptorUpdateTemplate(
750*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
751*b7893ccfSSadaf Ebrahimi     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
752*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
753*b7893ccfSSadaf Ebrahimi     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
754*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyDescriptorUpdateTemplate(
755*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
756*b7893ccfSSadaf Ebrahimi     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
757*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
758*b7893ccfSSadaf Ebrahimi bool PreCallValidateUpdateDescriptorSetWithTemplate(
759*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
760*b7893ccfSSadaf Ebrahimi     VkDescriptorSet                             descriptorSet,
761*b7893ccfSSadaf Ebrahimi     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
762*b7893ccfSSadaf Ebrahimi     const void*                                 pData);
763*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceExternalBufferProperties(
764*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
765*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
766*b7893ccfSSadaf Ebrahimi     VkExternalBufferProperties*                 pExternalBufferProperties);
767*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceExternalFenceProperties(
768*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
769*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
770*b7893ccfSSadaf Ebrahimi     VkExternalFenceProperties*                  pExternalFenceProperties);
771*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceExternalSemaphoreProperties(
772*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
773*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
774*b7893ccfSSadaf Ebrahimi     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
775*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDescriptorSetLayoutSupport(
776*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
777*b7893ccfSSadaf Ebrahimi     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
778*b7893ccfSSadaf Ebrahimi     VkDescriptorSetLayoutSupport*               pSupport);
779*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroySurfaceKHR(
780*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
781*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR                                surface,
782*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
783*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSurfaceSupportKHR(
784*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
785*b7893ccfSSadaf Ebrahimi     uint32_t                                    queueFamilyIndex,
786*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR                                surface,
787*b7893ccfSSadaf Ebrahimi     VkBool32*                                   pSupported);
788*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSurfaceCapabilitiesKHR(
789*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
790*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR                                surface,
791*b7893ccfSSadaf Ebrahimi     VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
792*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSurfaceFormatsKHR(
793*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
794*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR                                surface,
795*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pSurfaceFormatCount,
796*b7893ccfSSadaf Ebrahimi     VkSurfaceFormatKHR*                         pSurfaceFormats);
797*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSurfacePresentModesKHR(
798*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
799*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR                                surface,
800*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPresentModeCount,
801*b7893ccfSSadaf Ebrahimi     VkPresentModeKHR*                           pPresentModes);
802*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateSwapchainKHR(
803*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
804*b7893ccfSSadaf Ebrahimi     const VkSwapchainCreateInfoKHR*             pCreateInfo,
805*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
806*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR*                             pSwapchain);
807*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroySwapchainKHR(
808*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
809*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR                              swapchain,
810*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
811*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetSwapchainImagesKHR(
812*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
813*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR                              swapchain,
814*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pSwapchainImageCount,
815*b7893ccfSSadaf Ebrahimi     VkImage*                                    pSwapchainImages);
816*b7893ccfSSadaf Ebrahimi bool PreCallValidateAcquireNextImageKHR(
817*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
818*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR                              swapchain,
819*b7893ccfSSadaf Ebrahimi     uint64_t                                    timeout,
820*b7893ccfSSadaf Ebrahimi     VkSemaphore                                 semaphore,
821*b7893ccfSSadaf Ebrahimi     VkFence                                     fence,
822*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pImageIndex);
823*b7893ccfSSadaf Ebrahimi bool PreCallValidateQueuePresentKHR(
824*b7893ccfSSadaf Ebrahimi     VkQueue                                     queue,
825*b7893ccfSSadaf Ebrahimi     const VkPresentInfoKHR*                     pPresentInfo);
826*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDeviceGroupPresentCapabilitiesKHR(
827*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
828*b7893ccfSSadaf Ebrahimi     VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities);
829*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDeviceGroupSurfacePresentModesKHR(
830*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
831*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR                                surface,
832*b7893ccfSSadaf Ebrahimi     VkDeviceGroupPresentModeFlagsKHR*           pModes);
833*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDevicePresentRectanglesKHR(
834*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
835*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR                                surface,
836*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pRectCount,
837*b7893ccfSSadaf Ebrahimi     VkRect2D*                                   pRects);
838*b7893ccfSSadaf Ebrahimi bool PreCallValidateAcquireNextImage2KHR(
839*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
840*b7893ccfSSadaf Ebrahimi     const VkAcquireNextImageInfoKHR*            pAcquireInfo,
841*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pImageIndex);
842*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceDisplayPropertiesKHR(
843*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
844*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPropertyCount,
845*b7893ccfSSadaf Ebrahimi     VkDisplayPropertiesKHR*                     pProperties);
846*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceDisplayPlanePropertiesKHR(
847*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
848*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPropertyCount,
849*b7893ccfSSadaf Ebrahimi     VkDisplayPlanePropertiesKHR*                pProperties);
850*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDisplayPlaneSupportedDisplaysKHR(
851*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
852*b7893ccfSSadaf Ebrahimi     uint32_t                                    planeIndex,
853*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pDisplayCount,
854*b7893ccfSSadaf Ebrahimi     VkDisplayKHR*                               pDisplays);
855*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDisplayModePropertiesKHR(
856*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
857*b7893ccfSSadaf Ebrahimi     VkDisplayKHR                                display,
858*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPropertyCount,
859*b7893ccfSSadaf Ebrahimi     VkDisplayModePropertiesKHR*                 pProperties);
860*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateDisplayModeKHR(
861*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
862*b7893ccfSSadaf Ebrahimi     VkDisplayKHR                                display,
863*b7893ccfSSadaf Ebrahimi     const VkDisplayModeCreateInfoKHR*           pCreateInfo,
864*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
865*b7893ccfSSadaf Ebrahimi     VkDisplayModeKHR*                           pMode);
866*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDisplayPlaneCapabilitiesKHR(
867*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
868*b7893ccfSSadaf Ebrahimi     VkDisplayModeKHR                            mode,
869*b7893ccfSSadaf Ebrahimi     uint32_t                                    planeIndex,
870*b7893ccfSSadaf Ebrahimi     VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
871*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateDisplayPlaneSurfaceKHR(
872*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
873*b7893ccfSSadaf Ebrahimi     const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
874*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
875*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
876*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateSharedSwapchainsKHR(
877*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
878*b7893ccfSSadaf Ebrahimi     uint32_t                                    swapchainCount,
879*b7893ccfSSadaf Ebrahimi     const VkSwapchainCreateInfoKHR*             pCreateInfos,
880*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
881*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR*                             pSwapchains);
882*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XLIB_KHR
883*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateXlibSurfaceKHR(
884*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
885*b7893ccfSSadaf Ebrahimi     const VkXlibSurfaceCreateInfoKHR*           pCreateInfo,
886*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
887*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
888*b7893ccfSSadaf Ebrahimi #endif
889*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XLIB_KHR
890*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceXlibPresentationSupportKHR(
891*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
892*b7893ccfSSadaf Ebrahimi     uint32_t                                    queueFamilyIndex,
893*b7893ccfSSadaf Ebrahimi     Display*                                    dpy,
894*b7893ccfSSadaf Ebrahimi     VisualID                                    visualID);
895*b7893ccfSSadaf Ebrahimi #endif
896*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XCB_KHR
897*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateXcbSurfaceKHR(
898*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
899*b7893ccfSSadaf Ebrahimi     const VkXcbSurfaceCreateInfoKHR*            pCreateInfo,
900*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
901*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
902*b7893ccfSSadaf Ebrahimi #endif
903*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XCB_KHR
904*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceXcbPresentationSupportKHR(
905*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
906*b7893ccfSSadaf Ebrahimi     uint32_t                                    queueFamilyIndex,
907*b7893ccfSSadaf Ebrahimi     xcb_connection_t*                           connection,
908*b7893ccfSSadaf Ebrahimi     xcb_visualid_t                              visual_id);
909*b7893ccfSSadaf Ebrahimi #endif
910*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WAYLAND_KHR
911*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateWaylandSurfaceKHR(
912*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
913*b7893ccfSSadaf Ebrahimi     const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo,
914*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
915*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
916*b7893ccfSSadaf Ebrahimi #endif
917*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WAYLAND_KHR
918*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceWaylandPresentationSupportKHR(
919*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
920*b7893ccfSSadaf Ebrahimi     uint32_t                                    queueFamilyIndex,
921*b7893ccfSSadaf Ebrahimi     struct wl_display*                          display);
922*b7893ccfSSadaf Ebrahimi #endif
923*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_ANDROID_KHR
924*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateAndroidSurfaceKHR(
925*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
926*b7893ccfSSadaf Ebrahimi     const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo,
927*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
928*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
929*b7893ccfSSadaf Ebrahimi #endif
930*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
931*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateWin32SurfaceKHR(
932*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
933*b7893ccfSSadaf Ebrahimi     const VkWin32SurfaceCreateInfoKHR*          pCreateInfo,
934*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
935*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
936*b7893ccfSSadaf Ebrahimi #endif
937*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
938*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceWin32PresentationSupportKHR(
939*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
940*b7893ccfSSadaf Ebrahimi     uint32_t                                    queueFamilyIndex);
941*b7893ccfSSadaf Ebrahimi #endif
942*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceFeatures2KHR(
943*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
944*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceFeatures2*                  pFeatures);
945*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceProperties2KHR(
946*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
947*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceProperties2*                pProperties);
948*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceFormatProperties2KHR(
949*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
950*b7893ccfSSadaf Ebrahimi     VkFormat                                    format,
951*b7893ccfSSadaf Ebrahimi     VkFormatProperties2*                        pFormatProperties);
952*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceImageFormatProperties2KHR(
953*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
954*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo,
955*b7893ccfSSadaf Ebrahimi     VkImageFormatProperties2*                   pImageFormatProperties);
956*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceQueueFamilyProperties2KHR(
957*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
958*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pQueueFamilyPropertyCount,
959*b7893ccfSSadaf Ebrahimi     VkQueueFamilyProperties2*                   pQueueFamilyProperties);
960*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceMemoryProperties2KHR(
961*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
962*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceMemoryProperties2*          pMemoryProperties);
963*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSparseImageFormatProperties2KHR(
964*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
965*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
966*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPropertyCount,
967*b7893ccfSSadaf Ebrahimi     VkSparseImageFormatProperties2*             pProperties);
968*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDeviceGroupPeerMemoryFeaturesKHR(
969*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
970*b7893ccfSSadaf Ebrahimi     uint32_t                                    heapIndex,
971*b7893ccfSSadaf Ebrahimi     uint32_t                                    localDeviceIndex,
972*b7893ccfSSadaf Ebrahimi     uint32_t                                    remoteDeviceIndex,
973*b7893ccfSSadaf Ebrahimi     VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures);
974*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetDeviceMaskKHR(
975*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
976*b7893ccfSSadaf Ebrahimi     uint32_t                                    deviceMask);
977*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDispatchBaseKHR(
978*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
979*b7893ccfSSadaf Ebrahimi     uint32_t                                    baseGroupX,
980*b7893ccfSSadaf Ebrahimi     uint32_t                                    baseGroupY,
981*b7893ccfSSadaf Ebrahimi     uint32_t                                    baseGroupZ,
982*b7893ccfSSadaf Ebrahimi     uint32_t                                    groupCountX,
983*b7893ccfSSadaf Ebrahimi     uint32_t                                    groupCountY,
984*b7893ccfSSadaf Ebrahimi     uint32_t                                    groupCountZ);
985*b7893ccfSSadaf Ebrahimi bool PreCallValidateTrimCommandPoolKHR(
986*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
987*b7893ccfSSadaf Ebrahimi     VkCommandPool                               commandPool,
988*b7893ccfSSadaf Ebrahimi     VkCommandPoolTrimFlags                      flags);
989*b7893ccfSSadaf Ebrahimi bool PreCallValidateEnumeratePhysicalDeviceGroupsKHR(
990*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
991*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPhysicalDeviceGroupCount,
992*b7893ccfSSadaf Ebrahimi     VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties);
993*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceExternalBufferPropertiesKHR(
994*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
995*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo,
996*b7893ccfSSadaf Ebrahimi     VkExternalBufferProperties*                 pExternalBufferProperties);
997*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
998*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetMemoryWin32HandleKHR(
999*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1000*b7893ccfSSadaf Ebrahimi     const VkMemoryGetWin32HandleInfoKHR*        pGetWin32HandleInfo,
1001*b7893ccfSSadaf Ebrahimi     HANDLE*                                     pHandle);
1002*b7893ccfSSadaf Ebrahimi #endif
1003*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
1004*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetMemoryWin32HandlePropertiesKHR(
1005*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1006*b7893ccfSSadaf Ebrahimi     VkExternalMemoryHandleTypeFlagBits          handleType,
1007*b7893ccfSSadaf Ebrahimi     HANDLE                                      handle,
1008*b7893ccfSSadaf Ebrahimi     VkMemoryWin32HandlePropertiesKHR*           pMemoryWin32HandleProperties);
1009*b7893ccfSSadaf Ebrahimi #endif
1010*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetMemoryFdKHR(
1011*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1012*b7893ccfSSadaf Ebrahimi     const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
1013*b7893ccfSSadaf Ebrahimi     int*                                        pFd);
1014*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetMemoryFdPropertiesKHR(
1015*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1016*b7893ccfSSadaf Ebrahimi     VkExternalMemoryHandleTypeFlagBits          handleType,
1017*b7893ccfSSadaf Ebrahimi     int                                         fd,
1018*b7893ccfSSadaf Ebrahimi     VkMemoryFdPropertiesKHR*                    pMemoryFdProperties);
1019*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceExternalSemaphorePropertiesKHR(
1020*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1021*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1022*b7893ccfSSadaf Ebrahimi     VkExternalSemaphoreProperties*              pExternalSemaphoreProperties);
1023*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
1024*b7893ccfSSadaf Ebrahimi bool PreCallValidateImportSemaphoreWin32HandleKHR(
1025*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1026*b7893ccfSSadaf Ebrahimi     const VkImportSemaphoreWin32HandleInfoKHR*  pImportSemaphoreWin32HandleInfo);
1027*b7893ccfSSadaf Ebrahimi #endif
1028*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
1029*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetSemaphoreWin32HandleKHR(
1030*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1031*b7893ccfSSadaf Ebrahimi     const VkSemaphoreGetWin32HandleInfoKHR*     pGetWin32HandleInfo,
1032*b7893ccfSSadaf Ebrahimi     HANDLE*                                     pHandle);
1033*b7893ccfSSadaf Ebrahimi #endif
1034*b7893ccfSSadaf Ebrahimi bool PreCallValidateImportSemaphoreFdKHR(
1035*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1036*b7893ccfSSadaf Ebrahimi     const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo);
1037*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetSemaphoreFdKHR(
1038*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1039*b7893ccfSSadaf Ebrahimi     const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
1040*b7893ccfSSadaf Ebrahimi     int*                                        pFd);
1041*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdPushDescriptorSetKHR(
1042*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1043*b7893ccfSSadaf Ebrahimi     VkPipelineBindPoint                         pipelineBindPoint,
1044*b7893ccfSSadaf Ebrahimi     VkPipelineLayout                            layout,
1045*b7893ccfSSadaf Ebrahimi     uint32_t                                    set,
1046*b7893ccfSSadaf Ebrahimi     uint32_t                                    descriptorWriteCount,
1047*b7893ccfSSadaf Ebrahimi     const VkWriteDescriptorSet*                 pDescriptorWrites);
1048*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdPushDescriptorSetWithTemplateKHR(
1049*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1050*b7893ccfSSadaf Ebrahimi     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
1051*b7893ccfSSadaf Ebrahimi     VkPipelineLayout                            layout,
1052*b7893ccfSSadaf Ebrahimi     uint32_t                                    set,
1053*b7893ccfSSadaf Ebrahimi     const void*                                 pData);
1054*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateDescriptorUpdateTemplateKHR(
1055*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1056*b7893ccfSSadaf Ebrahimi     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1057*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1058*b7893ccfSSadaf Ebrahimi     VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate);
1059*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyDescriptorUpdateTemplateKHR(
1060*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1061*b7893ccfSSadaf Ebrahimi     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
1062*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
1063*b7893ccfSSadaf Ebrahimi bool PreCallValidateUpdateDescriptorSetWithTemplateKHR(
1064*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1065*b7893ccfSSadaf Ebrahimi     VkDescriptorSet                             descriptorSet,
1066*b7893ccfSSadaf Ebrahimi     VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
1067*b7893ccfSSadaf Ebrahimi     const void*                                 pData);
1068*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateRenderPass2KHR(
1069*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1070*b7893ccfSSadaf Ebrahimi     const VkRenderPassCreateInfo2KHR*           pCreateInfo,
1071*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1072*b7893ccfSSadaf Ebrahimi     VkRenderPass*                               pRenderPass);
1073*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBeginRenderPass2KHR(
1074*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1075*b7893ccfSSadaf Ebrahimi     const VkRenderPassBeginInfo*                pRenderPassBegin,
1076*b7893ccfSSadaf Ebrahimi     const VkSubpassBeginInfoKHR*                pSubpassBeginInfo);
1077*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdNextSubpass2KHR(
1078*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1079*b7893ccfSSadaf Ebrahimi     const VkSubpassBeginInfoKHR*                pSubpassBeginInfo,
1080*b7893ccfSSadaf Ebrahimi     const VkSubpassEndInfoKHR*                  pSubpassEndInfo);
1081*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdEndRenderPass2KHR(
1082*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1083*b7893ccfSSadaf Ebrahimi     const VkSubpassEndInfoKHR*                  pSubpassEndInfo);
1084*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetSwapchainStatusKHR(
1085*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1086*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR                              swapchain);
1087*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceExternalFencePropertiesKHR(
1088*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1089*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo,
1090*b7893ccfSSadaf Ebrahimi     VkExternalFenceProperties*                  pExternalFenceProperties);
1091*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
1092*b7893ccfSSadaf Ebrahimi bool PreCallValidateImportFenceWin32HandleKHR(
1093*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1094*b7893ccfSSadaf Ebrahimi     const VkImportFenceWin32HandleInfoKHR*      pImportFenceWin32HandleInfo);
1095*b7893ccfSSadaf Ebrahimi #endif
1096*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
1097*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetFenceWin32HandleKHR(
1098*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1099*b7893ccfSSadaf Ebrahimi     const VkFenceGetWin32HandleInfoKHR*         pGetWin32HandleInfo,
1100*b7893ccfSSadaf Ebrahimi     HANDLE*                                     pHandle);
1101*b7893ccfSSadaf Ebrahimi #endif
1102*b7893ccfSSadaf Ebrahimi bool PreCallValidateImportFenceFdKHR(
1103*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1104*b7893ccfSSadaf Ebrahimi     const VkImportFenceFdInfoKHR*               pImportFenceFdInfo);
1105*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetFenceFdKHR(
1106*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1107*b7893ccfSSadaf Ebrahimi     const VkFenceGetFdInfoKHR*                  pGetFdInfo,
1108*b7893ccfSSadaf Ebrahimi     int*                                        pFd);
1109*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSurfaceCapabilities2KHR(
1110*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1111*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
1112*b7893ccfSSadaf Ebrahimi     VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities);
1113*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSurfaceFormats2KHR(
1114*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1115*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
1116*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pSurfaceFormatCount,
1117*b7893ccfSSadaf Ebrahimi     VkSurfaceFormat2KHR*                        pSurfaceFormats);
1118*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceDisplayProperties2KHR(
1119*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1120*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPropertyCount,
1121*b7893ccfSSadaf Ebrahimi     VkDisplayProperties2KHR*                    pProperties);
1122*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceDisplayPlaneProperties2KHR(
1123*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1124*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPropertyCount,
1125*b7893ccfSSadaf Ebrahimi     VkDisplayPlaneProperties2KHR*               pProperties);
1126*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDisplayModeProperties2KHR(
1127*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1128*b7893ccfSSadaf Ebrahimi     VkDisplayKHR                                display,
1129*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPropertyCount,
1130*b7893ccfSSadaf Ebrahimi     VkDisplayModeProperties2KHR*                pProperties);
1131*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDisplayPlaneCapabilities2KHR(
1132*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1133*b7893ccfSSadaf Ebrahimi     const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo,
1134*b7893ccfSSadaf Ebrahimi     VkDisplayPlaneCapabilities2KHR*             pCapabilities);
1135*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetImageMemoryRequirements2KHR(
1136*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1137*b7893ccfSSadaf Ebrahimi     const VkImageMemoryRequirementsInfo2*       pInfo,
1138*b7893ccfSSadaf Ebrahimi     VkMemoryRequirements2*                      pMemoryRequirements);
1139*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetBufferMemoryRequirements2KHR(
1140*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1141*b7893ccfSSadaf Ebrahimi     const VkBufferMemoryRequirementsInfo2*      pInfo,
1142*b7893ccfSSadaf Ebrahimi     VkMemoryRequirements2*                      pMemoryRequirements);
1143*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetImageSparseMemoryRequirements2KHR(
1144*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1145*b7893ccfSSadaf Ebrahimi     const VkImageSparseMemoryRequirementsInfo2* pInfo,
1146*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pSparseMemoryRequirementCount,
1147*b7893ccfSSadaf Ebrahimi     VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements);
1148*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateSamplerYcbcrConversionKHR(
1149*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1150*b7893ccfSSadaf Ebrahimi     const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
1151*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1152*b7893ccfSSadaf Ebrahimi     VkSamplerYcbcrConversion*                   pYcbcrConversion);
1153*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroySamplerYcbcrConversionKHR(
1154*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1155*b7893ccfSSadaf Ebrahimi     VkSamplerYcbcrConversion                    ycbcrConversion,
1156*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
1157*b7893ccfSSadaf Ebrahimi bool PreCallValidateBindBufferMemory2KHR(
1158*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1159*b7893ccfSSadaf Ebrahimi     uint32_t                                    bindInfoCount,
1160*b7893ccfSSadaf Ebrahimi     const VkBindBufferMemoryInfo*               pBindInfos);
1161*b7893ccfSSadaf Ebrahimi bool PreCallValidateBindImageMemory2KHR(
1162*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1163*b7893ccfSSadaf Ebrahimi     uint32_t                                    bindInfoCount,
1164*b7893ccfSSadaf Ebrahimi     const VkBindImageMemoryInfo*                pBindInfos);
1165*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetDescriptorSetLayoutSupportKHR(
1166*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1167*b7893ccfSSadaf Ebrahimi     const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
1168*b7893ccfSSadaf Ebrahimi     VkDescriptorSetLayoutSupport*               pSupport);
1169*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawIndirectCountKHR(
1170*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1171*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
1172*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset,
1173*b7893ccfSSadaf Ebrahimi     VkBuffer                                    countBuffer,
1174*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                countBufferOffset,
1175*b7893ccfSSadaf Ebrahimi     uint32_t                                    maxDrawCount,
1176*b7893ccfSSadaf Ebrahimi     uint32_t                                    stride);
1177*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawIndexedIndirectCountKHR(
1178*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1179*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
1180*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset,
1181*b7893ccfSSadaf Ebrahimi     VkBuffer                                    countBuffer,
1182*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                countBufferOffset,
1183*b7893ccfSSadaf Ebrahimi     uint32_t                                    maxDrawCount,
1184*b7893ccfSSadaf Ebrahimi     uint32_t                                    stride);
1185*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPipelineExecutablePropertiesKHR(
1186*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1187*b7893ccfSSadaf Ebrahimi     const VkPipelineInfoKHR*                    pPipelineInfo,
1188*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pExecutableCount,
1189*b7893ccfSSadaf Ebrahimi     VkPipelineExecutablePropertiesKHR*          pProperties);
1190*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPipelineExecutableStatisticsKHR(
1191*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1192*b7893ccfSSadaf Ebrahimi     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
1193*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pStatisticCount,
1194*b7893ccfSSadaf Ebrahimi     VkPipelineExecutableStatisticKHR*           pStatistics);
1195*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPipelineExecutableInternalRepresentationsKHR(
1196*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1197*b7893ccfSSadaf Ebrahimi     const VkPipelineExecutableInfoKHR*          pExecutableInfo,
1198*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pInternalRepresentationCount,
1199*b7893ccfSSadaf Ebrahimi     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
1200*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateDebugReportCallbackEXT(
1201*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1202*b7893ccfSSadaf Ebrahimi     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
1203*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1204*b7893ccfSSadaf Ebrahimi     VkDebugReportCallbackEXT*                   pCallback);
1205*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyDebugReportCallbackEXT(
1206*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1207*b7893ccfSSadaf Ebrahimi     VkDebugReportCallbackEXT                    callback,
1208*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
1209*b7893ccfSSadaf Ebrahimi bool PreCallValidateDebugReportMessageEXT(
1210*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1211*b7893ccfSSadaf Ebrahimi     VkDebugReportFlagsEXT                       flags,
1212*b7893ccfSSadaf Ebrahimi     VkDebugReportObjectTypeEXT                  objectType,
1213*b7893ccfSSadaf Ebrahimi     uint64_t                                    object,
1214*b7893ccfSSadaf Ebrahimi     size_t                                      location,
1215*b7893ccfSSadaf Ebrahimi     int32_t                                     messageCode,
1216*b7893ccfSSadaf Ebrahimi     const char*                                 pLayerPrefix,
1217*b7893ccfSSadaf Ebrahimi     const char*                                 pMessage);
1218*b7893ccfSSadaf Ebrahimi bool PreCallValidateDebugMarkerSetObjectTagEXT(
1219*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1220*b7893ccfSSadaf Ebrahimi     const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
1221*b7893ccfSSadaf Ebrahimi bool PreCallValidateDebugMarkerSetObjectNameEXT(
1222*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1223*b7893ccfSSadaf Ebrahimi     const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
1224*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDebugMarkerBeginEXT(
1225*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1226*b7893ccfSSadaf Ebrahimi     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
1227*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDebugMarkerEndEXT(
1228*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer);
1229*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDebugMarkerInsertEXT(
1230*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1231*b7893ccfSSadaf Ebrahimi     const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo);
1232*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBindTransformFeedbackBuffersEXT(
1233*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1234*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstBinding,
1235*b7893ccfSSadaf Ebrahimi     uint32_t                                    bindingCount,
1236*b7893ccfSSadaf Ebrahimi     const VkBuffer*                             pBuffers,
1237*b7893ccfSSadaf Ebrahimi     const VkDeviceSize*                         pOffsets,
1238*b7893ccfSSadaf Ebrahimi     const VkDeviceSize*                         pSizes);
1239*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBeginTransformFeedbackEXT(
1240*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1241*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstCounterBuffer,
1242*b7893ccfSSadaf Ebrahimi     uint32_t                                    counterBufferCount,
1243*b7893ccfSSadaf Ebrahimi     const VkBuffer*                             pCounterBuffers,
1244*b7893ccfSSadaf Ebrahimi     const VkDeviceSize*                         pCounterBufferOffsets);
1245*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdEndTransformFeedbackEXT(
1246*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1247*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstCounterBuffer,
1248*b7893ccfSSadaf Ebrahimi     uint32_t                                    counterBufferCount,
1249*b7893ccfSSadaf Ebrahimi     const VkBuffer*                             pCounterBuffers,
1250*b7893ccfSSadaf Ebrahimi     const VkDeviceSize*                         pCounterBufferOffsets);
1251*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBeginQueryIndexedEXT(
1252*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1253*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
1254*b7893ccfSSadaf Ebrahimi     uint32_t                                    query,
1255*b7893ccfSSadaf Ebrahimi     VkQueryControlFlags                         flags,
1256*b7893ccfSSadaf Ebrahimi     uint32_t                                    index);
1257*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdEndQueryIndexedEXT(
1258*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1259*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
1260*b7893ccfSSadaf Ebrahimi     uint32_t                                    query,
1261*b7893ccfSSadaf Ebrahimi     uint32_t                                    index);
1262*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawIndirectByteCountEXT(
1263*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1264*b7893ccfSSadaf Ebrahimi     uint32_t                                    instanceCount,
1265*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstInstance,
1266*b7893ccfSSadaf Ebrahimi     VkBuffer                                    counterBuffer,
1267*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                counterBufferOffset,
1268*b7893ccfSSadaf Ebrahimi     uint32_t                                    counterOffset,
1269*b7893ccfSSadaf Ebrahimi     uint32_t                                    vertexStride);
1270*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetImageViewHandleNVX(
1271*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1272*b7893ccfSSadaf Ebrahimi     const VkImageViewHandleInfoNVX*             pInfo);
1273*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawIndirectCountAMD(
1274*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1275*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
1276*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset,
1277*b7893ccfSSadaf Ebrahimi     VkBuffer                                    countBuffer,
1278*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                countBufferOffset,
1279*b7893ccfSSadaf Ebrahimi     uint32_t                                    maxDrawCount,
1280*b7893ccfSSadaf Ebrahimi     uint32_t                                    stride);
1281*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawIndexedIndirectCountAMD(
1282*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1283*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
1284*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset,
1285*b7893ccfSSadaf Ebrahimi     VkBuffer                                    countBuffer,
1286*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                countBufferOffset,
1287*b7893ccfSSadaf Ebrahimi     uint32_t                                    maxDrawCount,
1288*b7893ccfSSadaf Ebrahimi     uint32_t                                    stride);
1289*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetShaderInfoAMD(
1290*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1291*b7893ccfSSadaf Ebrahimi     VkPipeline                                  pipeline,
1292*b7893ccfSSadaf Ebrahimi     VkShaderStageFlagBits                       shaderStage,
1293*b7893ccfSSadaf Ebrahimi     VkShaderInfoTypeAMD                         infoType,
1294*b7893ccfSSadaf Ebrahimi     size_t*                                     pInfoSize,
1295*b7893ccfSSadaf Ebrahimi     void*                                       pInfo);
1296*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_GGP
1297*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateStreamDescriptorSurfaceGGP(
1298*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1299*b7893ccfSSadaf Ebrahimi     const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo,
1300*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1301*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
1302*b7893ccfSSadaf Ebrahimi #endif
1303*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceExternalImageFormatPropertiesNV(
1304*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1305*b7893ccfSSadaf Ebrahimi     VkFormat                                    format,
1306*b7893ccfSSadaf Ebrahimi     VkImageType                                 type,
1307*b7893ccfSSadaf Ebrahimi     VkImageTiling                               tiling,
1308*b7893ccfSSadaf Ebrahimi     VkImageUsageFlags                           usage,
1309*b7893ccfSSadaf Ebrahimi     VkImageCreateFlags                          flags,
1310*b7893ccfSSadaf Ebrahimi     VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
1311*b7893ccfSSadaf Ebrahimi     VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
1312*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
1313*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetMemoryWin32HandleNV(
1314*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1315*b7893ccfSSadaf Ebrahimi     VkDeviceMemory                              memory,
1316*b7893ccfSSadaf Ebrahimi     VkExternalMemoryHandleTypeFlagsNV           handleType,
1317*b7893ccfSSadaf Ebrahimi     HANDLE*                                     pHandle);
1318*b7893ccfSSadaf Ebrahimi #endif
1319*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_VI_NN
1320*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateViSurfaceNN(
1321*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1322*b7893ccfSSadaf Ebrahimi     const VkViSurfaceCreateInfoNN*              pCreateInfo,
1323*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1324*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
1325*b7893ccfSSadaf Ebrahimi #endif
1326*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBeginConditionalRenderingEXT(
1327*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1328*b7893ccfSSadaf Ebrahimi     const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin);
1329*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdEndConditionalRenderingEXT(
1330*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer);
1331*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdProcessCommandsNVX(
1332*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1333*b7893ccfSSadaf Ebrahimi     const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo);
1334*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdReserveSpaceForCommandsNVX(
1335*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1336*b7893ccfSSadaf Ebrahimi     const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo);
1337*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateIndirectCommandsLayoutNVX(
1338*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1339*b7893ccfSSadaf Ebrahimi     const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
1340*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1341*b7893ccfSSadaf Ebrahimi     VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout);
1342*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyIndirectCommandsLayoutNVX(
1343*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1344*b7893ccfSSadaf Ebrahimi     VkIndirectCommandsLayoutNVX                 indirectCommandsLayout,
1345*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
1346*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateObjectTableNVX(
1347*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1348*b7893ccfSSadaf Ebrahimi     const VkObjectTableCreateInfoNVX*           pCreateInfo,
1349*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1350*b7893ccfSSadaf Ebrahimi     VkObjectTableNVX*                           pObjectTable);
1351*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyObjectTableNVX(
1352*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1353*b7893ccfSSadaf Ebrahimi     VkObjectTableNVX                            objectTable,
1354*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
1355*b7893ccfSSadaf Ebrahimi bool PreCallValidateRegisterObjectsNVX(
1356*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1357*b7893ccfSSadaf Ebrahimi     VkObjectTableNVX                            objectTable,
1358*b7893ccfSSadaf Ebrahimi     uint32_t                                    objectCount,
1359*b7893ccfSSadaf Ebrahimi     const VkObjectTableEntryNVX* const*         ppObjectTableEntries,
1360*b7893ccfSSadaf Ebrahimi     const uint32_t*                             pObjectIndices);
1361*b7893ccfSSadaf Ebrahimi bool PreCallValidateUnregisterObjectsNVX(
1362*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1363*b7893ccfSSadaf Ebrahimi     VkObjectTableNVX                            objectTable,
1364*b7893ccfSSadaf Ebrahimi     uint32_t                                    objectCount,
1365*b7893ccfSSadaf Ebrahimi     const VkObjectEntryTypeNVX*                 pObjectEntryTypes,
1366*b7893ccfSSadaf Ebrahimi     const uint32_t*                             pObjectIndices);
1367*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
1368*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1369*b7893ccfSSadaf Ebrahimi     VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures,
1370*b7893ccfSSadaf Ebrahimi     VkDeviceGeneratedCommandsLimitsNVX*         pLimits);
1371*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetViewportWScalingNV(
1372*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1373*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstViewport,
1374*b7893ccfSSadaf Ebrahimi     uint32_t                                    viewportCount,
1375*b7893ccfSSadaf Ebrahimi     const VkViewportWScalingNV*                 pViewportWScalings);
1376*b7893ccfSSadaf Ebrahimi bool PreCallValidateReleaseDisplayEXT(
1377*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1378*b7893ccfSSadaf Ebrahimi     VkDisplayKHR                                display);
1379*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
1380*b7893ccfSSadaf Ebrahimi bool PreCallValidateAcquireXlibDisplayEXT(
1381*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1382*b7893ccfSSadaf Ebrahimi     Display*                                    dpy,
1383*b7893ccfSSadaf Ebrahimi     VkDisplayKHR                                display);
1384*b7893ccfSSadaf Ebrahimi #endif
1385*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
1386*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetRandROutputDisplayEXT(
1387*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1388*b7893ccfSSadaf Ebrahimi     Display*                                    dpy,
1389*b7893ccfSSadaf Ebrahimi     RROutput                                    rrOutput,
1390*b7893ccfSSadaf Ebrahimi     VkDisplayKHR*                               pDisplay);
1391*b7893ccfSSadaf Ebrahimi #endif
1392*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSurfaceCapabilities2EXT(
1393*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1394*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR                                surface,
1395*b7893ccfSSadaf Ebrahimi     VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities);
1396*b7893ccfSSadaf Ebrahimi bool PreCallValidateDisplayPowerControlEXT(
1397*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1398*b7893ccfSSadaf Ebrahimi     VkDisplayKHR                                display,
1399*b7893ccfSSadaf Ebrahimi     const VkDisplayPowerInfoEXT*                pDisplayPowerInfo);
1400*b7893ccfSSadaf Ebrahimi bool PreCallValidateRegisterDeviceEventEXT(
1401*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1402*b7893ccfSSadaf Ebrahimi     const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
1403*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1404*b7893ccfSSadaf Ebrahimi     VkFence*                                    pFence);
1405*b7893ccfSSadaf Ebrahimi bool PreCallValidateRegisterDisplayEventEXT(
1406*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1407*b7893ccfSSadaf Ebrahimi     VkDisplayKHR                                display,
1408*b7893ccfSSadaf Ebrahimi     const VkDisplayEventInfoEXT*                pDisplayEventInfo,
1409*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1410*b7893ccfSSadaf Ebrahimi     VkFence*                                    pFence);
1411*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetSwapchainCounterEXT(
1412*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1413*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR                              swapchain,
1414*b7893ccfSSadaf Ebrahimi     VkSurfaceCounterFlagBitsEXT                 counter,
1415*b7893ccfSSadaf Ebrahimi     uint64_t*                                   pCounterValue);
1416*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetRefreshCycleDurationGOOGLE(
1417*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1418*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR                              swapchain,
1419*b7893ccfSSadaf Ebrahimi     VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties);
1420*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPastPresentationTimingGOOGLE(
1421*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1422*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR                              swapchain,
1423*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPresentationTimingCount,
1424*b7893ccfSSadaf Ebrahimi     VkPastPresentationTimingGOOGLE*             pPresentationTimings);
1425*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetDiscardRectangleEXT(
1426*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1427*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstDiscardRectangle,
1428*b7893ccfSSadaf Ebrahimi     uint32_t                                    discardRectangleCount,
1429*b7893ccfSSadaf Ebrahimi     const VkRect2D*                             pDiscardRectangles);
1430*b7893ccfSSadaf Ebrahimi bool PreCallValidateSetHdrMetadataEXT(
1431*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1432*b7893ccfSSadaf Ebrahimi     uint32_t                                    swapchainCount,
1433*b7893ccfSSadaf Ebrahimi     const VkSwapchainKHR*                       pSwapchains,
1434*b7893ccfSSadaf Ebrahimi     const VkHdrMetadataEXT*                     pMetadata);
1435*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_IOS_MVK
1436*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateIOSSurfaceMVK(
1437*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1438*b7893ccfSSadaf Ebrahimi     const VkIOSSurfaceCreateInfoMVK*            pCreateInfo,
1439*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1440*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
1441*b7893ccfSSadaf Ebrahimi #endif
1442*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_MACOS_MVK
1443*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateMacOSSurfaceMVK(
1444*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1445*b7893ccfSSadaf Ebrahimi     const VkMacOSSurfaceCreateInfoMVK*          pCreateInfo,
1446*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1447*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
1448*b7893ccfSSadaf Ebrahimi #endif
1449*b7893ccfSSadaf Ebrahimi bool PreCallValidateSetDebugUtilsObjectNameEXT(
1450*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1451*b7893ccfSSadaf Ebrahimi     const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
1452*b7893ccfSSadaf Ebrahimi bool PreCallValidateSetDebugUtilsObjectTagEXT(
1453*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1454*b7893ccfSSadaf Ebrahimi     const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
1455*b7893ccfSSadaf Ebrahimi bool PreCallValidateQueueBeginDebugUtilsLabelEXT(
1456*b7893ccfSSadaf Ebrahimi     VkQueue                                     queue,
1457*b7893ccfSSadaf Ebrahimi     const VkDebugUtilsLabelEXT*                 pLabelInfo);
1458*b7893ccfSSadaf Ebrahimi bool PreCallValidateQueueEndDebugUtilsLabelEXT(
1459*b7893ccfSSadaf Ebrahimi     VkQueue                                     queue);
1460*b7893ccfSSadaf Ebrahimi bool PreCallValidateQueueInsertDebugUtilsLabelEXT(
1461*b7893ccfSSadaf Ebrahimi     VkQueue                                     queue,
1462*b7893ccfSSadaf Ebrahimi     const VkDebugUtilsLabelEXT*                 pLabelInfo);
1463*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBeginDebugUtilsLabelEXT(
1464*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1465*b7893ccfSSadaf Ebrahimi     const VkDebugUtilsLabelEXT*                 pLabelInfo);
1466*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdEndDebugUtilsLabelEXT(
1467*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer);
1468*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdInsertDebugUtilsLabelEXT(
1469*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1470*b7893ccfSSadaf Ebrahimi     const VkDebugUtilsLabelEXT*                 pLabelInfo);
1471*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateDebugUtilsMessengerEXT(
1472*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1473*b7893ccfSSadaf Ebrahimi     const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo,
1474*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1475*b7893ccfSSadaf Ebrahimi     VkDebugUtilsMessengerEXT*                   pMessenger);
1476*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyDebugUtilsMessengerEXT(
1477*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1478*b7893ccfSSadaf Ebrahimi     VkDebugUtilsMessengerEXT                    messenger,
1479*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
1480*b7893ccfSSadaf Ebrahimi bool PreCallValidateSubmitDebugUtilsMessageEXT(
1481*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1482*b7893ccfSSadaf Ebrahimi     VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity,
1483*b7893ccfSSadaf Ebrahimi     VkDebugUtilsMessageTypeFlagsEXT             messageTypes,
1484*b7893ccfSSadaf Ebrahimi     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
1485*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_ANDROID_KHR
1486*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetAndroidHardwareBufferPropertiesANDROID(
1487*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1488*b7893ccfSSadaf Ebrahimi     const struct AHardwareBuffer*               buffer,
1489*b7893ccfSSadaf Ebrahimi     VkAndroidHardwareBufferPropertiesANDROID*   pProperties);
1490*b7893ccfSSadaf Ebrahimi #endif
1491*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_ANDROID_KHR
1492*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetMemoryAndroidHardwareBufferANDROID(
1493*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1494*b7893ccfSSadaf Ebrahimi     const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
1495*b7893ccfSSadaf Ebrahimi     struct AHardwareBuffer**                    pBuffer);
1496*b7893ccfSSadaf Ebrahimi #endif
1497*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetSampleLocationsEXT(
1498*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1499*b7893ccfSSadaf Ebrahimi     const VkSampleLocationsInfoEXT*             pSampleLocationsInfo);
1500*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceMultisamplePropertiesEXT(
1501*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1502*b7893ccfSSadaf Ebrahimi     VkSampleCountFlagBits                       samples,
1503*b7893ccfSSadaf Ebrahimi     VkMultisamplePropertiesEXT*                 pMultisampleProperties);
1504*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetImageDrmFormatModifierPropertiesEXT(
1505*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1506*b7893ccfSSadaf Ebrahimi     VkImage                                     image,
1507*b7893ccfSSadaf Ebrahimi     VkImageDrmFormatModifierPropertiesEXT*      pProperties);
1508*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateValidationCacheEXT(
1509*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1510*b7893ccfSSadaf Ebrahimi     const VkValidationCacheCreateInfoEXT*       pCreateInfo,
1511*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1512*b7893ccfSSadaf Ebrahimi     VkValidationCacheEXT*                       pValidationCache);
1513*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyValidationCacheEXT(
1514*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1515*b7893ccfSSadaf Ebrahimi     VkValidationCacheEXT                        validationCache,
1516*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
1517*b7893ccfSSadaf Ebrahimi bool PreCallValidateMergeValidationCachesEXT(
1518*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1519*b7893ccfSSadaf Ebrahimi     VkValidationCacheEXT                        dstCache,
1520*b7893ccfSSadaf Ebrahimi     uint32_t                                    srcCacheCount,
1521*b7893ccfSSadaf Ebrahimi     const VkValidationCacheEXT*                 pSrcCaches);
1522*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetValidationCacheDataEXT(
1523*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1524*b7893ccfSSadaf Ebrahimi     VkValidationCacheEXT                        validationCache,
1525*b7893ccfSSadaf Ebrahimi     size_t*                                     pDataSize,
1526*b7893ccfSSadaf Ebrahimi     void*                                       pData);
1527*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBindShadingRateImageNV(
1528*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1529*b7893ccfSSadaf Ebrahimi     VkImageView                                 imageView,
1530*b7893ccfSSadaf Ebrahimi     VkImageLayout                               imageLayout);
1531*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetViewportShadingRatePaletteNV(
1532*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1533*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstViewport,
1534*b7893ccfSSadaf Ebrahimi     uint32_t                                    viewportCount,
1535*b7893ccfSSadaf Ebrahimi     const VkShadingRatePaletteNV*               pShadingRatePalettes);
1536*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetCoarseSampleOrderNV(
1537*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1538*b7893ccfSSadaf Ebrahimi     VkCoarseSampleOrderTypeNV                   sampleOrderType,
1539*b7893ccfSSadaf Ebrahimi     uint32_t                                    customSampleOrderCount,
1540*b7893ccfSSadaf Ebrahimi     const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders);
1541*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateAccelerationStructureNV(
1542*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1543*b7893ccfSSadaf Ebrahimi     const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
1544*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1545*b7893ccfSSadaf Ebrahimi     VkAccelerationStructureNV*                  pAccelerationStructure);
1546*b7893ccfSSadaf Ebrahimi bool PreCallValidateDestroyAccelerationStructureNV(
1547*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1548*b7893ccfSSadaf Ebrahimi     VkAccelerationStructureNV                   accelerationStructure,
1549*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator);
1550*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetAccelerationStructureMemoryRequirementsNV(
1551*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1552*b7893ccfSSadaf Ebrahimi     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
1553*b7893ccfSSadaf Ebrahimi     VkMemoryRequirements2KHR*                   pMemoryRequirements);
1554*b7893ccfSSadaf Ebrahimi bool PreCallValidateBindAccelerationStructureMemoryNV(
1555*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1556*b7893ccfSSadaf Ebrahimi     uint32_t                                    bindInfoCount,
1557*b7893ccfSSadaf Ebrahimi     const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
1558*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdBuildAccelerationStructureNV(
1559*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1560*b7893ccfSSadaf Ebrahimi     const VkAccelerationStructureInfoNV*        pInfo,
1561*b7893ccfSSadaf Ebrahimi     VkBuffer                                    instanceData,
1562*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                instanceOffset,
1563*b7893ccfSSadaf Ebrahimi     VkBool32                                    update,
1564*b7893ccfSSadaf Ebrahimi     VkAccelerationStructureNV                   dst,
1565*b7893ccfSSadaf Ebrahimi     VkAccelerationStructureNV                   src,
1566*b7893ccfSSadaf Ebrahimi     VkBuffer                                    scratch,
1567*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                scratchOffset);
1568*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdCopyAccelerationStructureNV(
1569*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1570*b7893ccfSSadaf Ebrahimi     VkAccelerationStructureNV                   dst,
1571*b7893ccfSSadaf Ebrahimi     VkAccelerationStructureNV                   src,
1572*b7893ccfSSadaf Ebrahimi     VkCopyAccelerationStructureModeNV           mode);
1573*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdTraceRaysNV(
1574*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1575*b7893ccfSSadaf Ebrahimi     VkBuffer                                    raygenShaderBindingTableBuffer,
1576*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                raygenShaderBindingOffset,
1577*b7893ccfSSadaf Ebrahimi     VkBuffer                                    missShaderBindingTableBuffer,
1578*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                missShaderBindingOffset,
1579*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                missShaderBindingStride,
1580*b7893ccfSSadaf Ebrahimi     VkBuffer                                    hitShaderBindingTableBuffer,
1581*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                hitShaderBindingOffset,
1582*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                hitShaderBindingStride,
1583*b7893ccfSSadaf Ebrahimi     VkBuffer                                    callableShaderBindingTableBuffer,
1584*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                callableShaderBindingOffset,
1585*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                callableShaderBindingStride,
1586*b7893ccfSSadaf Ebrahimi     uint32_t                                    width,
1587*b7893ccfSSadaf Ebrahimi     uint32_t                                    height,
1588*b7893ccfSSadaf Ebrahimi     uint32_t                                    depth);
1589*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateRayTracingPipelinesNV(
1590*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1591*b7893ccfSSadaf Ebrahimi     VkPipelineCache                             pipelineCache,
1592*b7893ccfSSadaf Ebrahimi     uint32_t                                    createInfoCount,
1593*b7893ccfSSadaf Ebrahimi     const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
1594*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1595*b7893ccfSSadaf Ebrahimi     VkPipeline*                                 pPipelines);
1596*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetRayTracingShaderGroupHandlesNV(
1597*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1598*b7893ccfSSadaf Ebrahimi     VkPipeline                                  pipeline,
1599*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstGroup,
1600*b7893ccfSSadaf Ebrahimi     uint32_t                                    groupCount,
1601*b7893ccfSSadaf Ebrahimi     size_t                                      dataSize,
1602*b7893ccfSSadaf Ebrahimi     void*                                       pData);
1603*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetAccelerationStructureHandleNV(
1604*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1605*b7893ccfSSadaf Ebrahimi     VkAccelerationStructureNV                   accelerationStructure,
1606*b7893ccfSSadaf Ebrahimi     size_t                                      dataSize,
1607*b7893ccfSSadaf Ebrahimi     void*                                       pData);
1608*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdWriteAccelerationStructuresPropertiesNV(
1609*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1610*b7893ccfSSadaf Ebrahimi     uint32_t                                    accelerationStructureCount,
1611*b7893ccfSSadaf Ebrahimi     const VkAccelerationStructureNV*            pAccelerationStructures,
1612*b7893ccfSSadaf Ebrahimi     VkQueryType                                 queryType,
1613*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
1614*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstQuery);
1615*b7893ccfSSadaf Ebrahimi bool PreCallValidateCompileDeferredNV(
1616*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1617*b7893ccfSSadaf Ebrahimi     VkPipeline                                  pipeline,
1618*b7893ccfSSadaf Ebrahimi     uint32_t                                    shader);
1619*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetMemoryHostPointerPropertiesEXT(
1620*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1621*b7893ccfSSadaf Ebrahimi     VkExternalMemoryHandleTypeFlagBits          handleType,
1622*b7893ccfSSadaf Ebrahimi     const void*                                 pHostPointer,
1623*b7893ccfSSadaf Ebrahimi     VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties);
1624*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdWriteBufferMarkerAMD(
1625*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1626*b7893ccfSSadaf Ebrahimi     VkPipelineStageFlagBits                     pipelineStage,
1627*b7893ccfSSadaf Ebrahimi     VkBuffer                                    dstBuffer,
1628*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                dstOffset,
1629*b7893ccfSSadaf Ebrahimi     uint32_t                                    marker);
1630*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsEXT(
1631*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1632*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pTimeDomainCount,
1633*b7893ccfSSadaf Ebrahimi     VkTimeDomainEXT*                            pTimeDomains);
1634*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetCalibratedTimestampsEXT(
1635*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1636*b7893ccfSSadaf Ebrahimi     uint32_t                                    timestampCount,
1637*b7893ccfSSadaf Ebrahimi     const VkCalibratedTimestampInfoEXT*         pTimestampInfos,
1638*b7893ccfSSadaf Ebrahimi     uint64_t*                                   pTimestamps,
1639*b7893ccfSSadaf Ebrahimi     uint64_t*                                   pMaxDeviation);
1640*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawMeshTasksNV(
1641*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1642*b7893ccfSSadaf Ebrahimi     uint32_t                                    taskCount,
1643*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstTask);
1644*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawMeshTasksIndirectNV(
1645*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1646*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
1647*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset,
1648*b7893ccfSSadaf Ebrahimi     uint32_t                                    drawCount,
1649*b7893ccfSSadaf Ebrahimi     uint32_t                                    stride);
1650*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdDrawMeshTasksIndirectCountNV(
1651*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1652*b7893ccfSSadaf Ebrahimi     VkBuffer                                    buffer,
1653*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                offset,
1654*b7893ccfSSadaf Ebrahimi     VkBuffer                                    countBuffer,
1655*b7893ccfSSadaf Ebrahimi     VkDeviceSize                                countBufferOffset,
1656*b7893ccfSSadaf Ebrahimi     uint32_t                                    maxDrawCount,
1657*b7893ccfSSadaf Ebrahimi     uint32_t                                    stride);
1658*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetExclusiveScissorNV(
1659*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1660*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstExclusiveScissor,
1661*b7893ccfSSadaf Ebrahimi     uint32_t                                    exclusiveScissorCount,
1662*b7893ccfSSadaf Ebrahimi     const VkRect2D*                             pExclusiveScissors);
1663*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetCheckpointNV(
1664*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1665*b7893ccfSSadaf Ebrahimi     const void*                                 pCheckpointMarker);
1666*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetQueueCheckpointDataNV(
1667*b7893ccfSSadaf Ebrahimi     VkQueue                                     queue,
1668*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pCheckpointDataCount,
1669*b7893ccfSSadaf Ebrahimi     VkCheckpointDataNV*                         pCheckpointData);
1670*b7893ccfSSadaf Ebrahimi bool PreCallValidateInitializePerformanceApiINTEL(
1671*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1672*b7893ccfSSadaf Ebrahimi     const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo);
1673*b7893ccfSSadaf Ebrahimi bool PreCallValidateUninitializePerformanceApiINTEL(
1674*b7893ccfSSadaf Ebrahimi     VkDevice                                    device);
1675*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetPerformanceMarkerINTEL(
1676*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1677*b7893ccfSSadaf Ebrahimi     const VkPerformanceMarkerInfoINTEL*         pMarkerInfo);
1678*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetPerformanceStreamMarkerINTEL(
1679*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1680*b7893ccfSSadaf Ebrahimi     const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo);
1681*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetPerformanceOverrideINTEL(
1682*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1683*b7893ccfSSadaf Ebrahimi     const VkPerformanceOverrideInfoINTEL*       pOverrideInfo);
1684*b7893ccfSSadaf Ebrahimi bool PreCallValidateAcquirePerformanceConfigurationINTEL(
1685*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1686*b7893ccfSSadaf Ebrahimi     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
1687*b7893ccfSSadaf Ebrahimi     VkPerformanceConfigurationINTEL*            pConfiguration);
1688*b7893ccfSSadaf Ebrahimi bool PreCallValidateReleasePerformanceConfigurationINTEL(
1689*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1690*b7893ccfSSadaf Ebrahimi     VkPerformanceConfigurationINTEL             configuration);
1691*b7893ccfSSadaf Ebrahimi bool PreCallValidateQueueSetPerformanceConfigurationINTEL(
1692*b7893ccfSSadaf Ebrahimi     VkQueue                                     queue,
1693*b7893ccfSSadaf Ebrahimi     VkPerformanceConfigurationINTEL             configuration);
1694*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPerformanceParameterINTEL(
1695*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1696*b7893ccfSSadaf Ebrahimi     VkPerformanceParameterTypeINTEL             parameter,
1697*b7893ccfSSadaf Ebrahimi     VkPerformanceValueINTEL*                    pValue);
1698*b7893ccfSSadaf Ebrahimi bool PreCallValidateSetLocalDimmingAMD(
1699*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1700*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR                              swapChain,
1701*b7893ccfSSadaf Ebrahimi     VkBool32                                    localDimmingEnable);
1702*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_FUCHSIA
1703*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateImagePipeSurfaceFUCHSIA(
1704*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1705*b7893ccfSSadaf Ebrahimi     const VkImagePipeSurfaceCreateInfoFUCHSIA*  pCreateInfo,
1706*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1707*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
1708*b7893ccfSSadaf Ebrahimi #endif
1709*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_METAL_EXT
1710*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateMetalSurfaceEXT(
1711*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1712*b7893ccfSSadaf Ebrahimi     const VkMetalSurfaceCreateInfoEXT*          pCreateInfo,
1713*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1714*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
1715*b7893ccfSSadaf Ebrahimi #endif
1716*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetBufferDeviceAddressEXT(
1717*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1718*b7893ccfSSadaf Ebrahimi     const VkBufferDeviceAddressInfoEXT*         pInfo);
1719*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceCooperativeMatrixPropertiesNV(
1720*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1721*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPropertyCount,
1722*b7893ccfSSadaf Ebrahimi     VkCooperativeMatrixPropertiesNV*            pProperties);
1723*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
1724*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1725*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pCombinationCount,
1726*b7893ccfSSadaf Ebrahimi     VkFramebufferMixedSamplesCombinationNV*     pCombinations);
1727*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
1728*b7893ccfSSadaf Ebrahimi bool PreCallValidateGetPhysicalDeviceSurfacePresentModes2EXT(
1729*b7893ccfSSadaf Ebrahimi     VkPhysicalDevice                            physicalDevice,
1730*b7893ccfSSadaf Ebrahimi     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
1731*b7893ccfSSadaf Ebrahimi     uint32_t*                                   pPresentModeCount,
1732*b7893ccfSSadaf Ebrahimi     VkPresentModeKHR*                           pPresentModes);
1733*b7893ccfSSadaf Ebrahimi #endif
1734*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
1735*b7893ccfSSadaf Ebrahimi bool PreCallValidateAcquireFullScreenExclusiveModeEXT(
1736*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1737*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR                              swapchain);
1738*b7893ccfSSadaf Ebrahimi #endif
1739*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
1740*b7893ccfSSadaf Ebrahimi bool PreCallValidateReleaseFullScreenExclusiveModeEXT(
1741*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1742*b7893ccfSSadaf Ebrahimi     VkSwapchainKHR                              swapchain);
1743*b7893ccfSSadaf Ebrahimi #endif
1744*b7893ccfSSadaf Ebrahimi bool PreCallValidateCreateHeadlessSurfaceEXT(
1745*b7893ccfSSadaf Ebrahimi     VkInstance                                  instance,
1746*b7893ccfSSadaf Ebrahimi     const VkHeadlessSurfaceCreateInfoEXT*       pCreateInfo,
1747*b7893ccfSSadaf Ebrahimi     const VkAllocationCallbacks*                pAllocator,
1748*b7893ccfSSadaf Ebrahimi     VkSurfaceKHR*                               pSurface);
1749*b7893ccfSSadaf Ebrahimi bool PreCallValidateCmdSetLineStippleEXT(
1750*b7893ccfSSadaf Ebrahimi     VkCommandBuffer                             commandBuffer,
1751*b7893ccfSSadaf Ebrahimi     uint32_t                                    lineStippleFactor,
1752*b7893ccfSSadaf Ebrahimi     uint16_t                                    lineStipplePattern);
1753*b7893ccfSSadaf Ebrahimi bool PreCallValidateResetQueryPoolEXT(
1754*b7893ccfSSadaf Ebrahimi     VkDevice                                    device,
1755*b7893ccfSSadaf Ebrahimi     VkQueryPool                                 queryPool,
1756*b7893ccfSSadaf Ebrahimi     uint32_t                                    firstQuery,
1757*b7893ccfSSadaf Ebrahimi     uint32_t                                    queryCount);
1758