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