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 #include "chassis.h"
31*b7893ccfSSadaf Ebrahimi #include "object_lifetime_validation.h"
32*b7893ccfSSadaf Ebrahimi
33*b7893ccfSSadaf Ebrahimi
34*b7893ccfSSadaf Ebrahimi
35*b7893ccfSSadaf Ebrahimi // ObjectTracker undestroyed objects validation function
ReportUndestroyedObjects(VkDevice device,const std::string & error_code)36*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::ReportUndestroyedObjects(VkDevice device, const std::string& error_code) {
37*b7893ccfSSadaf Ebrahimi bool skip = false;
38*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeCommandBuffer, error_code);
39*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeSemaphore, error_code);
40*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeFence, error_code);
41*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDeviceMemory, error_code);
42*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeBuffer, error_code);
43*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeImage, error_code);
44*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeEvent, error_code);
45*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeQueryPool, error_code);
46*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeBufferView, error_code);
47*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeImageView, error_code);
48*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeShaderModule, error_code);
49*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypePipelineCache, error_code);
50*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypePipelineLayout, error_code);
51*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeRenderPass, error_code);
52*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypePipeline, error_code);
53*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDescriptorSetLayout, error_code);
54*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeSampler, error_code);
55*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDescriptorPool, error_code);
56*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDescriptorSet, error_code);
57*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeFramebuffer, error_code);
58*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeCommandPool, error_code);
59*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeSamplerYcbcrConversion, error_code);
60*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDescriptorUpdateTemplate, error_code);
61*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeSurfaceKHR, error_code);
62*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeSwapchainKHR, error_code);
63*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDisplayKHR, error_code);
64*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDisplayModeKHR, error_code);
65*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDebugReportCallbackEXT, error_code);
66*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeObjectTableNVX, error_code);
67*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeIndirectCommandsLayoutNVX, error_code);
68*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeDebugUtilsMessengerEXT, error_code);
69*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeValidationCacheEXT, error_code);
70*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypeAccelerationStructureNV, error_code);
71*b7893ccfSSadaf Ebrahimi skip |= DeviceReportUndestroyedObjects(device, kVulkanObjectTypePerformanceConfigurationINTEL, error_code);
72*b7893ccfSSadaf Ebrahimi return skip;
73*b7893ccfSSadaf Ebrahimi }
74*b7893ccfSSadaf Ebrahimi
DestroyUndestroyedObjects(VkDevice device)75*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::DestroyUndestroyedObjects(VkDevice device) {
76*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeCommandBuffer);
77*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeSemaphore);
78*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeFence);
79*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeDeviceMemory);
80*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeBuffer);
81*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeImage);
82*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeEvent);
83*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeQueryPool);
84*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeBufferView);
85*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeImageView);
86*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeShaderModule);
87*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypePipelineCache);
88*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypePipelineLayout);
89*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeRenderPass);
90*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypePipeline);
91*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeDescriptorSetLayout);
92*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeSampler);
93*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeDescriptorPool);
94*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeDescriptorSet);
95*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeFramebuffer);
96*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeCommandPool);
97*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeSamplerYcbcrConversion);
98*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeDescriptorUpdateTemplate);
99*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeSurfaceKHR);
100*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeSwapchainKHR);
101*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeDisplayKHR);
102*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeDisplayModeKHR);
103*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeDebugReportCallbackEXT);
104*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeObjectTableNVX);
105*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeIndirectCommandsLayoutNVX);
106*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeDebugUtilsMessengerEXT);
107*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeValidationCacheEXT);
108*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypeAccelerationStructureNV);
109*b7893ccfSSadaf Ebrahimi DeviceDestroyUndestroyedObjects(device, kVulkanObjectTypePerformanceConfigurationINTEL);
110*b7893ccfSSadaf Ebrahimi }
111*b7893ccfSSadaf Ebrahimi
112*b7893ccfSSadaf Ebrahimi
113*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures)114*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceFeatures(
115*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
116*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceFeatures* pFeatures) {
117*b7893ccfSSadaf Ebrahimi bool skip = false;
118*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter", kVUIDUndefined);
119*b7893ccfSSadaf Ebrahimi
120*b7893ccfSSadaf Ebrahimi return skip;
121*b7893ccfSSadaf Ebrahimi }
122*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties)123*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceFormatProperties(
124*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
125*b7893ccfSSadaf Ebrahimi VkFormat format,
126*b7893ccfSSadaf Ebrahimi VkFormatProperties* pFormatProperties) {
127*b7893ccfSSadaf Ebrahimi bool skip = false;
128*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter", kVUIDUndefined);
129*b7893ccfSSadaf Ebrahimi
130*b7893ccfSSadaf Ebrahimi return skip;
131*b7893ccfSSadaf Ebrahimi }
132*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties)133*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceImageFormatProperties(
134*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
135*b7893ccfSSadaf Ebrahimi VkFormat format,
136*b7893ccfSSadaf Ebrahimi VkImageType type,
137*b7893ccfSSadaf Ebrahimi VkImageTiling tiling,
138*b7893ccfSSadaf Ebrahimi VkImageUsageFlags usage,
139*b7893ccfSSadaf Ebrahimi VkImageCreateFlags flags,
140*b7893ccfSSadaf Ebrahimi VkImageFormatProperties* pImageFormatProperties) {
141*b7893ccfSSadaf Ebrahimi bool skip = false;
142*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameter", kVUIDUndefined);
143*b7893ccfSSadaf Ebrahimi
144*b7893ccfSSadaf Ebrahimi return skip;
145*b7893ccfSSadaf Ebrahimi }
146*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties)147*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceProperties(
148*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
149*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceProperties* pProperties) {
150*b7893ccfSSadaf Ebrahimi bool skip = false;
151*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter", kVUIDUndefined);
152*b7893ccfSSadaf Ebrahimi
153*b7893ccfSSadaf Ebrahimi return skip;
154*b7893ccfSSadaf Ebrahimi }
155*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties)156*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceMemoryProperties(
157*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
158*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
159*b7893ccfSSadaf Ebrahimi bool skip = false;
160*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter", kVUIDUndefined);
161*b7893ccfSSadaf Ebrahimi
162*b7893ccfSSadaf Ebrahimi return skip;
163*b7893ccfSSadaf Ebrahimi }
164*b7893ccfSSadaf Ebrahimi
PreCallValidateGetInstanceProcAddr(VkInstance instance,const char * pName)165*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetInstanceProcAddr(
166*b7893ccfSSadaf Ebrahimi VkInstance instance,
167*b7893ccfSSadaf Ebrahimi const char* pName) {
168*b7893ccfSSadaf Ebrahimi bool skip = false;
169*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, true, "VUID-vkGetInstanceProcAddr-instance-parameter", kVUIDUndefined);
170*b7893ccfSSadaf Ebrahimi
171*b7893ccfSSadaf Ebrahimi return skip;
172*b7893ccfSSadaf Ebrahimi }
173*b7893ccfSSadaf Ebrahimi
PreCallValidateGetDeviceProcAddr(VkDevice device,const char * pName)174*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetDeviceProcAddr(
175*b7893ccfSSadaf Ebrahimi VkDevice device,
176*b7893ccfSSadaf Ebrahimi const char* pName) {
177*b7893ccfSSadaf Ebrahimi bool skip = false;
178*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetDeviceProcAddr-device-parameter", kVUIDUndefined);
179*b7893ccfSSadaf Ebrahimi
180*b7893ccfSSadaf Ebrahimi return skip;
181*b7893ccfSSadaf Ebrahimi }
182*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice)183*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateDevice(
184*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
185*b7893ccfSSadaf Ebrahimi const VkDeviceCreateInfo* pCreateInfo,
186*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
187*b7893ccfSSadaf Ebrahimi VkDevice* pDevice) {
188*b7893ccfSSadaf Ebrahimi bool skip = false;
189*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkCreateDevice-physicalDevice-parameter", kVUIDUndefined);
190*b7893ccfSSadaf Ebrahimi
191*b7893ccfSSadaf Ebrahimi return skip;
192*b7893ccfSSadaf Ebrahimi }
193*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice,VkResult result)194*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateDevice(
195*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
196*b7893ccfSSadaf Ebrahimi const VkDeviceCreateInfo* pCreateInfo,
197*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
198*b7893ccfSSadaf Ebrahimi VkDevice* pDevice,
199*b7893ccfSSadaf Ebrahimi VkResult result) {
200*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
201*b7893ccfSSadaf Ebrahimi CreateObject(physicalDevice, *pDevice, kVulkanObjectTypeDevice, pAllocator);
202*b7893ccfSSadaf Ebrahimi
203*b7893ccfSSadaf Ebrahimi }
204*b7893ccfSSadaf Ebrahimi
PreCallValidateEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)205*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateEnumerateDeviceExtensionProperties(
206*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
207*b7893ccfSSadaf Ebrahimi const char* pLayerName,
208*b7893ccfSSadaf Ebrahimi uint32_t* pPropertyCount,
209*b7893ccfSSadaf Ebrahimi VkExtensionProperties* pProperties) {
210*b7893ccfSSadaf Ebrahimi bool skip = false;
211*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameter", kVUIDUndefined);
212*b7893ccfSSadaf Ebrahimi
213*b7893ccfSSadaf Ebrahimi return skip;
214*b7893ccfSSadaf Ebrahimi }
215*b7893ccfSSadaf Ebrahimi
PreCallValidateEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties)216*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateEnumerateDeviceLayerProperties(
217*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
218*b7893ccfSSadaf Ebrahimi uint32_t* pPropertyCount,
219*b7893ccfSSadaf Ebrahimi VkLayerProperties* pProperties) {
220*b7893ccfSSadaf Ebrahimi bool skip = false;
221*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameter", kVUIDUndefined);
222*b7893ccfSSadaf Ebrahimi
223*b7893ccfSSadaf Ebrahimi return skip;
224*b7893ccfSSadaf Ebrahimi }
225*b7893ccfSSadaf Ebrahimi
PreCallValidateQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)226*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateQueueSubmit(
227*b7893ccfSSadaf Ebrahimi VkQueue queue,
228*b7893ccfSSadaf Ebrahimi uint32_t submitCount,
229*b7893ccfSSadaf Ebrahimi const VkSubmitInfo* pSubmits,
230*b7893ccfSSadaf Ebrahimi VkFence fence) {
231*b7893ccfSSadaf Ebrahimi bool skip = false;
232*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, "VUID-vkQueueSubmit-queue-parameter", "VUID-vkQueueSubmit-commonparent");
233*b7893ccfSSadaf Ebrahimi if (pSubmits) {
234*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < submitCount; ++index0) {
235*b7893ccfSSadaf Ebrahimi if (pSubmits[index0].pWaitSemaphores) {
236*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pSubmits[index0].waitSemaphoreCount; ++index1) {
237*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pSubmits[index0].pWaitSemaphores[index1], kVulkanObjectTypeSemaphore, false, "VUID-VkSubmitInfo-pWaitSemaphores-parameter", "VUID-VkSubmitInfo-commonparent");
238*b7893ccfSSadaf Ebrahimi }
239*b7893ccfSSadaf Ebrahimi }
240*b7893ccfSSadaf Ebrahimi if (pSubmits[index0].pCommandBuffers) {
241*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pSubmits[index0].commandBufferCount; ++index1) {
242*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pSubmits[index0].pCommandBuffers[index1], kVulkanObjectTypeCommandBuffer, false, "VUID-VkSubmitInfo-pCommandBuffers-parameter", "VUID-VkSubmitInfo-commonparent");
243*b7893ccfSSadaf Ebrahimi }
244*b7893ccfSSadaf Ebrahimi }
245*b7893ccfSSadaf Ebrahimi if (pSubmits[index0].pSignalSemaphores) {
246*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pSubmits[index0].signalSemaphoreCount; ++index1) {
247*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pSubmits[index0].pSignalSemaphores[index1], kVulkanObjectTypeSemaphore, false, "VUID-VkSubmitInfo-pSignalSemaphores-parameter", "VUID-VkSubmitInfo-commonparent");
248*b7893ccfSSadaf Ebrahimi }
249*b7893ccfSSadaf Ebrahimi }
250*b7893ccfSSadaf Ebrahimi }
251*b7893ccfSSadaf Ebrahimi }
252*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, fence, kVulkanObjectTypeFence, true, "VUID-vkQueueSubmit-fence-parameter", "VUID-vkQueueSubmit-commonparent");
253*b7893ccfSSadaf Ebrahimi
254*b7893ccfSSadaf Ebrahimi return skip;
255*b7893ccfSSadaf Ebrahimi }
256*b7893ccfSSadaf Ebrahimi
PreCallValidateQueueWaitIdle(VkQueue queue)257*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateQueueWaitIdle(
258*b7893ccfSSadaf Ebrahimi VkQueue queue) {
259*b7893ccfSSadaf Ebrahimi bool skip = false;
260*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, "VUID-vkQueueWaitIdle-queue-parameter", kVUIDUndefined);
261*b7893ccfSSadaf Ebrahimi
262*b7893ccfSSadaf Ebrahimi return skip;
263*b7893ccfSSadaf Ebrahimi }
264*b7893ccfSSadaf Ebrahimi
PreCallValidateDeviceWaitIdle(VkDevice device)265*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDeviceWaitIdle(
266*b7893ccfSSadaf Ebrahimi VkDevice device) {
267*b7893ccfSSadaf Ebrahimi bool skip = false;
268*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDeviceWaitIdle-device-parameter", kVUIDUndefined);
269*b7893ccfSSadaf Ebrahimi
270*b7893ccfSSadaf Ebrahimi return skip;
271*b7893ccfSSadaf Ebrahimi }
272*b7893ccfSSadaf Ebrahimi
PreCallValidateAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory)273*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateAllocateMemory(
274*b7893ccfSSadaf Ebrahimi VkDevice device,
275*b7893ccfSSadaf Ebrahimi const VkMemoryAllocateInfo* pAllocateInfo,
276*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
277*b7893ccfSSadaf Ebrahimi VkDeviceMemory* pMemory) {
278*b7893ccfSSadaf Ebrahimi bool skip = false;
279*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkAllocateMemory-device-parameter", kVUIDUndefined);
280*b7893ccfSSadaf Ebrahimi
281*b7893ccfSSadaf Ebrahimi return skip;
282*b7893ccfSSadaf Ebrahimi }
283*b7893ccfSSadaf Ebrahimi
PostCallRecordAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory,VkResult result)284*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordAllocateMemory(
285*b7893ccfSSadaf Ebrahimi VkDevice device,
286*b7893ccfSSadaf Ebrahimi const VkMemoryAllocateInfo* pAllocateInfo,
287*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
288*b7893ccfSSadaf Ebrahimi VkDeviceMemory* pMemory,
289*b7893ccfSSadaf Ebrahimi VkResult result) {
290*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
291*b7893ccfSSadaf Ebrahimi CreateObject(device, *pMemory, kVulkanObjectTypeDeviceMemory, pAllocator);
292*b7893ccfSSadaf Ebrahimi
293*b7893ccfSSadaf Ebrahimi }
294*b7893ccfSSadaf Ebrahimi
PreCallValidateFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)295*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateFreeMemory(
296*b7893ccfSSadaf Ebrahimi VkDevice device,
297*b7893ccfSSadaf Ebrahimi VkDeviceMemory memory,
298*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
299*b7893ccfSSadaf Ebrahimi bool skip = false;
300*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkFreeMemory-device-parameter", kVUIDUndefined);
301*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, true, "VUID-vkFreeMemory-memory-parameter", "VUID-vkFreeMemory-memory-parent");
302*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, memory, kVulkanObjectTypeDeviceMemory, pAllocator, kVUIDUndefined, kVUIDUndefined);
303*b7893ccfSSadaf Ebrahimi
304*b7893ccfSSadaf Ebrahimi return skip;
305*b7893ccfSSadaf Ebrahimi }
306*b7893ccfSSadaf Ebrahimi
PreCallRecordFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)307*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordFreeMemory(
308*b7893ccfSSadaf Ebrahimi VkDevice device,
309*b7893ccfSSadaf Ebrahimi VkDeviceMemory memory,
310*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
311*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, memory, kVulkanObjectTypeDeviceMemory);
312*b7893ccfSSadaf Ebrahimi
313*b7893ccfSSadaf Ebrahimi }
314*b7893ccfSSadaf Ebrahimi
PreCallValidateMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData)315*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateMapMemory(
316*b7893ccfSSadaf Ebrahimi VkDevice device,
317*b7893ccfSSadaf Ebrahimi VkDeviceMemory memory,
318*b7893ccfSSadaf Ebrahimi VkDeviceSize offset,
319*b7893ccfSSadaf Ebrahimi VkDeviceSize size,
320*b7893ccfSSadaf Ebrahimi VkMemoryMapFlags flags,
321*b7893ccfSSadaf Ebrahimi void** ppData) {
322*b7893ccfSSadaf Ebrahimi bool skip = false;
323*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkMapMemory-device-parameter", kVUIDUndefined);
324*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, "VUID-vkMapMemory-memory-parameter", "VUID-vkMapMemory-memory-parent");
325*b7893ccfSSadaf Ebrahimi
326*b7893ccfSSadaf Ebrahimi return skip;
327*b7893ccfSSadaf Ebrahimi }
328*b7893ccfSSadaf Ebrahimi
PreCallValidateUnmapMemory(VkDevice device,VkDeviceMemory memory)329*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateUnmapMemory(
330*b7893ccfSSadaf Ebrahimi VkDevice device,
331*b7893ccfSSadaf Ebrahimi VkDeviceMemory memory) {
332*b7893ccfSSadaf Ebrahimi bool skip = false;
333*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkUnmapMemory-device-parameter", kVUIDUndefined);
334*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, "VUID-vkUnmapMemory-memory-parameter", "VUID-vkUnmapMemory-memory-parent");
335*b7893ccfSSadaf Ebrahimi
336*b7893ccfSSadaf Ebrahimi return skip;
337*b7893ccfSSadaf Ebrahimi }
338*b7893ccfSSadaf Ebrahimi
PreCallValidateFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)339*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateFlushMappedMemoryRanges(
340*b7893ccfSSadaf Ebrahimi VkDevice device,
341*b7893ccfSSadaf Ebrahimi uint32_t memoryRangeCount,
342*b7893ccfSSadaf Ebrahimi const VkMappedMemoryRange* pMemoryRanges) {
343*b7893ccfSSadaf Ebrahimi bool skip = false;
344*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkFlushMappedMemoryRanges-device-parameter", kVUIDUndefined);
345*b7893ccfSSadaf Ebrahimi if (pMemoryRanges) {
346*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < memoryRangeCount; ++index0) {
347*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pMemoryRanges[index0].memory, kVulkanObjectTypeDeviceMemory, false, "VUID-VkMappedMemoryRange-memory-parameter", kVUIDUndefined);
348*b7893ccfSSadaf Ebrahimi }
349*b7893ccfSSadaf Ebrahimi }
350*b7893ccfSSadaf Ebrahimi
351*b7893ccfSSadaf Ebrahimi return skip;
352*b7893ccfSSadaf Ebrahimi }
353*b7893ccfSSadaf Ebrahimi
PreCallValidateInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)354*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateInvalidateMappedMemoryRanges(
355*b7893ccfSSadaf Ebrahimi VkDevice device,
356*b7893ccfSSadaf Ebrahimi uint32_t memoryRangeCount,
357*b7893ccfSSadaf Ebrahimi const VkMappedMemoryRange* pMemoryRanges) {
358*b7893ccfSSadaf Ebrahimi bool skip = false;
359*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkInvalidateMappedMemoryRanges-device-parameter", kVUIDUndefined);
360*b7893ccfSSadaf Ebrahimi if (pMemoryRanges) {
361*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < memoryRangeCount; ++index0) {
362*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pMemoryRanges[index0].memory, kVulkanObjectTypeDeviceMemory, false, "VUID-VkMappedMemoryRange-memory-parameter", kVUIDUndefined);
363*b7893ccfSSadaf Ebrahimi }
364*b7893ccfSSadaf Ebrahimi }
365*b7893ccfSSadaf Ebrahimi
366*b7893ccfSSadaf Ebrahimi return skip;
367*b7893ccfSSadaf Ebrahimi }
368*b7893ccfSSadaf Ebrahimi
PreCallValidateGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)369*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetDeviceMemoryCommitment(
370*b7893ccfSSadaf Ebrahimi VkDevice device,
371*b7893ccfSSadaf Ebrahimi VkDeviceMemory memory,
372*b7893ccfSSadaf Ebrahimi VkDeviceSize* pCommittedMemoryInBytes) {
373*b7893ccfSSadaf Ebrahimi bool skip = false;
374*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetDeviceMemoryCommitment-device-parameter", kVUIDUndefined);
375*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, "VUID-vkGetDeviceMemoryCommitment-memory-parameter", "VUID-vkGetDeviceMemoryCommitment-memory-parent");
376*b7893ccfSSadaf Ebrahimi
377*b7893ccfSSadaf Ebrahimi return skip;
378*b7893ccfSSadaf Ebrahimi }
379*b7893ccfSSadaf Ebrahimi
PreCallValidateBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)380*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateBindBufferMemory(
381*b7893ccfSSadaf Ebrahimi VkDevice device,
382*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
383*b7893ccfSSadaf Ebrahimi VkDeviceMemory memory,
384*b7893ccfSSadaf Ebrahimi VkDeviceSize memoryOffset) {
385*b7893ccfSSadaf Ebrahimi bool skip = false;
386*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkBindBufferMemory-device-parameter", kVUIDUndefined);
387*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkBindBufferMemory-buffer-parameter", "VUID-vkBindBufferMemory-buffer-parent");
388*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, "VUID-vkBindBufferMemory-memory-parameter", "VUID-vkBindBufferMemory-memory-parent");
389*b7893ccfSSadaf Ebrahimi
390*b7893ccfSSadaf Ebrahimi return skip;
391*b7893ccfSSadaf Ebrahimi }
392*b7893ccfSSadaf Ebrahimi
PreCallValidateBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset)393*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateBindImageMemory(
394*b7893ccfSSadaf Ebrahimi VkDevice device,
395*b7893ccfSSadaf Ebrahimi VkImage image,
396*b7893ccfSSadaf Ebrahimi VkDeviceMemory memory,
397*b7893ccfSSadaf Ebrahimi VkDeviceSize memoryOffset) {
398*b7893ccfSSadaf Ebrahimi bool skip = false;
399*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkBindImageMemory-device-parameter", kVUIDUndefined);
400*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, image, kVulkanObjectTypeImage, false, "VUID-vkBindImageMemory-image-parameter", "VUID-vkBindImageMemory-image-parent");
401*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, "VUID-vkBindImageMemory-memory-parameter", "VUID-vkBindImageMemory-memory-parent");
402*b7893ccfSSadaf Ebrahimi
403*b7893ccfSSadaf Ebrahimi return skip;
404*b7893ccfSSadaf Ebrahimi }
405*b7893ccfSSadaf Ebrahimi
PreCallValidateGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)406*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetBufferMemoryRequirements(
407*b7893ccfSSadaf Ebrahimi VkDevice device,
408*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
409*b7893ccfSSadaf Ebrahimi VkMemoryRequirements* pMemoryRequirements) {
410*b7893ccfSSadaf Ebrahimi bool skip = false;
411*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetBufferMemoryRequirements-device-parameter", kVUIDUndefined);
412*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkGetBufferMemoryRequirements-buffer-parameter", "VUID-vkGetBufferMemoryRequirements-buffer-parent");
413*b7893ccfSSadaf Ebrahimi
414*b7893ccfSSadaf Ebrahimi return skip;
415*b7893ccfSSadaf Ebrahimi }
416*b7893ccfSSadaf Ebrahimi
PreCallValidateGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements)417*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetImageMemoryRequirements(
418*b7893ccfSSadaf Ebrahimi VkDevice device,
419*b7893ccfSSadaf Ebrahimi VkImage image,
420*b7893ccfSSadaf Ebrahimi VkMemoryRequirements* pMemoryRequirements) {
421*b7893ccfSSadaf Ebrahimi bool skip = false;
422*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageMemoryRequirements-device-parameter", kVUIDUndefined);
423*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, image, kVulkanObjectTypeImage, false, "VUID-vkGetImageMemoryRequirements-image-parameter", "VUID-vkGetImageMemoryRequirements-image-parent");
424*b7893ccfSSadaf Ebrahimi
425*b7893ccfSSadaf Ebrahimi return skip;
426*b7893ccfSSadaf Ebrahimi }
427*b7893ccfSSadaf Ebrahimi
PreCallValidateGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)428*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetImageSparseMemoryRequirements(
429*b7893ccfSSadaf Ebrahimi VkDevice device,
430*b7893ccfSSadaf Ebrahimi VkImage image,
431*b7893ccfSSadaf Ebrahimi uint32_t* pSparseMemoryRequirementCount,
432*b7893ccfSSadaf Ebrahimi VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
433*b7893ccfSSadaf Ebrahimi bool skip = false;
434*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageSparseMemoryRequirements-device-parameter", kVUIDUndefined);
435*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, image, kVulkanObjectTypeImage, false, "VUID-vkGetImageSparseMemoryRequirements-image-parameter", "VUID-vkGetImageSparseMemoryRequirements-image-parent");
436*b7893ccfSSadaf Ebrahimi
437*b7893ccfSSadaf Ebrahimi return skip;
438*b7893ccfSSadaf Ebrahimi }
439*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties)440*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSparseImageFormatProperties(
441*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
442*b7893ccfSSadaf Ebrahimi VkFormat format,
443*b7893ccfSSadaf Ebrahimi VkImageType type,
444*b7893ccfSSadaf Ebrahimi VkSampleCountFlagBits samples,
445*b7893ccfSSadaf Ebrahimi VkImageUsageFlags usage,
446*b7893ccfSSadaf Ebrahimi VkImageTiling tiling,
447*b7893ccfSSadaf Ebrahimi uint32_t* pPropertyCount,
448*b7893ccfSSadaf Ebrahimi VkSparseImageFormatProperties* pProperties) {
449*b7893ccfSSadaf Ebrahimi bool skip = false;
450*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-physicalDevice-parameter", kVUIDUndefined);
451*b7893ccfSSadaf Ebrahimi
452*b7893ccfSSadaf Ebrahimi return skip;
453*b7893ccfSSadaf Ebrahimi }
454*b7893ccfSSadaf Ebrahimi
PreCallValidateQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)455*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateQueueBindSparse(
456*b7893ccfSSadaf Ebrahimi VkQueue queue,
457*b7893ccfSSadaf Ebrahimi uint32_t bindInfoCount,
458*b7893ccfSSadaf Ebrahimi const VkBindSparseInfo* pBindInfo,
459*b7893ccfSSadaf Ebrahimi VkFence fence) {
460*b7893ccfSSadaf Ebrahimi bool skip = false;
461*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, "VUID-vkQueueBindSparse-queue-parameter", "VUID-vkQueueBindSparse-commonparent");
462*b7893ccfSSadaf Ebrahimi if (pBindInfo) {
463*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < bindInfoCount; ++index0) {
464*b7893ccfSSadaf Ebrahimi if (pBindInfo[index0].pWaitSemaphores) {
465*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pBindInfo[index0].waitSemaphoreCount; ++index1) {
466*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pBindInfo[index0].pWaitSemaphores[index1], kVulkanObjectTypeSemaphore, false, "VUID-VkBindSparseInfo-pWaitSemaphores-parameter", "VUID-VkBindSparseInfo-commonparent");
467*b7893ccfSSadaf Ebrahimi }
468*b7893ccfSSadaf Ebrahimi }
469*b7893ccfSSadaf Ebrahimi if (pBindInfo[index0].pBufferBinds) {
470*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pBindInfo[index0].bufferBindCount; ++index1) {
471*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pBindInfo[index0].pBufferBinds[index1].buffer, kVulkanObjectTypeBuffer, false, "VUID-VkSparseBufferMemoryBindInfo-buffer-parameter", kVUIDUndefined);
472*b7893ccfSSadaf Ebrahimi if (pBindInfo[index0].pBufferBinds[index1].pBinds) {
473*b7893ccfSSadaf Ebrahimi for (uint32_t index2 = 0; index2 < pBindInfo[index0].pBufferBinds[index1].bindCount; ++index2) {
474*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pBindInfo[index0].pBufferBinds[index1].pBinds[index2].memory, kVulkanObjectTypeDeviceMemory, true, "VUID-VkSparseMemoryBind-memory-parameter", kVUIDUndefined);
475*b7893ccfSSadaf Ebrahimi }
476*b7893ccfSSadaf Ebrahimi }
477*b7893ccfSSadaf Ebrahimi }
478*b7893ccfSSadaf Ebrahimi }
479*b7893ccfSSadaf Ebrahimi if (pBindInfo[index0].pImageOpaqueBinds) {
480*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pBindInfo[index0].imageOpaqueBindCount; ++index1) {
481*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pBindInfo[index0].pImageOpaqueBinds[index1].image, kVulkanObjectTypeImage, false, "VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter", kVUIDUndefined);
482*b7893ccfSSadaf Ebrahimi if (pBindInfo[index0].pImageOpaqueBinds[index1].pBinds) {
483*b7893ccfSSadaf Ebrahimi for (uint32_t index2 = 0; index2 < pBindInfo[index0].pImageOpaqueBinds[index1].bindCount; ++index2) {
484*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pBindInfo[index0].pImageOpaqueBinds[index1].pBinds[index2].memory, kVulkanObjectTypeDeviceMemory, true, "VUID-VkSparseMemoryBind-memory-parameter", kVUIDUndefined);
485*b7893ccfSSadaf Ebrahimi }
486*b7893ccfSSadaf Ebrahimi }
487*b7893ccfSSadaf Ebrahimi }
488*b7893ccfSSadaf Ebrahimi }
489*b7893ccfSSadaf Ebrahimi if (pBindInfo[index0].pImageBinds) {
490*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pBindInfo[index0].imageBindCount; ++index1) {
491*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pBindInfo[index0].pImageBinds[index1].image, kVulkanObjectTypeImage, false, "VUID-VkSparseImageMemoryBindInfo-image-parameter", kVUIDUndefined);
492*b7893ccfSSadaf Ebrahimi if (pBindInfo[index0].pImageBinds[index1].pBinds) {
493*b7893ccfSSadaf Ebrahimi for (uint32_t index2 = 0; index2 < pBindInfo[index0].pImageBinds[index1].bindCount; ++index2) {
494*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pBindInfo[index0].pImageBinds[index1].pBinds[index2].memory, kVulkanObjectTypeDeviceMemory, true, "VUID-VkSparseImageMemoryBind-memory-parameter", kVUIDUndefined);
495*b7893ccfSSadaf Ebrahimi }
496*b7893ccfSSadaf Ebrahimi }
497*b7893ccfSSadaf Ebrahimi }
498*b7893ccfSSadaf Ebrahimi }
499*b7893ccfSSadaf Ebrahimi if (pBindInfo[index0].pSignalSemaphores) {
500*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pBindInfo[index0].signalSemaphoreCount; ++index1) {
501*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pBindInfo[index0].pSignalSemaphores[index1], kVulkanObjectTypeSemaphore, false, "VUID-VkBindSparseInfo-pSignalSemaphores-parameter", "VUID-VkBindSparseInfo-commonparent");
502*b7893ccfSSadaf Ebrahimi }
503*b7893ccfSSadaf Ebrahimi }
504*b7893ccfSSadaf Ebrahimi }
505*b7893ccfSSadaf Ebrahimi }
506*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, fence, kVulkanObjectTypeFence, true, "VUID-vkQueueBindSparse-fence-parameter", "VUID-vkQueueBindSparse-commonparent");
507*b7893ccfSSadaf Ebrahimi
508*b7893ccfSSadaf Ebrahimi return skip;
509*b7893ccfSSadaf Ebrahimi }
510*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)511*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateFence(
512*b7893ccfSSadaf Ebrahimi VkDevice device,
513*b7893ccfSSadaf Ebrahimi const VkFenceCreateInfo* pCreateInfo,
514*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
515*b7893ccfSSadaf Ebrahimi VkFence* pFence) {
516*b7893ccfSSadaf Ebrahimi bool skip = false;
517*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateFence-device-parameter", kVUIDUndefined);
518*b7893ccfSSadaf Ebrahimi
519*b7893ccfSSadaf Ebrahimi return skip;
520*b7893ccfSSadaf Ebrahimi }
521*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence,VkResult result)522*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateFence(
523*b7893ccfSSadaf Ebrahimi VkDevice device,
524*b7893ccfSSadaf Ebrahimi const VkFenceCreateInfo* pCreateInfo,
525*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
526*b7893ccfSSadaf Ebrahimi VkFence* pFence,
527*b7893ccfSSadaf Ebrahimi VkResult result) {
528*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
529*b7893ccfSSadaf Ebrahimi CreateObject(device, *pFence, kVulkanObjectTypeFence, pAllocator);
530*b7893ccfSSadaf Ebrahimi
531*b7893ccfSSadaf Ebrahimi }
532*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)533*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyFence(
534*b7893ccfSSadaf Ebrahimi VkDevice device,
535*b7893ccfSSadaf Ebrahimi VkFence fence,
536*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
537*b7893ccfSSadaf Ebrahimi bool skip = false;
538*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyFence-device-parameter", kVUIDUndefined);
539*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, fence, kVulkanObjectTypeFence, true, "VUID-vkDestroyFence-fence-parameter", "VUID-vkDestroyFence-fence-parent");
540*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, fence, kVulkanObjectTypeFence, pAllocator, "VUID-vkDestroyFence-fence-01121", "VUID-vkDestroyFence-fence-01122");
541*b7893ccfSSadaf Ebrahimi
542*b7893ccfSSadaf Ebrahimi return skip;
543*b7893ccfSSadaf Ebrahimi }
544*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)545*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyFence(
546*b7893ccfSSadaf Ebrahimi VkDevice device,
547*b7893ccfSSadaf Ebrahimi VkFence fence,
548*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
549*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, fence, kVulkanObjectTypeFence);
550*b7893ccfSSadaf Ebrahimi
551*b7893ccfSSadaf Ebrahimi }
552*b7893ccfSSadaf Ebrahimi
PreCallValidateResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences)553*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateResetFences(
554*b7893ccfSSadaf Ebrahimi VkDevice device,
555*b7893ccfSSadaf Ebrahimi uint32_t fenceCount,
556*b7893ccfSSadaf Ebrahimi const VkFence* pFences) {
557*b7893ccfSSadaf Ebrahimi bool skip = false;
558*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkResetFences-device-parameter", kVUIDUndefined);
559*b7893ccfSSadaf Ebrahimi if (pFences) {
560*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < fenceCount; ++index0) {
561*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pFences[index0], kVulkanObjectTypeFence, false, "VUID-vkResetFences-pFences-parameter", "VUID-vkResetFences-pFences-parent");
562*b7893ccfSSadaf Ebrahimi }
563*b7893ccfSSadaf Ebrahimi }
564*b7893ccfSSadaf Ebrahimi
565*b7893ccfSSadaf Ebrahimi return skip;
566*b7893ccfSSadaf Ebrahimi }
567*b7893ccfSSadaf Ebrahimi
PreCallValidateGetFenceStatus(VkDevice device,VkFence fence)568*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetFenceStatus(
569*b7893ccfSSadaf Ebrahimi VkDevice device,
570*b7893ccfSSadaf Ebrahimi VkFence fence) {
571*b7893ccfSSadaf Ebrahimi bool skip = false;
572*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetFenceStatus-device-parameter", kVUIDUndefined);
573*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, fence, kVulkanObjectTypeFence, false, "VUID-vkGetFenceStatus-fence-parameter", "VUID-vkGetFenceStatus-fence-parent");
574*b7893ccfSSadaf Ebrahimi
575*b7893ccfSSadaf Ebrahimi return skip;
576*b7893ccfSSadaf Ebrahimi }
577*b7893ccfSSadaf Ebrahimi
PreCallValidateWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout)578*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateWaitForFences(
579*b7893ccfSSadaf Ebrahimi VkDevice device,
580*b7893ccfSSadaf Ebrahimi uint32_t fenceCount,
581*b7893ccfSSadaf Ebrahimi const VkFence* pFences,
582*b7893ccfSSadaf Ebrahimi VkBool32 waitAll,
583*b7893ccfSSadaf Ebrahimi uint64_t timeout) {
584*b7893ccfSSadaf Ebrahimi bool skip = false;
585*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkWaitForFences-device-parameter", kVUIDUndefined);
586*b7893ccfSSadaf Ebrahimi if (pFences) {
587*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < fenceCount; ++index0) {
588*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pFences[index0], kVulkanObjectTypeFence, false, "VUID-vkWaitForFences-pFences-parameter", "VUID-vkWaitForFences-pFences-parent");
589*b7893ccfSSadaf Ebrahimi }
590*b7893ccfSSadaf Ebrahimi }
591*b7893ccfSSadaf Ebrahimi
592*b7893ccfSSadaf Ebrahimi return skip;
593*b7893ccfSSadaf Ebrahimi }
594*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)595*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateSemaphore(
596*b7893ccfSSadaf Ebrahimi VkDevice device,
597*b7893ccfSSadaf Ebrahimi const VkSemaphoreCreateInfo* pCreateInfo,
598*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
599*b7893ccfSSadaf Ebrahimi VkSemaphore* pSemaphore) {
600*b7893ccfSSadaf Ebrahimi bool skip = false;
601*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateSemaphore-device-parameter", kVUIDUndefined);
602*b7893ccfSSadaf Ebrahimi
603*b7893ccfSSadaf Ebrahimi return skip;
604*b7893ccfSSadaf Ebrahimi }
605*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore,VkResult result)606*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateSemaphore(
607*b7893ccfSSadaf Ebrahimi VkDevice device,
608*b7893ccfSSadaf Ebrahimi const VkSemaphoreCreateInfo* pCreateInfo,
609*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
610*b7893ccfSSadaf Ebrahimi VkSemaphore* pSemaphore,
611*b7893ccfSSadaf Ebrahimi VkResult result) {
612*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
613*b7893ccfSSadaf Ebrahimi CreateObject(device, *pSemaphore, kVulkanObjectTypeSemaphore, pAllocator);
614*b7893ccfSSadaf Ebrahimi
615*b7893ccfSSadaf Ebrahimi }
616*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)617*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroySemaphore(
618*b7893ccfSSadaf Ebrahimi VkDevice device,
619*b7893ccfSSadaf Ebrahimi VkSemaphore semaphore,
620*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
621*b7893ccfSSadaf Ebrahimi bool skip = false;
622*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroySemaphore-device-parameter", kVUIDUndefined);
623*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, semaphore, kVulkanObjectTypeSemaphore, true, "VUID-vkDestroySemaphore-semaphore-parameter", "VUID-vkDestroySemaphore-semaphore-parent");
624*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, semaphore, kVulkanObjectTypeSemaphore, pAllocator, "VUID-vkDestroySemaphore-semaphore-01138", "VUID-vkDestroySemaphore-semaphore-01139");
625*b7893ccfSSadaf Ebrahimi
626*b7893ccfSSadaf Ebrahimi return skip;
627*b7893ccfSSadaf Ebrahimi }
628*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)629*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroySemaphore(
630*b7893ccfSSadaf Ebrahimi VkDevice device,
631*b7893ccfSSadaf Ebrahimi VkSemaphore semaphore,
632*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
633*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, semaphore, kVulkanObjectTypeSemaphore);
634*b7893ccfSSadaf Ebrahimi
635*b7893ccfSSadaf Ebrahimi }
636*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent)637*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateEvent(
638*b7893ccfSSadaf Ebrahimi VkDevice device,
639*b7893ccfSSadaf Ebrahimi const VkEventCreateInfo* pCreateInfo,
640*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
641*b7893ccfSSadaf Ebrahimi VkEvent* pEvent) {
642*b7893ccfSSadaf Ebrahimi bool skip = false;
643*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateEvent-device-parameter", kVUIDUndefined);
644*b7893ccfSSadaf Ebrahimi
645*b7893ccfSSadaf Ebrahimi return skip;
646*b7893ccfSSadaf Ebrahimi }
647*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent,VkResult result)648*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateEvent(
649*b7893ccfSSadaf Ebrahimi VkDevice device,
650*b7893ccfSSadaf Ebrahimi const VkEventCreateInfo* pCreateInfo,
651*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
652*b7893ccfSSadaf Ebrahimi VkEvent* pEvent,
653*b7893ccfSSadaf Ebrahimi VkResult result) {
654*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
655*b7893ccfSSadaf Ebrahimi CreateObject(device, *pEvent, kVulkanObjectTypeEvent, pAllocator);
656*b7893ccfSSadaf Ebrahimi
657*b7893ccfSSadaf Ebrahimi }
658*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)659*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyEvent(
660*b7893ccfSSadaf Ebrahimi VkDevice device,
661*b7893ccfSSadaf Ebrahimi VkEvent event,
662*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
663*b7893ccfSSadaf Ebrahimi bool skip = false;
664*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyEvent-device-parameter", kVUIDUndefined);
665*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, event, kVulkanObjectTypeEvent, true, "VUID-vkDestroyEvent-event-parameter", "VUID-vkDestroyEvent-event-parent");
666*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, event, kVulkanObjectTypeEvent, pAllocator, "VUID-vkDestroyEvent-event-01146", "VUID-vkDestroyEvent-event-01147");
667*b7893ccfSSadaf Ebrahimi
668*b7893ccfSSadaf Ebrahimi return skip;
669*b7893ccfSSadaf Ebrahimi }
670*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)671*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyEvent(
672*b7893ccfSSadaf Ebrahimi VkDevice device,
673*b7893ccfSSadaf Ebrahimi VkEvent event,
674*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
675*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, event, kVulkanObjectTypeEvent);
676*b7893ccfSSadaf Ebrahimi
677*b7893ccfSSadaf Ebrahimi }
678*b7893ccfSSadaf Ebrahimi
PreCallValidateGetEventStatus(VkDevice device,VkEvent event)679*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetEventStatus(
680*b7893ccfSSadaf Ebrahimi VkDevice device,
681*b7893ccfSSadaf Ebrahimi VkEvent event) {
682*b7893ccfSSadaf Ebrahimi bool skip = false;
683*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetEventStatus-device-parameter", kVUIDUndefined);
684*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, event, kVulkanObjectTypeEvent, false, "VUID-vkGetEventStatus-event-parameter", "VUID-vkGetEventStatus-event-parent");
685*b7893ccfSSadaf Ebrahimi
686*b7893ccfSSadaf Ebrahimi return skip;
687*b7893ccfSSadaf Ebrahimi }
688*b7893ccfSSadaf Ebrahimi
PreCallValidateSetEvent(VkDevice device,VkEvent event)689*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateSetEvent(
690*b7893ccfSSadaf Ebrahimi VkDevice device,
691*b7893ccfSSadaf Ebrahimi VkEvent event) {
692*b7893ccfSSadaf Ebrahimi bool skip = false;
693*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkSetEvent-device-parameter", kVUIDUndefined);
694*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, event, kVulkanObjectTypeEvent, false, "VUID-vkSetEvent-event-parameter", "VUID-vkSetEvent-event-parent");
695*b7893ccfSSadaf Ebrahimi
696*b7893ccfSSadaf Ebrahimi return skip;
697*b7893ccfSSadaf Ebrahimi }
698*b7893ccfSSadaf Ebrahimi
PreCallValidateResetEvent(VkDevice device,VkEvent event)699*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateResetEvent(
700*b7893ccfSSadaf Ebrahimi VkDevice device,
701*b7893ccfSSadaf Ebrahimi VkEvent event) {
702*b7893ccfSSadaf Ebrahimi bool skip = false;
703*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkResetEvent-device-parameter", kVUIDUndefined);
704*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, event, kVulkanObjectTypeEvent, false, "VUID-vkResetEvent-event-parameter", "VUID-vkResetEvent-event-parent");
705*b7893ccfSSadaf Ebrahimi
706*b7893ccfSSadaf Ebrahimi return skip;
707*b7893ccfSSadaf Ebrahimi }
708*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool)709*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateQueryPool(
710*b7893ccfSSadaf Ebrahimi VkDevice device,
711*b7893ccfSSadaf Ebrahimi const VkQueryPoolCreateInfo* pCreateInfo,
712*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
713*b7893ccfSSadaf Ebrahimi VkQueryPool* pQueryPool) {
714*b7893ccfSSadaf Ebrahimi bool skip = false;
715*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateQueryPool-device-parameter", kVUIDUndefined);
716*b7893ccfSSadaf Ebrahimi
717*b7893ccfSSadaf Ebrahimi return skip;
718*b7893ccfSSadaf Ebrahimi }
719*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool,VkResult result)720*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateQueryPool(
721*b7893ccfSSadaf Ebrahimi VkDevice device,
722*b7893ccfSSadaf Ebrahimi const VkQueryPoolCreateInfo* pCreateInfo,
723*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
724*b7893ccfSSadaf Ebrahimi VkQueryPool* pQueryPool,
725*b7893ccfSSadaf Ebrahimi VkResult result) {
726*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
727*b7893ccfSSadaf Ebrahimi CreateObject(device, *pQueryPool, kVulkanObjectTypeQueryPool, pAllocator);
728*b7893ccfSSadaf Ebrahimi
729*b7893ccfSSadaf Ebrahimi }
730*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)731*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyQueryPool(
732*b7893ccfSSadaf Ebrahimi VkDevice device,
733*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
734*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
735*b7893ccfSSadaf Ebrahimi bool skip = false;
736*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyQueryPool-device-parameter", kVUIDUndefined);
737*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, queryPool, kVulkanObjectTypeQueryPool, true, "VUID-vkDestroyQueryPool-queryPool-parameter", "VUID-vkDestroyQueryPool-queryPool-parent");
738*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, queryPool, kVulkanObjectTypeQueryPool, pAllocator, "VUID-vkDestroyQueryPool-queryPool-00794", "VUID-vkDestroyQueryPool-queryPool-00795");
739*b7893ccfSSadaf Ebrahimi
740*b7893ccfSSadaf Ebrahimi return skip;
741*b7893ccfSSadaf Ebrahimi }
742*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)743*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyQueryPool(
744*b7893ccfSSadaf Ebrahimi VkDevice device,
745*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
746*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
747*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, queryPool, kVulkanObjectTypeQueryPool);
748*b7893ccfSSadaf Ebrahimi
749*b7893ccfSSadaf Ebrahimi }
750*b7893ccfSSadaf Ebrahimi
PreCallValidateGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags)751*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetQueryPoolResults(
752*b7893ccfSSadaf Ebrahimi VkDevice device,
753*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
754*b7893ccfSSadaf Ebrahimi uint32_t firstQuery,
755*b7893ccfSSadaf Ebrahimi uint32_t queryCount,
756*b7893ccfSSadaf Ebrahimi size_t dataSize,
757*b7893ccfSSadaf Ebrahimi void* pData,
758*b7893ccfSSadaf Ebrahimi VkDeviceSize stride,
759*b7893ccfSSadaf Ebrahimi VkQueryResultFlags flags) {
760*b7893ccfSSadaf Ebrahimi bool skip = false;
761*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetQueryPoolResults-device-parameter", kVUIDUndefined);
762*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, queryPool, kVulkanObjectTypeQueryPool, false, "VUID-vkGetQueryPoolResults-queryPool-parameter", "VUID-vkGetQueryPoolResults-queryPool-parent");
763*b7893ccfSSadaf Ebrahimi
764*b7893ccfSSadaf Ebrahimi return skip;
765*b7893ccfSSadaf Ebrahimi }
766*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)767*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateBuffer(
768*b7893ccfSSadaf Ebrahimi VkDevice device,
769*b7893ccfSSadaf Ebrahimi const VkBufferCreateInfo* pCreateInfo,
770*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
771*b7893ccfSSadaf Ebrahimi VkBuffer* pBuffer) {
772*b7893ccfSSadaf Ebrahimi bool skip = false;
773*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateBuffer-device-parameter", kVUIDUndefined);
774*b7893ccfSSadaf Ebrahimi
775*b7893ccfSSadaf Ebrahimi return skip;
776*b7893ccfSSadaf Ebrahimi }
777*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer,VkResult result)778*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateBuffer(
779*b7893ccfSSadaf Ebrahimi VkDevice device,
780*b7893ccfSSadaf Ebrahimi const VkBufferCreateInfo* pCreateInfo,
781*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
782*b7893ccfSSadaf Ebrahimi VkBuffer* pBuffer,
783*b7893ccfSSadaf Ebrahimi VkResult result) {
784*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
785*b7893ccfSSadaf Ebrahimi CreateObject(device, *pBuffer, kVulkanObjectTypeBuffer, pAllocator);
786*b7893ccfSSadaf Ebrahimi
787*b7893ccfSSadaf Ebrahimi }
788*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)789*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyBuffer(
790*b7893ccfSSadaf Ebrahimi VkDevice device,
791*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
792*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
793*b7893ccfSSadaf Ebrahimi bool skip = false;
794*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyBuffer-device-parameter", kVUIDUndefined);
795*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, buffer, kVulkanObjectTypeBuffer, true, "VUID-vkDestroyBuffer-buffer-parameter", "VUID-vkDestroyBuffer-buffer-parent");
796*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, buffer, kVulkanObjectTypeBuffer, pAllocator, "VUID-vkDestroyBuffer-buffer-00923", "VUID-vkDestroyBuffer-buffer-00924");
797*b7893ccfSSadaf Ebrahimi
798*b7893ccfSSadaf Ebrahimi return skip;
799*b7893ccfSSadaf Ebrahimi }
800*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)801*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyBuffer(
802*b7893ccfSSadaf Ebrahimi VkDevice device,
803*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
804*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
805*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, buffer, kVulkanObjectTypeBuffer);
806*b7893ccfSSadaf Ebrahimi
807*b7893ccfSSadaf Ebrahimi }
808*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)809*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateBufferView(
810*b7893ccfSSadaf Ebrahimi VkDevice device,
811*b7893ccfSSadaf Ebrahimi const VkBufferViewCreateInfo* pCreateInfo,
812*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
813*b7893ccfSSadaf Ebrahimi VkBufferView* pView) {
814*b7893ccfSSadaf Ebrahimi bool skip = false;
815*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateBufferView-device-parameter", kVUIDUndefined);
816*b7893ccfSSadaf Ebrahimi if (pCreateInfo) {
817*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->buffer, kVulkanObjectTypeBuffer, false, "VUID-VkBufferViewCreateInfo-buffer-parameter", kVUIDUndefined);
818*b7893ccfSSadaf Ebrahimi }
819*b7893ccfSSadaf Ebrahimi
820*b7893ccfSSadaf Ebrahimi return skip;
821*b7893ccfSSadaf Ebrahimi }
822*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView,VkResult result)823*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateBufferView(
824*b7893ccfSSadaf Ebrahimi VkDevice device,
825*b7893ccfSSadaf Ebrahimi const VkBufferViewCreateInfo* pCreateInfo,
826*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
827*b7893ccfSSadaf Ebrahimi VkBufferView* pView,
828*b7893ccfSSadaf Ebrahimi VkResult result) {
829*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
830*b7893ccfSSadaf Ebrahimi CreateObject(device, *pView, kVulkanObjectTypeBufferView, pAllocator);
831*b7893ccfSSadaf Ebrahimi
832*b7893ccfSSadaf Ebrahimi }
833*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)834*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyBufferView(
835*b7893ccfSSadaf Ebrahimi VkDevice device,
836*b7893ccfSSadaf Ebrahimi VkBufferView bufferView,
837*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
838*b7893ccfSSadaf Ebrahimi bool skip = false;
839*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyBufferView-device-parameter", kVUIDUndefined);
840*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, bufferView, kVulkanObjectTypeBufferView, true, "VUID-vkDestroyBufferView-bufferView-parameter", "VUID-vkDestroyBufferView-bufferView-parent");
841*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, bufferView, kVulkanObjectTypeBufferView, pAllocator, "VUID-vkDestroyBufferView-bufferView-00937", "VUID-vkDestroyBufferView-bufferView-00938");
842*b7893ccfSSadaf Ebrahimi
843*b7893ccfSSadaf Ebrahimi return skip;
844*b7893ccfSSadaf Ebrahimi }
845*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)846*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyBufferView(
847*b7893ccfSSadaf Ebrahimi VkDevice device,
848*b7893ccfSSadaf Ebrahimi VkBufferView bufferView,
849*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
850*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, bufferView, kVulkanObjectTypeBufferView);
851*b7893ccfSSadaf Ebrahimi
852*b7893ccfSSadaf Ebrahimi }
853*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage)854*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateImage(
855*b7893ccfSSadaf Ebrahimi VkDevice device,
856*b7893ccfSSadaf Ebrahimi const VkImageCreateInfo* pCreateInfo,
857*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
858*b7893ccfSSadaf Ebrahimi VkImage* pImage) {
859*b7893ccfSSadaf Ebrahimi bool skip = false;
860*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateImage-device-parameter", kVUIDUndefined);
861*b7893ccfSSadaf Ebrahimi
862*b7893ccfSSadaf Ebrahimi return skip;
863*b7893ccfSSadaf Ebrahimi }
864*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage,VkResult result)865*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateImage(
866*b7893ccfSSadaf Ebrahimi VkDevice device,
867*b7893ccfSSadaf Ebrahimi const VkImageCreateInfo* pCreateInfo,
868*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
869*b7893ccfSSadaf Ebrahimi VkImage* pImage,
870*b7893ccfSSadaf Ebrahimi VkResult result) {
871*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
872*b7893ccfSSadaf Ebrahimi CreateObject(device, *pImage, kVulkanObjectTypeImage, pAllocator);
873*b7893ccfSSadaf Ebrahimi
874*b7893ccfSSadaf Ebrahimi }
875*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)876*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyImage(
877*b7893ccfSSadaf Ebrahimi VkDevice device,
878*b7893ccfSSadaf Ebrahimi VkImage image,
879*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
880*b7893ccfSSadaf Ebrahimi bool skip = false;
881*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyImage-device-parameter", kVUIDUndefined);
882*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, image, kVulkanObjectTypeImage, true, "VUID-vkDestroyImage-image-parameter", "VUID-vkDestroyImage-image-parent");
883*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, image, kVulkanObjectTypeImage, pAllocator, "VUID-vkDestroyImage-image-01001", "VUID-vkDestroyImage-image-01002");
884*b7893ccfSSadaf Ebrahimi
885*b7893ccfSSadaf Ebrahimi return skip;
886*b7893ccfSSadaf Ebrahimi }
887*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)888*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyImage(
889*b7893ccfSSadaf Ebrahimi VkDevice device,
890*b7893ccfSSadaf Ebrahimi VkImage image,
891*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
892*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, image, kVulkanObjectTypeImage);
893*b7893ccfSSadaf Ebrahimi
894*b7893ccfSSadaf Ebrahimi }
895*b7893ccfSSadaf Ebrahimi
PreCallValidateGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)896*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetImageSubresourceLayout(
897*b7893ccfSSadaf Ebrahimi VkDevice device,
898*b7893ccfSSadaf Ebrahimi VkImage image,
899*b7893ccfSSadaf Ebrahimi const VkImageSubresource* pSubresource,
900*b7893ccfSSadaf Ebrahimi VkSubresourceLayout* pLayout) {
901*b7893ccfSSadaf Ebrahimi bool skip = false;
902*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageSubresourceLayout-device-parameter", kVUIDUndefined);
903*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, image, kVulkanObjectTypeImage, false, "VUID-vkGetImageSubresourceLayout-image-parameter", "VUID-vkGetImageSubresourceLayout-image-parent");
904*b7893ccfSSadaf Ebrahimi
905*b7893ccfSSadaf Ebrahimi return skip;
906*b7893ccfSSadaf Ebrahimi }
907*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView)908*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateImageView(
909*b7893ccfSSadaf Ebrahimi VkDevice device,
910*b7893ccfSSadaf Ebrahimi const VkImageViewCreateInfo* pCreateInfo,
911*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
912*b7893ccfSSadaf Ebrahimi VkImageView* pView) {
913*b7893ccfSSadaf Ebrahimi bool skip = false;
914*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateImageView-device-parameter", kVUIDUndefined);
915*b7893ccfSSadaf Ebrahimi if (pCreateInfo) {
916*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->image, kVulkanObjectTypeImage, false, "VUID-VkImageViewCreateInfo-image-parameter", kVUIDUndefined);
917*b7893ccfSSadaf Ebrahimi }
918*b7893ccfSSadaf Ebrahimi
919*b7893ccfSSadaf Ebrahimi return skip;
920*b7893ccfSSadaf Ebrahimi }
921*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView,VkResult result)922*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateImageView(
923*b7893ccfSSadaf Ebrahimi VkDevice device,
924*b7893ccfSSadaf Ebrahimi const VkImageViewCreateInfo* pCreateInfo,
925*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
926*b7893ccfSSadaf Ebrahimi VkImageView* pView,
927*b7893ccfSSadaf Ebrahimi VkResult result) {
928*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
929*b7893ccfSSadaf Ebrahimi CreateObject(device, *pView, kVulkanObjectTypeImageView, pAllocator);
930*b7893ccfSSadaf Ebrahimi
931*b7893ccfSSadaf Ebrahimi }
932*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)933*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyImageView(
934*b7893ccfSSadaf Ebrahimi VkDevice device,
935*b7893ccfSSadaf Ebrahimi VkImageView imageView,
936*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
937*b7893ccfSSadaf Ebrahimi bool skip = false;
938*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyImageView-device-parameter", kVUIDUndefined);
939*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, imageView, kVulkanObjectTypeImageView, true, "VUID-vkDestroyImageView-imageView-parameter", "VUID-vkDestroyImageView-imageView-parent");
940*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, imageView, kVulkanObjectTypeImageView, pAllocator, "VUID-vkDestroyImageView-imageView-01027", "VUID-vkDestroyImageView-imageView-01028");
941*b7893ccfSSadaf Ebrahimi
942*b7893ccfSSadaf Ebrahimi return skip;
943*b7893ccfSSadaf Ebrahimi }
944*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)945*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyImageView(
946*b7893ccfSSadaf Ebrahimi VkDevice device,
947*b7893ccfSSadaf Ebrahimi VkImageView imageView,
948*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
949*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, imageView, kVulkanObjectTypeImageView);
950*b7893ccfSSadaf Ebrahimi
951*b7893ccfSSadaf Ebrahimi }
952*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)953*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateShaderModule(
954*b7893ccfSSadaf Ebrahimi VkDevice device,
955*b7893ccfSSadaf Ebrahimi const VkShaderModuleCreateInfo* pCreateInfo,
956*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
957*b7893ccfSSadaf Ebrahimi VkShaderModule* pShaderModule) {
958*b7893ccfSSadaf Ebrahimi bool skip = false;
959*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateShaderModule-device-parameter", kVUIDUndefined);
960*b7893ccfSSadaf Ebrahimi
961*b7893ccfSSadaf Ebrahimi return skip;
962*b7893ccfSSadaf Ebrahimi }
963*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule,VkResult result)964*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateShaderModule(
965*b7893ccfSSadaf Ebrahimi VkDevice device,
966*b7893ccfSSadaf Ebrahimi const VkShaderModuleCreateInfo* pCreateInfo,
967*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
968*b7893ccfSSadaf Ebrahimi VkShaderModule* pShaderModule,
969*b7893ccfSSadaf Ebrahimi VkResult result) {
970*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
971*b7893ccfSSadaf Ebrahimi CreateObject(device, *pShaderModule, kVulkanObjectTypeShaderModule, pAllocator);
972*b7893ccfSSadaf Ebrahimi
973*b7893ccfSSadaf Ebrahimi }
974*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)975*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyShaderModule(
976*b7893ccfSSadaf Ebrahimi VkDevice device,
977*b7893ccfSSadaf Ebrahimi VkShaderModule shaderModule,
978*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
979*b7893ccfSSadaf Ebrahimi bool skip = false;
980*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyShaderModule-device-parameter", kVUIDUndefined);
981*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, shaderModule, kVulkanObjectTypeShaderModule, true, "VUID-vkDestroyShaderModule-shaderModule-parameter", "VUID-vkDestroyShaderModule-shaderModule-parent");
982*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, shaderModule, kVulkanObjectTypeShaderModule, pAllocator, "VUID-vkDestroyShaderModule-shaderModule-01092", "VUID-vkDestroyShaderModule-shaderModule-01093");
983*b7893ccfSSadaf Ebrahimi
984*b7893ccfSSadaf Ebrahimi return skip;
985*b7893ccfSSadaf Ebrahimi }
986*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)987*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyShaderModule(
988*b7893ccfSSadaf Ebrahimi VkDevice device,
989*b7893ccfSSadaf Ebrahimi VkShaderModule shaderModule,
990*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
991*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, shaderModule, kVulkanObjectTypeShaderModule);
992*b7893ccfSSadaf Ebrahimi
993*b7893ccfSSadaf Ebrahimi }
994*b7893ccfSSadaf Ebrahimi
PreCallValidateCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache)995*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreatePipelineCache(
996*b7893ccfSSadaf Ebrahimi VkDevice device,
997*b7893ccfSSadaf Ebrahimi const VkPipelineCacheCreateInfo* pCreateInfo,
998*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
999*b7893ccfSSadaf Ebrahimi VkPipelineCache* pPipelineCache) {
1000*b7893ccfSSadaf Ebrahimi bool skip = false;
1001*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreatePipelineCache-device-parameter", kVUIDUndefined);
1002*b7893ccfSSadaf Ebrahimi
1003*b7893ccfSSadaf Ebrahimi return skip;
1004*b7893ccfSSadaf Ebrahimi }
1005*b7893ccfSSadaf Ebrahimi
PostCallRecordCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache,VkResult result)1006*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreatePipelineCache(
1007*b7893ccfSSadaf Ebrahimi VkDevice device,
1008*b7893ccfSSadaf Ebrahimi const VkPipelineCacheCreateInfo* pCreateInfo,
1009*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1010*b7893ccfSSadaf Ebrahimi VkPipelineCache* pPipelineCache,
1011*b7893ccfSSadaf Ebrahimi VkResult result) {
1012*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
1013*b7893ccfSSadaf Ebrahimi CreateObject(device, *pPipelineCache, kVulkanObjectTypePipelineCache, pAllocator);
1014*b7893ccfSSadaf Ebrahimi
1015*b7893ccfSSadaf Ebrahimi }
1016*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)1017*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyPipelineCache(
1018*b7893ccfSSadaf Ebrahimi VkDevice device,
1019*b7893ccfSSadaf Ebrahimi VkPipelineCache pipelineCache,
1020*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1021*b7893ccfSSadaf Ebrahimi bool skip = false;
1022*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyPipelineCache-device-parameter", kVUIDUndefined);
1023*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pipelineCache, kVulkanObjectTypePipelineCache, true, "VUID-vkDestroyPipelineCache-pipelineCache-parameter", "VUID-vkDestroyPipelineCache-pipelineCache-parent");
1024*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, pipelineCache, kVulkanObjectTypePipelineCache, pAllocator, "VUID-vkDestroyPipelineCache-pipelineCache-00771", "VUID-vkDestroyPipelineCache-pipelineCache-00772");
1025*b7893ccfSSadaf Ebrahimi
1026*b7893ccfSSadaf Ebrahimi return skip;
1027*b7893ccfSSadaf Ebrahimi }
1028*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)1029*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyPipelineCache(
1030*b7893ccfSSadaf Ebrahimi VkDevice device,
1031*b7893ccfSSadaf Ebrahimi VkPipelineCache pipelineCache,
1032*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1033*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, pipelineCache, kVulkanObjectTypePipelineCache);
1034*b7893ccfSSadaf Ebrahimi
1035*b7893ccfSSadaf Ebrahimi }
1036*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData)1037*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPipelineCacheData(
1038*b7893ccfSSadaf Ebrahimi VkDevice device,
1039*b7893ccfSSadaf Ebrahimi VkPipelineCache pipelineCache,
1040*b7893ccfSSadaf Ebrahimi size_t* pDataSize,
1041*b7893ccfSSadaf Ebrahimi void* pData) {
1042*b7893ccfSSadaf Ebrahimi bool skip = false;
1043*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetPipelineCacheData-device-parameter", kVUIDUndefined);
1044*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pipelineCache, kVulkanObjectTypePipelineCache, false, "VUID-vkGetPipelineCacheData-pipelineCache-parameter", "VUID-vkGetPipelineCacheData-pipelineCache-parent");
1045*b7893ccfSSadaf Ebrahimi
1046*b7893ccfSSadaf Ebrahimi return skip;
1047*b7893ccfSSadaf Ebrahimi }
1048*b7893ccfSSadaf Ebrahimi
PreCallValidateMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches)1049*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateMergePipelineCaches(
1050*b7893ccfSSadaf Ebrahimi VkDevice device,
1051*b7893ccfSSadaf Ebrahimi VkPipelineCache dstCache,
1052*b7893ccfSSadaf Ebrahimi uint32_t srcCacheCount,
1053*b7893ccfSSadaf Ebrahimi const VkPipelineCache* pSrcCaches) {
1054*b7893ccfSSadaf Ebrahimi bool skip = false;
1055*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkMergePipelineCaches-device-parameter", kVUIDUndefined);
1056*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, dstCache, kVulkanObjectTypePipelineCache, false, "VUID-vkMergePipelineCaches-dstCache-parameter", "VUID-vkMergePipelineCaches-dstCache-parent");
1057*b7893ccfSSadaf Ebrahimi if (pSrcCaches) {
1058*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < srcCacheCount; ++index0) {
1059*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pSrcCaches[index0], kVulkanObjectTypePipelineCache, false, "VUID-vkMergePipelineCaches-pSrcCaches-parameter", "VUID-vkMergePipelineCaches-pSrcCaches-parent");
1060*b7893ccfSSadaf Ebrahimi }
1061*b7893ccfSSadaf Ebrahimi }
1062*b7893ccfSSadaf Ebrahimi
1063*b7893ccfSSadaf Ebrahimi return skip;
1064*b7893ccfSSadaf Ebrahimi }
1065*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)1066*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateGraphicsPipelines(
1067*b7893ccfSSadaf Ebrahimi VkDevice device,
1068*b7893ccfSSadaf Ebrahimi VkPipelineCache pipelineCache,
1069*b7893ccfSSadaf Ebrahimi uint32_t createInfoCount,
1070*b7893ccfSSadaf Ebrahimi const VkGraphicsPipelineCreateInfo* pCreateInfos,
1071*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1072*b7893ccfSSadaf Ebrahimi VkPipeline* pPipelines) {
1073*b7893ccfSSadaf Ebrahimi bool skip = false;
1074*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateGraphicsPipelines-device-parameter", kVUIDUndefined);
1075*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pipelineCache, kVulkanObjectTypePipelineCache, true, "VUID-vkCreateGraphicsPipelines-pipelineCache-parameter", "VUID-vkCreateGraphicsPipelines-pipelineCache-parent");
1076*b7893ccfSSadaf Ebrahimi if (pCreateInfos) {
1077*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < createInfoCount; ++index0) {
1078*b7893ccfSSadaf Ebrahimi if (pCreateInfos[index0].pStages) {
1079*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pCreateInfos[index0].stageCount; ++index1) {
1080*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].pStages[index1].module, kVulkanObjectTypeShaderModule, false, "VUID-VkPipelineShaderStageCreateInfo-module-parameter", kVUIDUndefined);
1081*b7893ccfSSadaf Ebrahimi }
1082*b7893ccfSSadaf Ebrahimi }
1083*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].layout, kVulkanObjectTypePipelineLayout, false, "VUID-VkGraphicsPipelineCreateInfo-layout-parameter", "VUID-VkGraphicsPipelineCreateInfo-commonparent");
1084*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].renderPass, kVulkanObjectTypeRenderPass, false, "VUID-VkGraphicsPipelineCreateInfo-renderPass-parameter", "VUID-VkGraphicsPipelineCreateInfo-commonparent");
1085*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].basePipelineHandle, kVulkanObjectTypePipeline, true, kVUIDUndefined, "VUID-VkGraphicsPipelineCreateInfo-commonparent");
1086*b7893ccfSSadaf Ebrahimi }
1087*b7893ccfSSadaf Ebrahimi }
1088*b7893ccfSSadaf Ebrahimi
1089*b7893ccfSSadaf Ebrahimi return skip;
1090*b7893ccfSSadaf Ebrahimi }
1091*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines,VkResult result)1092*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateGraphicsPipelines(
1093*b7893ccfSSadaf Ebrahimi VkDevice device,
1094*b7893ccfSSadaf Ebrahimi VkPipelineCache pipelineCache,
1095*b7893ccfSSadaf Ebrahimi uint32_t createInfoCount,
1096*b7893ccfSSadaf Ebrahimi const VkGraphicsPipelineCreateInfo* pCreateInfos,
1097*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1098*b7893ccfSSadaf Ebrahimi VkPipeline* pPipelines,
1099*b7893ccfSSadaf Ebrahimi VkResult result) {
1100*b7893ccfSSadaf Ebrahimi if (VK_ERROR_VALIDATION_FAILED_EXT == result) return;
1101*b7893ccfSSadaf Ebrahimi if (pPipelines) {
1102*b7893ccfSSadaf Ebrahimi for (uint32_t index = 0; index < createInfoCount; index++) {
1103*b7893ccfSSadaf Ebrahimi if (!pPipelines[index]) continue;
1104*b7893ccfSSadaf Ebrahimi CreateObject(device, pPipelines[index], kVulkanObjectTypePipeline, pAllocator);
1105*b7893ccfSSadaf Ebrahimi }
1106*b7893ccfSSadaf Ebrahimi }
1107*b7893ccfSSadaf Ebrahimi
1108*b7893ccfSSadaf Ebrahimi }
1109*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)1110*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateComputePipelines(
1111*b7893ccfSSadaf Ebrahimi VkDevice device,
1112*b7893ccfSSadaf Ebrahimi VkPipelineCache pipelineCache,
1113*b7893ccfSSadaf Ebrahimi uint32_t createInfoCount,
1114*b7893ccfSSadaf Ebrahimi const VkComputePipelineCreateInfo* pCreateInfos,
1115*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1116*b7893ccfSSadaf Ebrahimi VkPipeline* pPipelines) {
1117*b7893ccfSSadaf Ebrahimi bool skip = false;
1118*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateComputePipelines-device-parameter", kVUIDUndefined);
1119*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pipelineCache, kVulkanObjectTypePipelineCache, true, "VUID-vkCreateComputePipelines-pipelineCache-parameter", "VUID-vkCreateComputePipelines-pipelineCache-parent");
1120*b7893ccfSSadaf Ebrahimi if (pCreateInfos) {
1121*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < createInfoCount; ++index0) {
1122*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].stage.module, kVulkanObjectTypeShaderModule, false, "VUID-VkPipelineShaderStageCreateInfo-module-parameter", kVUIDUndefined);
1123*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].layout, kVulkanObjectTypePipelineLayout, false, "VUID-VkComputePipelineCreateInfo-layout-parameter", "VUID-VkComputePipelineCreateInfo-commonparent");
1124*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].basePipelineHandle, kVulkanObjectTypePipeline, true, kVUIDUndefined, "VUID-VkComputePipelineCreateInfo-commonparent");
1125*b7893ccfSSadaf Ebrahimi }
1126*b7893ccfSSadaf Ebrahimi }
1127*b7893ccfSSadaf Ebrahimi
1128*b7893ccfSSadaf Ebrahimi return skip;
1129*b7893ccfSSadaf Ebrahimi }
1130*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines,VkResult result)1131*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateComputePipelines(
1132*b7893ccfSSadaf Ebrahimi VkDevice device,
1133*b7893ccfSSadaf Ebrahimi VkPipelineCache pipelineCache,
1134*b7893ccfSSadaf Ebrahimi uint32_t createInfoCount,
1135*b7893ccfSSadaf Ebrahimi const VkComputePipelineCreateInfo* pCreateInfos,
1136*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1137*b7893ccfSSadaf Ebrahimi VkPipeline* pPipelines,
1138*b7893ccfSSadaf Ebrahimi VkResult result) {
1139*b7893ccfSSadaf Ebrahimi if (VK_ERROR_VALIDATION_FAILED_EXT == result) return;
1140*b7893ccfSSadaf Ebrahimi if (pPipelines) {
1141*b7893ccfSSadaf Ebrahimi for (uint32_t index = 0; index < createInfoCount; index++) {
1142*b7893ccfSSadaf Ebrahimi if (!pPipelines[index]) continue;
1143*b7893ccfSSadaf Ebrahimi CreateObject(device, pPipelines[index], kVulkanObjectTypePipeline, pAllocator);
1144*b7893ccfSSadaf Ebrahimi }
1145*b7893ccfSSadaf Ebrahimi }
1146*b7893ccfSSadaf Ebrahimi
1147*b7893ccfSSadaf Ebrahimi }
1148*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)1149*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyPipeline(
1150*b7893ccfSSadaf Ebrahimi VkDevice device,
1151*b7893ccfSSadaf Ebrahimi VkPipeline pipeline,
1152*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1153*b7893ccfSSadaf Ebrahimi bool skip = false;
1154*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyPipeline-device-parameter", kVUIDUndefined);
1155*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pipeline, kVulkanObjectTypePipeline, true, "VUID-vkDestroyPipeline-pipeline-parameter", "VUID-vkDestroyPipeline-pipeline-parent");
1156*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, pipeline, kVulkanObjectTypePipeline, pAllocator, "VUID-vkDestroyPipeline-pipeline-00766", "VUID-vkDestroyPipeline-pipeline-00767");
1157*b7893ccfSSadaf Ebrahimi
1158*b7893ccfSSadaf Ebrahimi return skip;
1159*b7893ccfSSadaf Ebrahimi }
1160*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)1161*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyPipeline(
1162*b7893ccfSSadaf Ebrahimi VkDevice device,
1163*b7893ccfSSadaf Ebrahimi VkPipeline pipeline,
1164*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1165*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, pipeline, kVulkanObjectTypePipeline);
1166*b7893ccfSSadaf Ebrahimi
1167*b7893ccfSSadaf Ebrahimi }
1168*b7893ccfSSadaf Ebrahimi
PreCallValidateCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout)1169*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreatePipelineLayout(
1170*b7893ccfSSadaf Ebrahimi VkDevice device,
1171*b7893ccfSSadaf Ebrahimi const VkPipelineLayoutCreateInfo* pCreateInfo,
1172*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1173*b7893ccfSSadaf Ebrahimi VkPipelineLayout* pPipelineLayout) {
1174*b7893ccfSSadaf Ebrahimi bool skip = false;
1175*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreatePipelineLayout-device-parameter", kVUIDUndefined);
1176*b7893ccfSSadaf Ebrahimi if (pCreateInfo) {
1177*b7893ccfSSadaf Ebrahimi if (pCreateInfo->pSetLayouts) {
1178*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pCreateInfo->setLayoutCount; ++index1) {
1179*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->pSetLayouts[index1], kVulkanObjectTypeDescriptorSetLayout, false, "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameter", kVUIDUndefined);
1180*b7893ccfSSadaf Ebrahimi }
1181*b7893ccfSSadaf Ebrahimi }
1182*b7893ccfSSadaf Ebrahimi }
1183*b7893ccfSSadaf Ebrahimi
1184*b7893ccfSSadaf Ebrahimi return skip;
1185*b7893ccfSSadaf Ebrahimi }
1186*b7893ccfSSadaf Ebrahimi
PostCallRecordCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout,VkResult result)1187*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreatePipelineLayout(
1188*b7893ccfSSadaf Ebrahimi VkDevice device,
1189*b7893ccfSSadaf Ebrahimi const VkPipelineLayoutCreateInfo* pCreateInfo,
1190*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1191*b7893ccfSSadaf Ebrahimi VkPipelineLayout* pPipelineLayout,
1192*b7893ccfSSadaf Ebrahimi VkResult result) {
1193*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
1194*b7893ccfSSadaf Ebrahimi CreateObject(device, *pPipelineLayout, kVulkanObjectTypePipelineLayout, pAllocator);
1195*b7893ccfSSadaf Ebrahimi
1196*b7893ccfSSadaf Ebrahimi }
1197*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)1198*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyPipelineLayout(
1199*b7893ccfSSadaf Ebrahimi VkDevice device,
1200*b7893ccfSSadaf Ebrahimi VkPipelineLayout pipelineLayout,
1201*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1202*b7893ccfSSadaf Ebrahimi bool skip = false;
1203*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyPipelineLayout-device-parameter", kVUIDUndefined);
1204*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pipelineLayout, kVulkanObjectTypePipelineLayout, true, "VUID-vkDestroyPipelineLayout-pipelineLayout-parameter", "VUID-vkDestroyPipelineLayout-pipelineLayout-parent");
1205*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, pipelineLayout, kVulkanObjectTypePipelineLayout, pAllocator, "VUID-vkDestroyPipelineLayout-pipelineLayout-00299", "VUID-vkDestroyPipelineLayout-pipelineLayout-00300");
1206*b7893ccfSSadaf Ebrahimi
1207*b7893ccfSSadaf Ebrahimi return skip;
1208*b7893ccfSSadaf Ebrahimi }
1209*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)1210*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyPipelineLayout(
1211*b7893ccfSSadaf Ebrahimi VkDevice device,
1212*b7893ccfSSadaf Ebrahimi VkPipelineLayout pipelineLayout,
1213*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1214*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, pipelineLayout, kVulkanObjectTypePipelineLayout);
1215*b7893ccfSSadaf Ebrahimi
1216*b7893ccfSSadaf Ebrahimi }
1217*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler)1218*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateSampler(
1219*b7893ccfSSadaf Ebrahimi VkDevice device,
1220*b7893ccfSSadaf Ebrahimi const VkSamplerCreateInfo* pCreateInfo,
1221*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1222*b7893ccfSSadaf Ebrahimi VkSampler* pSampler) {
1223*b7893ccfSSadaf Ebrahimi bool skip = false;
1224*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateSampler-device-parameter", kVUIDUndefined);
1225*b7893ccfSSadaf Ebrahimi
1226*b7893ccfSSadaf Ebrahimi return skip;
1227*b7893ccfSSadaf Ebrahimi }
1228*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler,VkResult result)1229*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateSampler(
1230*b7893ccfSSadaf Ebrahimi VkDevice device,
1231*b7893ccfSSadaf Ebrahimi const VkSamplerCreateInfo* pCreateInfo,
1232*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1233*b7893ccfSSadaf Ebrahimi VkSampler* pSampler,
1234*b7893ccfSSadaf Ebrahimi VkResult result) {
1235*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
1236*b7893ccfSSadaf Ebrahimi CreateObject(device, *pSampler, kVulkanObjectTypeSampler, pAllocator);
1237*b7893ccfSSadaf Ebrahimi
1238*b7893ccfSSadaf Ebrahimi }
1239*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)1240*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroySampler(
1241*b7893ccfSSadaf Ebrahimi VkDevice device,
1242*b7893ccfSSadaf Ebrahimi VkSampler sampler,
1243*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1244*b7893ccfSSadaf Ebrahimi bool skip = false;
1245*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroySampler-device-parameter", kVUIDUndefined);
1246*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, sampler, kVulkanObjectTypeSampler, true, "VUID-vkDestroySampler-sampler-parameter", "VUID-vkDestroySampler-sampler-parent");
1247*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, sampler, kVulkanObjectTypeSampler, pAllocator, "VUID-vkDestroySampler-sampler-01083", "VUID-vkDestroySampler-sampler-01084");
1248*b7893ccfSSadaf Ebrahimi
1249*b7893ccfSSadaf Ebrahimi return skip;
1250*b7893ccfSSadaf Ebrahimi }
1251*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)1252*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroySampler(
1253*b7893ccfSSadaf Ebrahimi VkDevice device,
1254*b7893ccfSSadaf Ebrahimi VkSampler sampler,
1255*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1256*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, sampler, kVulkanObjectTypeSampler);
1257*b7893ccfSSadaf Ebrahimi
1258*b7893ccfSSadaf Ebrahimi }
1259*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)1260*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyDescriptorSetLayout(
1261*b7893ccfSSadaf Ebrahimi VkDevice device,
1262*b7893ccfSSadaf Ebrahimi VkDescriptorSetLayout descriptorSetLayout,
1263*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1264*b7893ccfSSadaf Ebrahimi bool skip = false;
1265*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyDescriptorSetLayout-device-parameter", kVUIDUndefined);
1266*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, descriptorSetLayout, kVulkanObjectTypeDescriptorSetLayout, true, "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameter", "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parent");
1267*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, descriptorSetLayout, kVulkanObjectTypeDescriptorSetLayout, pAllocator, "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284", "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285");
1268*b7893ccfSSadaf Ebrahimi
1269*b7893ccfSSadaf Ebrahimi return skip;
1270*b7893ccfSSadaf Ebrahimi }
1271*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)1272*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyDescriptorSetLayout(
1273*b7893ccfSSadaf Ebrahimi VkDevice device,
1274*b7893ccfSSadaf Ebrahimi VkDescriptorSetLayout descriptorSetLayout,
1275*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1276*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, descriptorSetLayout, kVulkanObjectTypeDescriptorSetLayout);
1277*b7893ccfSSadaf Ebrahimi
1278*b7893ccfSSadaf Ebrahimi }
1279*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)1280*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateDescriptorPool(
1281*b7893ccfSSadaf Ebrahimi VkDevice device,
1282*b7893ccfSSadaf Ebrahimi const VkDescriptorPoolCreateInfo* pCreateInfo,
1283*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1284*b7893ccfSSadaf Ebrahimi VkDescriptorPool* pDescriptorPool) {
1285*b7893ccfSSadaf Ebrahimi bool skip = false;
1286*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateDescriptorPool-device-parameter", kVUIDUndefined);
1287*b7893ccfSSadaf Ebrahimi
1288*b7893ccfSSadaf Ebrahimi return skip;
1289*b7893ccfSSadaf Ebrahimi }
1290*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool,VkResult result)1291*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateDescriptorPool(
1292*b7893ccfSSadaf Ebrahimi VkDevice device,
1293*b7893ccfSSadaf Ebrahimi const VkDescriptorPoolCreateInfo* pCreateInfo,
1294*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1295*b7893ccfSSadaf Ebrahimi VkDescriptorPool* pDescriptorPool,
1296*b7893ccfSSadaf Ebrahimi VkResult result) {
1297*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
1298*b7893ccfSSadaf Ebrahimi CreateObject(device, *pDescriptorPool, kVulkanObjectTypeDescriptorPool, pAllocator);
1299*b7893ccfSSadaf Ebrahimi
1300*b7893ccfSSadaf Ebrahimi }
1301*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)1302*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyFramebuffer(
1303*b7893ccfSSadaf Ebrahimi VkDevice device,
1304*b7893ccfSSadaf Ebrahimi VkFramebuffer framebuffer,
1305*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1306*b7893ccfSSadaf Ebrahimi bool skip = false;
1307*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyFramebuffer-device-parameter", kVUIDUndefined);
1308*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, framebuffer, kVulkanObjectTypeFramebuffer, true, "VUID-vkDestroyFramebuffer-framebuffer-parameter", "VUID-vkDestroyFramebuffer-framebuffer-parent");
1309*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, framebuffer, kVulkanObjectTypeFramebuffer, pAllocator, "VUID-vkDestroyFramebuffer-framebuffer-00893", "VUID-vkDestroyFramebuffer-framebuffer-00894");
1310*b7893ccfSSadaf Ebrahimi
1311*b7893ccfSSadaf Ebrahimi return skip;
1312*b7893ccfSSadaf Ebrahimi }
1313*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)1314*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyFramebuffer(
1315*b7893ccfSSadaf Ebrahimi VkDevice device,
1316*b7893ccfSSadaf Ebrahimi VkFramebuffer framebuffer,
1317*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1318*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, framebuffer, kVulkanObjectTypeFramebuffer);
1319*b7893ccfSSadaf Ebrahimi
1320*b7893ccfSSadaf Ebrahimi }
1321*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)1322*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateRenderPass(
1323*b7893ccfSSadaf Ebrahimi VkDevice device,
1324*b7893ccfSSadaf Ebrahimi const VkRenderPassCreateInfo* pCreateInfo,
1325*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1326*b7893ccfSSadaf Ebrahimi VkRenderPass* pRenderPass) {
1327*b7893ccfSSadaf Ebrahimi bool skip = false;
1328*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateRenderPass-device-parameter", kVUIDUndefined);
1329*b7893ccfSSadaf Ebrahimi
1330*b7893ccfSSadaf Ebrahimi return skip;
1331*b7893ccfSSadaf Ebrahimi }
1332*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass,VkResult result)1333*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateRenderPass(
1334*b7893ccfSSadaf Ebrahimi VkDevice device,
1335*b7893ccfSSadaf Ebrahimi const VkRenderPassCreateInfo* pCreateInfo,
1336*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1337*b7893ccfSSadaf Ebrahimi VkRenderPass* pRenderPass,
1338*b7893ccfSSadaf Ebrahimi VkResult result) {
1339*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
1340*b7893ccfSSadaf Ebrahimi CreateObject(device, *pRenderPass, kVulkanObjectTypeRenderPass, pAllocator);
1341*b7893ccfSSadaf Ebrahimi
1342*b7893ccfSSadaf Ebrahimi }
1343*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)1344*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyRenderPass(
1345*b7893ccfSSadaf Ebrahimi VkDevice device,
1346*b7893ccfSSadaf Ebrahimi VkRenderPass renderPass,
1347*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1348*b7893ccfSSadaf Ebrahimi bool skip = false;
1349*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyRenderPass-device-parameter", kVUIDUndefined);
1350*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, renderPass, kVulkanObjectTypeRenderPass, true, "VUID-vkDestroyRenderPass-renderPass-parameter", "VUID-vkDestroyRenderPass-renderPass-parent");
1351*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, renderPass, kVulkanObjectTypeRenderPass, pAllocator, "VUID-vkDestroyRenderPass-renderPass-00874", "VUID-vkDestroyRenderPass-renderPass-00875");
1352*b7893ccfSSadaf Ebrahimi
1353*b7893ccfSSadaf Ebrahimi return skip;
1354*b7893ccfSSadaf Ebrahimi }
1355*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)1356*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyRenderPass(
1357*b7893ccfSSadaf Ebrahimi VkDevice device,
1358*b7893ccfSSadaf Ebrahimi VkRenderPass renderPass,
1359*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
1360*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, renderPass, kVulkanObjectTypeRenderPass);
1361*b7893ccfSSadaf Ebrahimi
1362*b7893ccfSSadaf Ebrahimi }
1363*b7893ccfSSadaf Ebrahimi
PreCallValidateGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)1364*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetRenderAreaGranularity(
1365*b7893ccfSSadaf Ebrahimi VkDevice device,
1366*b7893ccfSSadaf Ebrahimi VkRenderPass renderPass,
1367*b7893ccfSSadaf Ebrahimi VkExtent2D* pGranularity) {
1368*b7893ccfSSadaf Ebrahimi bool skip = false;
1369*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetRenderAreaGranularity-device-parameter", kVUIDUndefined);
1370*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, renderPass, kVulkanObjectTypeRenderPass, false, "VUID-vkGetRenderAreaGranularity-renderPass-parameter", "VUID-vkGetRenderAreaGranularity-renderPass-parent");
1371*b7893ccfSSadaf Ebrahimi
1372*b7893ccfSSadaf Ebrahimi return skip;
1373*b7893ccfSSadaf Ebrahimi }
1374*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)1375*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateCommandPool(
1376*b7893ccfSSadaf Ebrahimi VkDevice device,
1377*b7893ccfSSadaf Ebrahimi const VkCommandPoolCreateInfo* pCreateInfo,
1378*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1379*b7893ccfSSadaf Ebrahimi VkCommandPool* pCommandPool) {
1380*b7893ccfSSadaf Ebrahimi bool skip = false;
1381*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateCommandPool-device-parameter", kVUIDUndefined);
1382*b7893ccfSSadaf Ebrahimi
1383*b7893ccfSSadaf Ebrahimi return skip;
1384*b7893ccfSSadaf Ebrahimi }
1385*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool,VkResult result)1386*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateCommandPool(
1387*b7893ccfSSadaf Ebrahimi VkDevice device,
1388*b7893ccfSSadaf Ebrahimi const VkCommandPoolCreateInfo* pCreateInfo,
1389*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
1390*b7893ccfSSadaf Ebrahimi VkCommandPool* pCommandPool,
1391*b7893ccfSSadaf Ebrahimi VkResult result) {
1392*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
1393*b7893ccfSSadaf Ebrahimi CreateObject(device, *pCommandPool, kVulkanObjectTypeCommandPool, pAllocator);
1394*b7893ccfSSadaf Ebrahimi
1395*b7893ccfSSadaf Ebrahimi }
1396*b7893ccfSSadaf Ebrahimi
PreCallValidateResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)1397*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateResetCommandPool(
1398*b7893ccfSSadaf Ebrahimi VkDevice device,
1399*b7893ccfSSadaf Ebrahimi VkCommandPool commandPool,
1400*b7893ccfSSadaf Ebrahimi VkCommandPoolResetFlags flags) {
1401*b7893ccfSSadaf Ebrahimi bool skip = false;
1402*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkResetCommandPool-device-parameter", kVUIDUndefined);
1403*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, commandPool, kVulkanObjectTypeCommandPool, false, "VUID-vkResetCommandPool-commandPool-parameter", "VUID-vkResetCommandPool-commandPool-parent");
1404*b7893ccfSSadaf Ebrahimi
1405*b7893ccfSSadaf Ebrahimi return skip;
1406*b7893ccfSSadaf Ebrahimi }
1407*b7893ccfSSadaf Ebrahimi
PreCallValidateEndCommandBuffer(VkCommandBuffer commandBuffer)1408*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateEndCommandBuffer(
1409*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer) {
1410*b7893ccfSSadaf Ebrahimi bool skip = false;
1411*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkEndCommandBuffer-commandBuffer-parameter", kVUIDUndefined);
1412*b7893ccfSSadaf Ebrahimi
1413*b7893ccfSSadaf Ebrahimi return skip;
1414*b7893ccfSSadaf Ebrahimi }
1415*b7893ccfSSadaf Ebrahimi
PreCallValidateResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)1416*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateResetCommandBuffer(
1417*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1418*b7893ccfSSadaf Ebrahimi VkCommandBufferResetFlags flags) {
1419*b7893ccfSSadaf Ebrahimi bool skip = false;
1420*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkResetCommandBuffer-commandBuffer-parameter", kVUIDUndefined);
1421*b7893ccfSSadaf Ebrahimi
1422*b7893ccfSSadaf Ebrahimi return skip;
1423*b7893ccfSSadaf Ebrahimi }
1424*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)1425*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBindPipeline(
1426*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1427*b7893ccfSSadaf Ebrahimi VkPipelineBindPoint pipelineBindPoint,
1428*b7893ccfSSadaf Ebrahimi VkPipeline pipeline) {
1429*b7893ccfSSadaf Ebrahimi bool skip = false;
1430*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBindPipeline-commandBuffer-parameter", "VUID-vkCmdBindPipeline-commonparent");
1431*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pipeline, kVulkanObjectTypePipeline, false, "VUID-vkCmdBindPipeline-pipeline-parameter", "VUID-vkCmdBindPipeline-commonparent");
1432*b7893ccfSSadaf Ebrahimi
1433*b7893ccfSSadaf Ebrahimi return skip;
1434*b7893ccfSSadaf Ebrahimi }
1435*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)1436*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetViewport(
1437*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1438*b7893ccfSSadaf Ebrahimi uint32_t firstViewport,
1439*b7893ccfSSadaf Ebrahimi uint32_t viewportCount,
1440*b7893ccfSSadaf Ebrahimi const VkViewport* pViewports) {
1441*b7893ccfSSadaf Ebrahimi bool skip = false;
1442*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetViewport-commandBuffer-parameter", kVUIDUndefined);
1443*b7893ccfSSadaf Ebrahimi
1444*b7893ccfSSadaf Ebrahimi return skip;
1445*b7893ccfSSadaf Ebrahimi }
1446*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)1447*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetScissor(
1448*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1449*b7893ccfSSadaf Ebrahimi uint32_t firstScissor,
1450*b7893ccfSSadaf Ebrahimi uint32_t scissorCount,
1451*b7893ccfSSadaf Ebrahimi const VkRect2D* pScissors) {
1452*b7893ccfSSadaf Ebrahimi bool skip = false;
1453*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetScissor-commandBuffer-parameter", kVUIDUndefined);
1454*b7893ccfSSadaf Ebrahimi
1455*b7893ccfSSadaf Ebrahimi return skip;
1456*b7893ccfSSadaf Ebrahimi }
1457*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth)1458*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetLineWidth(
1459*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1460*b7893ccfSSadaf Ebrahimi float lineWidth) {
1461*b7893ccfSSadaf Ebrahimi bool skip = false;
1462*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetLineWidth-commandBuffer-parameter", kVUIDUndefined);
1463*b7893ccfSSadaf Ebrahimi
1464*b7893ccfSSadaf Ebrahimi return skip;
1465*b7893ccfSSadaf Ebrahimi }
1466*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor)1467*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetDepthBias(
1468*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1469*b7893ccfSSadaf Ebrahimi float depthBiasConstantFactor,
1470*b7893ccfSSadaf Ebrahimi float depthBiasClamp,
1471*b7893ccfSSadaf Ebrahimi float depthBiasSlopeFactor) {
1472*b7893ccfSSadaf Ebrahimi bool skip = false;
1473*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetDepthBias-commandBuffer-parameter", kVUIDUndefined);
1474*b7893ccfSSadaf Ebrahimi
1475*b7893ccfSSadaf Ebrahimi return skip;
1476*b7893ccfSSadaf Ebrahimi }
1477*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4])1478*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetBlendConstants(
1479*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1480*b7893ccfSSadaf Ebrahimi const float blendConstants[4]) {
1481*b7893ccfSSadaf Ebrahimi bool skip = false;
1482*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetBlendConstants-commandBuffer-parameter", kVUIDUndefined);
1483*b7893ccfSSadaf Ebrahimi
1484*b7893ccfSSadaf Ebrahimi return skip;
1485*b7893ccfSSadaf Ebrahimi }
1486*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds)1487*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetDepthBounds(
1488*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1489*b7893ccfSSadaf Ebrahimi float minDepthBounds,
1490*b7893ccfSSadaf Ebrahimi float maxDepthBounds) {
1491*b7893ccfSSadaf Ebrahimi bool skip = false;
1492*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetDepthBounds-commandBuffer-parameter", kVUIDUndefined);
1493*b7893ccfSSadaf Ebrahimi
1494*b7893ccfSSadaf Ebrahimi return skip;
1495*b7893ccfSSadaf Ebrahimi }
1496*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask)1497*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetStencilCompareMask(
1498*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1499*b7893ccfSSadaf Ebrahimi VkStencilFaceFlags faceMask,
1500*b7893ccfSSadaf Ebrahimi uint32_t compareMask) {
1501*b7893ccfSSadaf Ebrahimi bool skip = false;
1502*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter", kVUIDUndefined);
1503*b7893ccfSSadaf Ebrahimi
1504*b7893ccfSSadaf Ebrahimi return skip;
1505*b7893ccfSSadaf Ebrahimi }
1506*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask)1507*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetStencilWriteMask(
1508*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1509*b7893ccfSSadaf Ebrahimi VkStencilFaceFlags faceMask,
1510*b7893ccfSSadaf Ebrahimi uint32_t writeMask) {
1511*b7893ccfSSadaf Ebrahimi bool skip = false;
1512*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter", kVUIDUndefined);
1513*b7893ccfSSadaf Ebrahimi
1514*b7893ccfSSadaf Ebrahimi return skip;
1515*b7893ccfSSadaf Ebrahimi }
1516*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference)1517*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetStencilReference(
1518*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1519*b7893ccfSSadaf Ebrahimi VkStencilFaceFlags faceMask,
1520*b7893ccfSSadaf Ebrahimi uint32_t reference) {
1521*b7893ccfSSadaf Ebrahimi bool skip = false;
1522*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetStencilReference-commandBuffer-parameter", kVUIDUndefined);
1523*b7893ccfSSadaf Ebrahimi
1524*b7893ccfSSadaf Ebrahimi return skip;
1525*b7893ccfSSadaf Ebrahimi }
1526*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)1527*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBindDescriptorSets(
1528*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1529*b7893ccfSSadaf Ebrahimi VkPipelineBindPoint pipelineBindPoint,
1530*b7893ccfSSadaf Ebrahimi VkPipelineLayout layout,
1531*b7893ccfSSadaf Ebrahimi uint32_t firstSet,
1532*b7893ccfSSadaf Ebrahimi uint32_t descriptorSetCount,
1533*b7893ccfSSadaf Ebrahimi const VkDescriptorSet* pDescriptorSets,
1534*b7893ccfSSadaf Ebrahimi uint32_t dynamicOffsetCount,
1535*b7893ccfSSadaf Ebrahimi const uint32_t* pDynamicOffsets) {
1536*b7893ccfSSadaf Ebrahimi bool skip = false;
1537*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBindDescriptorSets-commandBuffer-parameter", "VUID-vkCmdBindDescriptorSets-commonparent");
1538*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, layout, kVulkanObjectTypePipelineLayout, false, "VUID-vkCmdBindDescriptorSets-layout-parameter", "VUID-vkCmdBindDescriptorSets-commonparent");
1539*b7893ccfSSadaf Ebrahimi if (pDescriptorSets) {
1540*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < descriptorSetCount; ++index0) {
1541*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pDescriptorSets[index0], kVulkanObjectTypeDescriptorSet, false, "VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter", "VUID-vkCmdBindDescriptorSets-commonparent");
1542*b7893ccfSSadaf Ebrahimi }
1543*b7893ccfSSadaf Ebrahimi }
1544*b7893ccfSSadaf Ebrahimi
1545*b7893ccfSSadaf Ebrahimi return skip;
1546*b7893ccfSSadaf Ebrahimi }
1547*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)1548*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBindIndexBuffer(
1549*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1550*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
1551*b7893ccfSSadaf Ebrahimi VkDeviceSize offset,
1552*b7893ccfSSadaf Ebrahimi VkIndexType indexType) {
1553*b7893ccfSSadaf Ebrahimi bool skip = false;
1554*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBindIndexBuffer-commandBuffer-parameter", "VUID-vkCmdBindIndexBuffer-commonparent");
1555*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdBindIndexBuffer-buffer-parameter", "VUID-vkCmdBindIndexBuffer-commonparent");
1556*b7893ccfSSadaf Ebrahimi
1557*b7893ccfSSadaf Ebrahimi return skip;
1558*b7893ccfSSadaf Ebrahimi }
1559*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)1560*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBindVertexBuffers(
1561*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1562*b7893ccfSSadaf Ebrahimi uint32_t firstBinding,
1563*b7893ccfSSadaf Ebrahimi uint32_t bindingCount,
1564*b7893ccfSSadaf Ebrahimi const VkBuffer* pBuffers,
1565*b7893ccfSSadaf Ebrahimi const VkDeviceSize* pOffsets) {
1566*b7893ccfSSadaf Ebrahimi bool skip = false;
1567*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBindVertexBuffers-commandBuffer-parameter", "VUID-vkCmdBindVertexBuffers-commonparent");
1568*b7893ccfSSadaf Ebrahimi if (pBuffers) {
1569*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < bindingCount; ++index0) {
1570*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pBuffers[index0], kVulkanObjectTypeBuffer, false, "VUID-vkCmdBindVertexBuffers-pBuffers-parameter", "VUID-vkCmdBindVertexBuffers-commonparent");
1571*b7893ccfSSadaf Ebrahimi }
1572*b7893ccfSSadaf Ebrahimi }
1573*b7893ccfSSadaf Ebrahimi
1574*b7893ccfSSadaf Ebrahimi return skip;
1575*b7893ccfSSadaf Ebrahimi }
1576*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)1577*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDraw(
1578*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1579*b7893ccfSSadaf Ebrahimi uint32_t vertexCount,
1580*b7893ccfSSadaf Ebrahimi uint32_t instanceCount,
1581*b7893ccfSSadaf Ebrahimi uint32_t firstVertex,
1582*b7893ccfSSadaf Ebrahimi uint32_t firstInstance) {
1583*b7893ccfSSadaf Ebrahimi bool skip = false;
1584*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDraw-commandBuffer-parameter", kVUIDUndefined);
1585*b7893ccfSSadaf Ebrahimi
1586*b7893ccfSSadaf Ebrahimi return skip;
1587*b7893ccfSSadaf Ebrahimi }
1588*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)1589*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawIndexed(
1590*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1591*b7893ccfSSadaf Ebrahimi uint32_t indexCount,
1592*b7893ccfSSadaf Ebrahimi uint32_t instanceCount,
1593*b7893ccfSSadaf Ebrahimi uint32_t firstIndex,
1594*b7893ccfSSadaf Ebrahimi int32_t vertexOffset,
1595*b7893ccfSSadaf Ebrahimi uint32_t firstInstance) {
1596*b7893ccfSSadaf Ebrahimi bool skip = false;
1597*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawIndexed-commandBuffer-parameter", kVUIDUndefined);
1598*b7893ccfSSadaf Ebrahimi
1599*b7893ccfSSadaf Ebrahimi return skip;
1600*b7893ccfSSadaf Ebrahimi }
1601*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1602*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawIndirect(
1603*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1604*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
1605*b7893ccfSSadaf Ebrahimi VkDeviceSize offset,
1606*b7893ccfSSadaf Ebrahimi uint32_t drawCount,
1607*b7893ccfSSadaf Ebrahimi uint32_t stride) {
1608*b7893ccfSSadaf Ebrahimi bool skip = false;
1609*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawIndirect-commandBuffer-parameter", "VUID-vkCmdDrawIndirect-commonparent");
1610*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndirect-buffer-parameter", "VUID-vkCmdDrawIndirect-commonparent");
1611*b7893ccfSSadaf Ebrahimi
1612*b7893ccfSSadaf Ebrahimi return skip;
1613*b7893ccfSSadaf Ebrahimi }
1614*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1615*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawIndexedIndirect(
1616*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1617*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
1618*b7893ccfSSadaf Ebrahimi VkDeviceSize offset,
1619*b7893ccfSSadaf Ebrahimi uint32_t drawCount,
1620*b7893ccfSSadaf Ebrahimi uint32_t stride) {
1621*b7893ccfSSadaf Ebrahimi bool skip = false;
1622*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter", "VUID-vkCmdDrawIndexedIndirect-commonparent");
1623*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndexedIndirect-buffer-parameter", "VUID-vkCmdDrawIndexedIndirect-commonparent");
1624*b7893ccfSSadaf Ebrahimi
1625*b7893ccfSSadaf Ebrahimi return skip;
1626*b7893ccfSSadaf Ebrahimi }
1627*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1628*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDispatch(
1629*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1630*b7893ccfSSadaf Ebrahimi uint32_t groupCountX,
1631*b7893ccfSSadaf Ebrahimi uint32_t groupCountY,
1632*b7893ccfSSadaf Ebrahimi uint32_t groupCountZ) {
1633*b7893ccfSSadaf Ebrahimi bool skip = false;
1634*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDispatch-commandBuffer-parameter", kVUIDUndefined);
1635*b7893ccfSSadaf Ebrahimi
1636*b7893ccfSSadaf Ebrahimi return skip;
1637*b7893ccfSSadaf Ebrahimi }
1638*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)1639*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDispatchIndirect(
1640*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1641*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
1642*b7893ccfSSadaf Ebrahimi VkDeviceSize offset) {
1643*b7893ccfSSadaf Ebrahimi bool skip = false;
1644*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDispatchIndirect-commandBuffer-parameter", "VUID-vkCmdDispatchIndirect-commonparent");
1645*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDispatchIndirect-buffer-parameter", "VUID-vkCmdDispatchIndirect-commonparent");
1646*b7893ccfSSadaf Ebrahimi
1647*b7893ccfSSadaf Ebrahimi return skip;
1648*b7893ccfSSadaf Ebrahimi }
1649*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)1650*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdCopyBuffer(
1651*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1652*b7893ccfSSadaf Ebrahimi VkBuffer srcBuffer,
1653*b7893ccfSSadaf Ebrahimi VkBuffer dstBuffer,
1654*b7893ccfSSadaf Ebrahimi uint32_t regionCount,
1655*b7893ccfSSadaf Ebrahimi const VkBufferCopy* pRegions) {
1656*b7893ccfSSadaf Ebrahimi bool skip = false;
1657*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdCopyBuffer-commandBuffer-parameter", "VUID-vkCmdCopyBuffer-commonparent");
1658*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, srcBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdCopyBuffer-srcBuffer-parameter", "VUID-vkCmdCopyBuffer-commonparent");
1659*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdCopyBuffer-dstBuffer-parameter", "VUID-vkCmdCopyBuffer-commonparent");
1660*b7893ccfSSadaf Ebrahimi
1661*b7893ccfSSadaf Ebrahimi return skip;
1662*b7893ccfSSadaf Ebrahimi }
1663*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)1664*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdCopyImage(
1665*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1666*b7893ccfSSadaf Ebrahimi VkImage srcImage,
1667*b7893ccfSSadaf Ebrahimi VkImageLayout srcImageLayout,
1668*b7893ccfSSadaf Ebrahimi VkImage dstImage,
1669*b7893ccfSSadaf Ebrahimi VkImageLayout dstImageLayout,
1670*b7893ccfSSadaf Ebrahimi uint32_t regionCount,
1671*b7893ccfSSadaf Ebrahimi const VkImageCopy* pRegions) {
1672*b7893ccfSSadaf Ebrahimi bool skip = false;
1673*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdCopyImage-commandBuffer-parameter", "VUID-vkCmdCopyImage-commonparent");
1674*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, srcImage, kVulkanObjectTypeImage, false, "VUID-vkCmdCopyImage-srcImage-parameter", "VUID-vkCmdCopyImage-commonparent");
1675*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dstImage, kVulkanObjectTypeImage, false, "VUID-vkCmdCopyImage-dstImage-parameter", "VUID-vkCmdCopyImage-commonparent");
1676*b7893ccfSSadaf Ebrahimi
1677*b7893ccfSSadaf Ebrahimi return skip;
1678*b7893ccfSSadaf Ebrahimi }
1679*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)1680*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBlitImage(
1681*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1682*b7893ccfSSadaf Ebrahimi VkImage srcImage,
1683*b7893ccfSSadaf Ebrahimi VkImageLayout srcImageLayout,
1684*b7893ccfSSadaf Ebrahimi VkImage dstImage,
1685*b7893ccfSSadaf Ebrahimi VkImageLayout dstImageLayout,
1686*b7893ccfSSadaf Ebrahimi uint32_t regionCount,
1687*b7893ccfSSadaf Ebrahimi const VkImageBlit* pRegions,
1688*b7893ccfSSadaf Ebrahimi VkFilter filter) {
1689*b7893ccfSSadaf Ebrahimi bool skip = false;
1690*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBlitImage-commandBuffer-parameter", "VUID-vkCmdBlitImage-commonparent");
1691*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, srcImage, kVulkanObjectTypeImage, false, "VUID-vkCmdBlitImage-srcImage-parameter", "VUID-vkCmdBlitImage-commonparent");
1692*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dstImage, kVulkanObjectTypeImage, false, "VUID-vkCmdBlitImage-dstImage-parameter", "VUID-vkCmdBlitImage-commonparent");
1693*b7893ccfSSadaf Ebrahimi
1694*b7893ccfSSadaf Ebrahimi return skip;
1695*b7893ccfSSadaf Ebrahimi }
1696*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)1697*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdCopyBufferToImage(
1698*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1699*b7893ccfSSadaf Ebrahimi VkBuffer srcBuffer,
1700*b7893ccfSSadaf Ebrahimi VkImage dstImage,
1701*b7893ccfSSadaf Ebrahimi VkImageLayout dstImageLayout,
1702*b7893ccfSSadaf Ebrahimi uint32_t regionCount,
1703*b7893ccfSSadaf Ebrahimi const VkBufferImageCopy* pRegions) {
1704*b7893ccfSSadaf Ebrahimi bool skip = false;
1705*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdCopyBufferToImage-commandBuffer-parameter", "VUID-vkCmdCopyBufferToImage-commonparent");
1706*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, srcBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdCopyBufferToImage-srcBuffer-parameter", "VUID-vkCmdCopyBufferToImage-commonparent");
1707*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dstImage, kVulkanObjectTypeImage, false, "VUID-vkCmdCopyBufferToImage-dstImage-parameter", "VUID-vkCmdCopyBufferToImage-commonparent");
1708*b7893ccfSSadaf Ebrahimi
1709*b7893ccfSSadaf Ebrahimi return skip;
1710*b7893ccfSSadaf Ebrahimi }
1711*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)1712*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdCopyImageToBuffer(
1713*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1714*b7893ccfSSadaf Ebrahimi VkImage srcImage,
1715*b7893ccfSSadaf Ebrahimi VkImageLayout srcImageLayout,
1716*b7893ccfSSadaf Ebrahimi VkBuffer dstBuffer,
1717*b7893ccfSSadaf Ebrahimi uint32_t regionCount,
1718*b7893ccfSSadaf Ebrahimi const VkBufferImageCopy* pRegions) {
1719*b7893ccfSSadaf Ebrahimi bool skip = false;
1720*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter", "VUID-vkCmdCopyImageToBuffer-commonparent");
1721*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, srcImage, kVulkanObjectTypeImage, false, "VUID-vkCmdCopyImageToBuffer-srcImage-parameter", "VUID-vkCmdCopyImageToBuffer-commonparent");
1722*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter", "VUID-vkCmdCopyImageToBuffer-commonparent");
1723*b7893ccfSSadaf Ebrahimi
1724*b7893ccfSSadaf Ebrahimi return skip;
1725*b7893ccfSSadaf Ebrahimi }
1726*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData)1727*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdUpdateBuffer(
1728*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1729*b7893ccfSSadaf Ebrahimi VkBuffer dstBuffer,
1730*b7893ccfSSadaf Ebrahimi VkDeviceSize dstOffset,
1731*b7893ccfSSadaf Ebrahimi VkDeviceSize dataSize,
1732*b7893ccfSSadaf Ebrahimi const void* pData) {
1733*b7893ccfSSadaf Ebrahimi bool skip = false;
1734*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdUpdateBuffer-commandBuffer-parameter", "VUID-vkCmdUpdateBuffer-commonparent");
1735*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdUpdateBuffer-dstBuffer-parameter", "VUID-vkCmdUpdateBuffer-commonparent");
1736*b7893ccfSSadaf Ebrahimi
1737*b7893ccfSSadaf Ebrahimi return skip;
1738*b7893ccfSSadaf Ebrahimi }
1739*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data)1740*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdFillBuffer(
1741*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1742*b7893ccfSSadaf Ebrahimi VkBuffer dstBuffer,
1743*b7893ccfSSadaf Ebrahimi VkDeviceSize dstOffset,
1744*b7893ccfSSadaf Ebrahimi VkDeviceSize size,
1745*b7893ccfSSadaf Ebrahimi uint32_t data) {
1746*b7893ccfSSadaf Ebrahimi bool skip = false;
1747*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdFillBuffer-commandBuffer-parameter", "VUID-vkCmdFillBuffer-commonparent");
1748*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdFillBuffer-dstBuffer-parameter", "VUID-vkCmdFillBuffer-commonparent");
1749*b7893ccfSSadaf Ebrahimi
1750*b7893ccfSSadaf Ebrahimi return skip;
1751*b7893ccfSSadaf Ebrahimi }
1752*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1753*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdClearColorImage(
1754*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1755*b7893ccfSSadaf Ebrahimi VkImage image,
1756*b7893ccfSSadaf Ebrahimi VkImageLayout imageLayout,
1757*b7893ccfSSadaf Ebrahimi const VkClearColorValue* pColor,
1758*b7893ccfSSadaf Ebrahimi uint32_t rangeCount,
1759*b7893ccfSSadaf Ebrahimi const VkImageSubresourceRange* pRanges) {
1760*b7893ccfSSadaf Ebrahimi bool skip = false;
1761*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdClearColorImage-commandBuffer-parameter", "VUID-vkCmdClearColorImage-commonparent");
1762*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, image, kVulkanObjectTypeImage, false, "VUID-vkCmdClearColorImage-image-parameter", "VUID-vkCmdClearColorImage-commonparent");
1763*b7893ccfSSadaf Ebrahimi
1764*b7893ccfSSadaf Ebrahimi return skip;
1765*b7893ccfSSadaf Ebrahimi }
1766*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1767*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdClearDepthStencilImage(
1768*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1769*b7893ccfSSadaf Ebrahimi VkImage image,
1770*b7893ccfSSadaf Ebrahimi VkImageLayout imageLayout,
1771*b7893ccfSSadaf Ebrahimi const VkClearDepthStencilValue* pDepthStencil,
1772*b7893ccfSSadaf Ebrahimi uint32_t rangeCount,
1773*b7893ccfSSadaf Ebrahimi const VkImageSubresourceRange* pRanges) {
1774*b7893ccfSSadaf Ebrahimi bool skip = false;
1775*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter", "VUID-vkCmdClearDepthStencilImage-commonparent");
1776*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, image, kVulkanObjectTypeImage, false, "VUID-vkCmdClearDepthStencilImage-image-parameter", "VUID-vkCmdClearDepthStencilImage-commonparent");
1777*b7893ccfSSadaf Ebrahimi
1778*b7893ccfSSadaf Ebrahimi return skip;
1779*b7893ccfSSadaf Ebrahimi }
1780*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)1781*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdClearAttachments(
1782*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1783*b7893ccfSSadaf Ebrahimi uint32_t attachmentCount,
1784*b7893ccfSSadaf Ebrahimi const VkClearAttachment* pAttachments,
1785*b7893ccfSSadaf Ebrahimi uint32_t rectCount,
1786*b7893ccfSSadaf Ebrahimi const VkClearRect* pRects) {
1787*b7893ccfSSadaf Ebrahimi bool skip = false;
1788*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdClearAttachments-commandBuffer-parameter", kVUIDUndefined);
1789*b7893ccfSSadaf Ebrahimi
1790*b7893ccfSSadaf Ebrahimi return skip;
1791*b7893ccfSSadaf Ebrahimi }
1792*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)1793*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdResolveImage(
1794*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1795*b7893ccfSSadaf Ebrahimi VkImage srcImage,
1796*b7893ccfSSadaf Ebrahimi VkImageLayout srcImageLayout,
1797*b7893ccfSSadaf Ebrahimi VkImage dstImage,
1798*b7893ccfSSadaf Ebrahimi VkImageLayout dstImageLayout,
1799*b7893ccfSSadaf Ebrahimi uint32_t regionCount,
1800*b7893ccfSSadaf Ebrahimi const VkImageResolve* pRegions) {
1801*b7893ccfSSadaf Ebrahimi bool skip = false;
1802*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdResolveImage-commandBuffer-parameter", "VUID-vkCmdResolveImage-commonparent");
1803*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, srcImage, kVulkanObjectTypeImage, false, "VUID-vkCmdResolveImage-srcImage-parameter", "VUID-vkCmdResolveImage-commonparent");
1804*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dstImage, kVulkanObjectTypeImage, false, "VUID-vkCmdResolveImage-dstImage-parameter", "VUID-vkCmdResolveImage-commonparent");
1805*b7893ccfSSadaf Ebrahimi
1806*b7893ccfSSadaf Ebrahimi return skip;
1807*b7893ccfSSadaf Ebrahimi }
1808*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1809*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetEvent(
1810*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1811*b7893ccfSSadaf Ebrahimi VkEvent event,
1812*b7893ccfSSadaf Ebrahimi VkPipelineStageFlags stageMask) {
1813*b7893ccfSSadaf Ebrahimi bool skip = false;
1814*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetEvent-commandBuffer-parameter", "VUID-vkCmdSetEvent-commonparent");
1815*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, event, kVulkanObjectTypeEvent, false, "VUID-vkCmdSetEvent-event-parameter", "VUID-vkCmdSetEvent-commonparent");
1816*b7893ccfSSadaf Ebrahimi
1817*b7893ccfSSadaf Ebrahimi return skip;
1818*b7893ccfSSadaf Ebrahimi }
1819*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1820*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdResetEvent(
1821*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1822*b7893ccfSSadaf Ebrahimi VkEvent event,
1823*b7893ccfSSadaf Ebrahimi VkPipelineStageFlags stageMask) {
1824*b7893ccfSSadaf Ebrahimi bool skip = false;
1825*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdResetEvent-commandBuffer-parameter", "VUID-vkCmdResetEvent-commonparent");
1826*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, event, kVulkanObjectTypeEvent, false, "VUID-vkCmdResetEvent-event-parameter", "VUID-vkCmdResetEvent-commonparent");
1827*b7893ccfSSadaf Ebrahimi
1828*b7893ccfSSadaf Ebrahimi return skip;
1829*b7893ccfSSadaf Ebrahimi }
1830*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdWaitEvents(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)1831*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdWaitEvents(
1832*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1833*b7893ccfSSadaf Ebrahimi uint32_t eventCount,
1834*b7893ccfSSadaf Ebrahimi const VkEvent* pEvents,
1835*b7893ccfSSadaf Ebrahimi VkPipelineStageFlags srcStageMask,
1836*b7893ccfSSadaf Ebrahimi VkPipelineStageFlags dstStageMask,
1837*b7893ccfSSadaf Ebrahimi uint32_t memoryBarrierCount,
1838*b7893ccfSSadaf Ebrahimi const VkMemoryBarrier* pMemoryBarriers,
1839*b7893ccfSSadaf Ebrahimi uint32_t bufferMemoryBarrierCount,
1840*b7893ccfSSadaf Ebrahimi const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1841*b7893ccfSSadaf Ebrahimi uint32_t imageMemoryBarrierCount,
1842*b7893ccfSSadaf Ebrahimi const VkImageMemoryBarrier* pImageMemoryBarriers) {
1843*b7893ccfSSadaf Ebrahimi bool skip = false;
1844*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdWaitEvents-commandBuffer-parameter", "VUID-vkCmdWaitEvents-commonparent");
1845*b7893ccfSSadaf Ebrahimi if (pEvents) {
1846*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < eventCount; ++index0) {
1847*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pEvents[index0], kVulkanObjectTypeEvent, false, "VUID-vkCmdWaitEvents-pEvents-parameter", "VUID-vkCmdWaitEvents-commonparent");
1848*b7893ccfSSadaf Ebrahimi }
1849*b7893ccfSSadaf Ebrahimi }
1850*b7893ccfSSadaf Ebrahimi if (pBufferMemoryBarriers) {
1851*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < bufferMemoryBarrierCount; ++index0) {
1852*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pBufferMemoryBarriers[index0].buffer, kVulkanObjectTypeBuffer, false, "VUID-VkBufferMemoryBarrier-buffer-parameter", kVUIDUndefined);
1853*b7893ccfSSadaf Ebrahimi }
1854*b7893ccfSSadaf Ebrahimi }
1855*b7893ccfSSadaf Ebrahimi if (pImageMemoryBarriers) {
1856*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < imageMemoryBarrierCount; ++index0) {
1857*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pImageMemoryBarriers[index0].image, kVulkanObjectTypeImage, false, "VUID-VkImageMemoryBarrier-image-parameter", kVUIDUndefined);
1858*b7893ccfSSadaf Ebrahimi }
1859*b7893ccfSSadaf Ebrahimi }
1860*b7893ccfSSadaf Ebrahimi
1861*b7893ccfSSadaf Ebrahimi return skip;
1862*b7893ccfSSadaf Ebrahimi }
1863*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdPipelineBarrier(VkCommandBuffer commandBuffer,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,VkDependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)1864*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdPipelineBarrier(
1865*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1866*b7893ccfSSadaf Ebrahimi VkPipelineStageFlags srcStageMask,
1867*b7893ccfSSadaf Ebrahimi VkPipelineStageFlags dstStageMask,
1868*b7893ccfSSadaf Ebrahimi VkDependencyFlags dependencyFlags,
1869*b7893ccfSSadaf Ebrahimi uint32_t memoryBarrierCount,
1870*b7893ccfSSadaf Ebrahimi const VkMemoryBarrier* pMemoryBarriers,
1871*b7893ccfSSadaf Ebrahimi uint32_t bufferMemoryBarrierCount,
1872*b7893ccfSSadaf Ebrahimi const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1873*b7893ccfSSadaf Ebrahimi uint32_t imageMemoryBarrierCount,
1874*b7893ccfSSadaf Ebrahimi const VkImageMemoryBarrier* pImageMemoryBarriers) {
1875*b7893ccfSSadaf Ebrahimi bool skip = false;
1876*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdPipelineBarrier-commandBuffer-parameter", kVUIDUndefined);
1877*b7893ccfSSadaf Ebrahimi if (pBufferMemoryBarriers) {
1878*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < bufferMemoryBarrierCount; ++index0) {
1879*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pBufferMemoryBarriers[index0].buffer, kVulkanObjectTypeBuffer, false, "VUID-VkBufferMemoryBarrier-buffer-parameter", kVUIDUndefined);
1880*b7893ccfSSadaf Ebrahimi }
1881*b7893ccfSSadaf Ebrahimi }
1882*b7893ccfSSadaf Ebrahimi if (pImageMemoryBarriers) {
1883*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < imageMemoryBarrierCount; ++index0) {
1884*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pImageMemoryBarriers[index0].image, kVulkanObjectTypeImage, false, "VUID-VkImageMemoryBarrier-image-parameter", kVUIDUndefined);
1885*b7893ccfSSadaf Ebrahimi }
1886*b7893ccfSSadaf Ebrahimi }
1887*b7893ccfSSadaf Ebrahimi
1888*b7893ccfSSadaf Ebrahimi return skip;
1889*b7893ccfSSadaf Ebrahimi }
1890*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags)1891*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBeginQuery(
1892*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1893*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
1894*b7893ccfSSadaf Ebrahimi uint32_t query,
1895*b7893ccfSSadaf Ebrahimi VkQueryControlFlags flags) {
1896*b7893ccfSSadaf Ebrahimi bool skip = false;
1897*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBeginQuery-commandBuffer-parameter", "VUID-vkCmdBeginQuery-commonparent");
1898*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, "VUID-vkCmdBeginQuery-queryPool-parameter", "VUID-vkCmdBeginQuery-commonparent");
1899*b7893ccfSSadaf Ebrahimi
1900*b7893ccfSSadaf Ebrahimi return skip;
1901*b7893ccfSSadaf Ebrahimi }
1902*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query)1903*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdEndQuery(
1904*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1905*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
1906*b7893ccfSSadaf Ebrahimi uint32_t query) {
1907*b7893ccfSSadaf Ebrahimi bool skip = false;
1908*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdEndQuery-commandBuffer-parameter", "VUID-vkCmdEndQuery-commonparent");
1909*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, "VUID-vkCmdEndQuery-queryPool-parameter", "VUID-vkCmdEndQuery-commonparent");
1910*b7893ccfSSadaf Ebrahimi
1911*b7893ccfSSadaf Ebrahimi return skip;
1912*b7893ccfSSadaf Ebrahimi }
1913*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1914*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdResetQueryPool(
1915*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1916*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
1917*b7893ccfSSadaf Ebrahimi uint32_t firstQuery,
1918*b7893ccfSSadaf Ebrahimi uint32_t queryCount) {
1919*b7893ccfSSadaf Ebrahimi bool skip = false;
1920*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdResetQueryPool-commandBuffer-parameter", "VUID-vkCmdResetQueryPool-commonparent");
1921*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, "VUID-vkCmdResetQueryPool-queryPool-parameter", "VUID-vkCmdResetQueryPool-commonparent");
1922*b7893ccfSSadaf Ebrahimi
1923*b7893ccfSSadaf Ebrahimi return skip;
1924*b7893ccfSSadaf Ebrahimi }
1925*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query)1926*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdWriteTimestamp(
1927*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1928*b7893ccfSSadaf Ebrahimi VkPipelineStageFlagBits pipelineStage,
1929*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
1930*b7893ccfSSadaf Ebrahimi uint32_t query) {
1931*b7893ccfSSadaf Ebrahimi bool skip = false;
1932*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdWriteTimestamp-commandBuffer-parameter", "VUID-vkCmdWriteTimestamp-commonparent");
1933*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, "VUID-vkCmdWriteTimestamp-queryPool-parameter", "VUID-vkCmdWriteTimestamp-commonparent");
1934*b7893ccfSSadaf Ebrahimi
1935*b7893ccfSSadaf Ebrahimi return skip;
1936*b7893ccfSSadaf Ebrahimi }
1937*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags)1938*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdCopyQueryPoolResults(
1939*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1940*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
1941*b7893ccfSSadaf Ebrahimi uint32_t firstQuery,
1942*b7893ccfSSadaf Ebrahimi uint32_t queryCount,
1943*b7893ccfSSadaf Ebrahimi VkBuffer dstBuffer,
1944*b7893ccfSSadaf Ebrahimi VkDeviceSize dstOffset,
1945*b7893ccfSSadaf Ebrahimi VkDeviceSize stride,
1946*b7893ccfSSadaf Ebrahimi VkQueryResultFlags flags) {
1947*b7893ccfSSadaf Ebrahimi bool skip = false;
1948*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter", "VUID-vkCmdCopyQueryPoolResults-commonparent");
1949*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, "VUID-vkCmdCopyQueryPoolResults-queryPool-parameter", "VUID-vkCmdCopyQueryPoolResults-commonparent");
1950*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter", "VUID-vkCmdCopyQueryPoolResults-commonparent");
1951*b7893ccfSSadaf Ebrahimi
1952*b7893ccfSSadaf Ebrahimi return skip;
1953*b7893ccfSSadaf Ebrahimi }
1954*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues)1955*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdPushConstants(
1956*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1957*b7893ccfSSadaf Ebrahimi VkPipelineLayout layout,
1958*b7893ccfSSadaf Ebrahimi VkShaderStageFlags stageFlags,
1959*b7893ccfSSadaf Ebrahimi uint32_t offset,
1960*b7893ccfSSadaf Ebrahimi uint32_t size,
1961*b7893ccfSSadaf Ebrahimi const void* pValues) {
1962*b7893ccfSSadaf Ebrahimi bool skip = false;
1963*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdPushConstants-commandBuffer-parameter", "VUID-vkCmdPushConstants-commonparent");
1964*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, layout, kVulkanObjectTypePipelineLayout, false, "VUID-vkCmdPushConstants-layout-parameter", "VUID-vkCmdPushConstants-commonparent");
1965*b7893ccfSSadaf Ebrahimi
1966*b7893ccfSSadaf Ebrahimi return skip;
1967*b7893ccfSSadaf Ebrahimi }
1968*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)1969*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBeginRenderPass(
1970*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1971*b7893ccfSSadaf Ebrahimi const VkRenderPassBeginInfo* pRenderPassBegin,
1972*b7893ccfSSadaf Ebrahimi VkSubpassContents contents) {
1973*b7893ccfSSadaf Ebrahimi bool skip = false;
1974*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBeginRenderPass-commandBuffer-parameter", kVUIDUndefined);
1975*b7893ccfSSadaf Ebrahimi if (pRenderPassBegin) {
1976*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pRenderPassBegin->renderPass, kVulkanObjectTypeRenderPass, false, "VUID-VkRenderPassBeginInfo-renderPass-parameter", "VUID-VkRenderPassBeginInfo-commonparent");
1977*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pRenderPassBegin->framebuffer, kVulkanObjectTypeFramebuffer, false, "VUID-VkRenderPassBeginInfo-framebuffer-parameter", "VUID-VkRenderPassBeginInfo-commonparent");
1978*b7893ccfSSadaf Ebrahimi }
1979*b7893ccfSSadaf Ebrahimi
1980*b7893ccfSSadaf Ebrahimi return skip;
1981*b7893ccfSSadaf Ebrahimi }
1982*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents)1983*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdNextSubpass(
1984*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
1985*b7893ccfSSadaf Ebrahimi VkSubpassContents contents) {
1986*b7893ccfSSadaf Ebrahimi bool skip = false;
1987*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdNextSubpass-commandBuffer-parameter", kVUIDUndefined);
1988*b7893ccfSSadaf Ebrahimi
1989*b7893ccfSSadaf Ebrahimi return skip;
1990*b7893ccfSSadaf Ebrahimi }
1991*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdEndRenderPass(VkCommandBuffer commandBuffer)1992*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdEndRenderPass(
1993*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer) {
1994*b7893ccfSSadaf Ebrahimi bool skip = false;
1995*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdEndRenderPass-commandBuffer-parameter", kVUIDUndefined);
1996*b7893ccfSSadaf Ebrahimi
1997*b7893ccfSSadaf Ebrahimi return skip;
1998*b7893ccfSSadaf Ebrahimi }
1999*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)2000*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdExecuteCommands(
2001*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
2002*b7893ccfSSadaf Ebrahimi uint32_t commandBufferCount,
2003*b7893ccfSSadaf Ebrahimi const VkCommandBuffer* pCommandBuffers) {
2004*b7893ccfSSadaf Ebrahimi bool skip = false;
2005*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdExecuteCommands-commandBuffer-parameter", "VUID-vkCmdExecuteCommands-commonparent");
2006*b7893ccfSSadaf Ebrahimi if (pCommandBuffers) {
2007*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < commandBufferCount; ++index0) {
2008*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pCommandBuffers[index0], kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdExecuteCommands-pCommandBuffers-parameter", "VUID-vkCmdExecuteCommands-commonparent");
2009*b7893ccfSSadaf Ebrahimi }
2010*b7893ccfSSadaf Ebrahimi }
2011*b7893ccfSSadaf Ebrahimi
2012*b7893ccfSSadaf Ebrahimi return skip;
2013*b7893ccfSSadaf Ebrahimi }
2014*b7893ccfSSadaf Ebrahimi
PreCallValidateBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)2015*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateBindBufferMemory2(
2016*b7893ccfSSadaf Ebrahimi VkDevice device,
2017*b7893ccfSSadaf Ebrahimi uint32_t bindInfoCount,
2018*b7893ccfSSadaf Ebrahimi const VkBindBufferMemoryInfo* pBindInfos) {
2019*b7893ccfSSadaf Ebrahimi bool skip = false;
2020*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkBindBufferMemory2-device-parameter", kVUIDUndefined);
2021*b7893ccfSSadaf Ebrahimi if (pBindInfos) {
2022*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < bindInfoCount; ++index0) {
2023*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pBindInfos[index0].buffer, kVulkanObjectTypeBuffer, false, "VUID-VkBindBufferMemoryInfo-buffer-parameter", "VUID-VkBindBufferMemoryInfo-commonparent");
2024*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pBindInfos[index0].memory, kVulkanObjectTypeDeviceMemory, false, "VUID-VkBindBufferMemoryInfo-memory-parameter", "VUID-VkBindBufferMemoryInfo-commonparent");
2025*b7893ccfSSadaf Ebrahimi }
2026*b7893ccfSSadaf Ebrahimi }
2027*b7893ccfSSadaf Ebrahimi
2028*b7893ccfSSadaf Ebrahimi return skip;
2029*b7893ccfSSadaf Ebrahimi }
2030*b7893ccfSSadaf Ebrahimi
PreCallValidateBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)2031*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateBindImageMemory2(
2032*b7893ccfSSadaf Ebrahimi VkDevice device,
2033*b7893ccfSSadaf Ebrahimi uint32_t bindInfoCount,
2034*b7893ccfSSadaf Ebrahimi const VkBindImageMemoryInfo* pBindInfos) {
2035*b7893ccfSSadaf Ebrahimi bool skip = false;
2036*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkBindImageMemory2-device-parameter", kVUIDUndefined);
2037*b7893ccfSSadaf Ebrahimi if (pBindInfos) {
2038*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < bindInfoCount; ++index0) {
2039*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pBindInfos[index0].image, kVulkanObjectTypeImage, false, "VUID-VkBindImageMemoryInfo-image-parameter", "VUID-VkBindImageMemoryInfo-commonparent");
2040*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pBindInfos[index0].memory, kVulkanObjectTypeDeviceMemory, true, kVUIDUndefined, "VUID-VkBindImageMemoryInfo-commonparent");
2041*b7893ccfSSadaf Ebrahimi }
2042*b7893ccfSSadaf Ebrahimi }
2043*b7893ccfSSadaf Ebrahimi
2044*b7893ccfSSadaf Ebrahimi return skip;
2045*b7893ccfSSadaf Ebrahimi }
2046*b7893ccfSSadaf Ebrahimi
PreCallValidateGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)2047*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetDeviceGroupPeerMemoryFeatures(
2048*b7893ccfSSadaf Ebrahimi VkDevice device,
2049*b7893ccfSSadaf Ebrahimi uint32_t heapIndex,
2050*b7893ccfSSadaf Ebrahimi uint32_t localDeviceIndex,
2051*b7893ccfSSadaf Ebrahimi uint32_t remoteDeviceIndex,
2052*b7893ccfSSadaf Ebrahimi VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
2053*b7893ccfSSadaf Ebrahimi bool skip = false;
2054*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameter", kVUIDUndefined);
2055*b7893ccfSSadaf Ebrahimi
2056*b7893ccfSSadaf Ebrahimi return skip;
2057*b7893ccfSSadaf Ebrahimi }
2058*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask)2059*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetDeviceMask(
2060*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
2061*b7893ccfSSadaf Ebrahimi uint32_t deviceMask) {
2062*b7893ccfSSadaf Ebrahimi bool skip = false;
2063*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetDeviceMask-commandBuffer-parameter", kVUIDUndefined);
2064*b7893ccfSSadaf Ebrahimi
2065*b7893ccfSSadaf Ebrahimi return skip;
2066*b7893ccfSSadaf Ebrahimi }
2067*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)2068*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDispatchBase(
2069*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
2070*b7893ccfSSadaf Ebrahimi uint32_t baseGroupX,
2071*b7893ccfSSadaf Ebrahimi uint32_t baseGroupY,
2072*b7893ccfSSadaf Ebrahimi uint32_t baseGroupZ,
2073*b7893ccfSSadaf Ebrahimi uint32_t groupCountX,
2074*b7893ccfSSadaf Ebrahimi uint32_t groupCountY,
2075*b7893ccfSSadaf Ebrahimi uint32_t groupCountZ) {
2076*b7893ccfSSadaf Ebrahimi bool skip = false;
2077*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDispatchBase-commandBuffer-parameter", kVUIDUndefined);
2078*b7893ccfSSadaf Ebrahimi
2079*b7893ccfSSadaf Ebrahimi return skip;
2080*b7893ccfSSadaf Ebrahimi }
2081*b7893ccfSSadaf Ebrahimi
PreCallValidateEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)2082*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateEnumeratePhysicalDeviceGroups(
2083*b7893ccfSSadaf Ebrahimi VkInstance instance,
2084*b7893ccfSSadaf Ebrahimi uint32_t* pPhysicalDeviceGroupCount,
2085*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
2086*b7893ccfSSadaf Ebrahimi bool skip = false;
2087*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkEnumeratePhysicalDeviceGroups-instance-parameter", kVUIDUndefined);
2088*b7893ccfSSadaf Ebrahimi
2089*b7893ccfSSadaf Ebrahimi return skip;
2090*b7893ccfSSadaf Ebrahimi }
2091*b7893ccfSSadaf Ebrahimi
PreCallValidateGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2092*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetImageMemoryRequirements2(
2093*b7893ccfSSadaf Ebrahimi VkDevice device,
2094*b7893ccfSSadaf Ebrahimi const VkImageMemoryRequirementsInfo2* pInfo,
2095*b7893ccfSSadaf Ebrahimi VkMemoryRequirements2* pMemoryRequirements) {
2096*b7893ccfSSadaf Ebrahimi bool skip = false;
2097*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageMemoryRequirements2-device-parameter", kVUIDUndefined);
2098*b7893ccfSSadaf Ebrahimi if (pInfo) {
2099*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pInfo->image, kVulkanObjectTypeImage, false, "VUID-VkImageMemoryRequirementsInfo2-image-parameter", kVUIDUndefined);
2100*b7893ccfSSadaf Ebrahimi }
2101*b7893ccfSSadaf Ebrahimi
2102*b7893ccfSSadaf Ebrahimi return skip;
2103*b7893ccfSSadaf Ebrahimi }
2104*b7893ccfSSadaf Ebrahimi
PreCallValidateGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2105*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetBufferMemoryRequirements2(
2106*b7893ccfSSadaf Ebrahimi VkDevice device,
2107*b7893ccfSSadaf Ebrahimi const VkBufferMemoryRequirementsInfo2* pInfo,
2108*b7893ccfSSadaf Ebrahimi VkMemoryRequirements2* pMemoryRequirements) {
2109*b7893ccfSSadaf Ebrahimi bool skip = false;
2110*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetBufferMemoryRequirements2-device-parameter", kVUIDUndefined);
2111*b7893ccfSSadaf Ebrahimi if (pInfo) {
2112*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pInfo->buffer, kVulkanObjectTypeBuffer, false, "VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter", kVUIDUndefined);
2113*b7893ccfSSadaf Ebrahimi }
2114*b7893ccfSSadaf Ebrahimi
2115*b7893ccfSSadaf Ebrahimi return skip;
2116*b7893ccfSSadaf Ebrahimi }
2117*b7893ccfSSadaf Ebrahimi
PreCallValidateGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2118*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetImageSparseMemoryRequirements2(
2119*b7893ccfSSadaf Ebrahimi VkDevice device,
2120*b7893ccfSSadaf Ebrahimi const VkImageSparseMemoryRequirementsInfo2* pInfo,
2121*b7893ccfSSadaf Ebrahimi uint32_t* pSparseMemoryRequirementCount,
2122*b7893ccfSSadaf Ebrahimi VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
2123*b7893ccfSSadaf Ebrahimi bool skip = false;
2124*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageSparseMemoryRequirements2-device-parameter", kVUIDUndefined);
2125*b7893ccfSSadaf Ebrahimi if (pInfo) {
2126*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pInfo->image, kVulkanObjectTypeImage, false, "VUID-VkImageSparseMemoryRequirementsInfo2-image-parameter", kVUIDUndefined);
2127*b7893ccfSSadaf Ebrahimi }
2128*b7893ccfSSadaf Ebrahimi
2129*b7893ccfSSadaf Ebrahimi return skip;
2130*b7893ccfSSadaf Ebrahimi }
2131*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)2132*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceFeatures2(
2133*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2134*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceFeatures2* pFeatures) {
2135*b7893ccfSSadaf Ebrahimi bool skip = false;
2136*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameter", kVUIDUndefined);
2137*b7893ccfSSadaf Ebrahimi
2138*b7893ccfSSadaf Ebrahimi return skip;
2139*b7893ccfSSadaf Ebrahimi }
2140*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)2141*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceProperties2(
2142*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2143*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceProperties2* pProperties) {
2144*b7893ccfSSadaf Ebrahimi bool skip = false;
2145*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceProperties2-physicalDevice-parameter", kVUIDUndefined);
2146*b7893ccfSSadaf Ebrahimi
2147*b7893ccfSSadaf Ebrahimi return skip;
2148*b7893ccfSSadaf Ebrahimi }
2149*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)2150*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceFormatProperties2(
2151*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2152*b7893ccfSSadaf Ebrahimi VkFormat format,
2153*b7893ccfSSadaf Ebrahimi VkFormatProperties2* pFormatProperties) {
2154*b7893ccfSSadaf Ebrahimi bool skip = false;
2155*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceFormatProperties2-physicalDevice-parameter", kVUIDUndefined);
2156*b7893ccfSSadaf Ebrahimi
2157*b7893ccfSSadaf Ebrahimi return skip;
2158*b7893ccfSSadaf Ebrahimi }
2159*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)2160*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceImageFormatProperties2(
2161*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2162*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2163*b7893ccfSSadaf Ebrahimi VkImageFormatProperties2* pImageFormatProperties) {
2164*b7893ccfSSadaf Ebrahimi bool skip = false;
2165*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter", kVUIDUndefined);
2166*b7893ccfSSadaf Ebrahimi
2167*b7893ccfSSadaf Ebrahimi return skip;
2168*b7893ccfSSadaf Ebrahimi }
2169*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)2170*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceMemoryProperties2(
2171*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2172*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
2173*b7893ccfSSadaf Ebrahimi bool skip = false;
2174*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameter", kVUIDUndefined);
2175*b7893ccfSSadaf Ebrahimi
2176*b7893ccfSSadaf Ebrahimi return skip;
2177*b7893ccfSSadaf Ebrahimi }
2178*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)2179*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSparseImageFormatProperties2(
2180*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2181*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2182*b7893ccfSSadaf Ebrahimi uint32_t* pPropertyCount,
2183*b7893ccfSSadaf Ebrahimi VkSparseImageFormatProperties2* pProperties) {
2184*b7893ccfSSadaf Ebrahimi bool skip = false;
2185*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameter", kVUIDUndefined);
2186*b7893ccfSSadaf Ebrahimi
2187*b7893ccfSSadaf Ebrahimi return skip;
2188*b7893ccfSSadaf Ebrahimi }
2189*b7893ccfSSadaf Ebrahimi
PreCallValidateTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)2190*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateTrimCommandPool(
2191*b7893ccfSSadaf Ebrahimi VkDevice device,
2192*b7893ccfSSadaf Ebrahimi VkCommandPool commandPool,
2193*b7893ccfSSadaf Ebrahimi VkCommandPoolTrimFlags flags) {
2194*b7893ccfSSadaf Ebrahimi bool skip = false;
2195*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkTrimCommandPool-device-parameter", kVUIDUndefined);
2196*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, commandPool, kVulkanObjectTypeCommandPool, false, "VUID-vkTrimCommandPool-commandPool-parameter", "VUID-vkTrimCommandPool-commandPool-parent");
2197*b7893ccfSSadaf Ebrahimi
2198*b7893ccfSSadaf Ebrahimi return skip;
2199*b7893ccfSSadaf Ebrahimi }
2200*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)2201*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateSamplerYcbcrConversion(
2202*b7893ccfSSadaf Ebrahimi VkDevice device,
2203*b7893ccfSSadaf Ebrahimi const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2204*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2205*b7893ccfSSadaf Ebrahimi VkSamplerYcbcrConversion* pYcbcrConversion) {
2206*b7893ccfSSadaf Ebrahimi bool skip = false;
2207*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateSamplerYcbcrConversion-device-parameter", kVUIDUndefined);
2208*b7893ccfSSadaf Ebrahimi
2209*b7893ccfSSadaf Ebrahimi return skip;
2210*b7893ccfSSadaf Ebrahimi }
2211*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion,VkResult result)2212*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateSamplerYcbcrConversion(
2213*b7893ccfSSadaf Ebrahimi VkDevice device,
2214*b7893ccfSSadaf Ebrahimi const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2215*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2216*b7893ccfSSadaf Ebrahimi VkSamplerYcbcrConversion* pYcbcrConversion,
2217*b7893ccfSSadaf Ebrahimi VkResult result) {
2218*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2219*b7893ccfSSadaf Ebrahimi CreateObject(device, *pYcbcrConversion, kVulkanObjectTypeSamplerYcbcrConversion, pAllocator);
2220*b7893ccfSSadaf Ebrahimi
2221*b7893ccfSSadaf Ebrahimi }
2222*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)2223*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroySamplerYcbcrConversion(
2224*b7893ccfSSadaf Ebrahimi VkDevice device,
2225*b7893ccfSSadaf Ebrahimi VkSamplerYcbcrConversion ycbcrConversion,
2226*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
2227*b7893ccfSSadaf Ebrahimi bool skip = false;
2228*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroySamplerYcbcrConversion-device-parameter", kVUIDUndefined);
2229*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, ycbcrConversion, kVulkanObjectTypeSamplerYcbcrConversion, true, "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameter", "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parent");
2230*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, ycbcrConversion, kVulkanObjectTypeSamplerYcbcrConversion, pAllocator, kVUIDUndefined, kVUIDUndefined);
2231*b7893ccfSSadaf Ebrahimi
2232*b7893ccfSSadaf Ebrahimi return skip;
2233*b7893ccfSSadaf Ebrahimi }
2234*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)2235*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroySamplerYcbcrConversion(
2236*b7893ccfSSadaf Ebrahimi VkDevice device,
2237*b7893ccfSSadaf Ebrahimi VkSamplerYcbcrConversion ycbcrConversion,
2238*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
2239*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, ycbcrConversion, kVulkanObjectTypeSamplerYcbcrConversion);
2240*b7893ccfSSadaf Ebrahimi
2241*b7893ccfSSadaf Ebrahimi }
2242*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)2243*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateDescriptorUpdateTemplate(
2244*b7893ccfSSadaf Ebrahimi VkDevice device,
2245*b7893ccfSSadaf Ebrahimi const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2246*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2247*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
2248*b7893ccfSSadaf Ebrahimi bool skip = false;
2249*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateDescriptorUpdateTemplate-device-parameter", kVUIDUndefined);
2250*b7893ccfSSadaf Ebrahimi if (pCreateInfo) {
2251*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->descriptorSetLayout, kVulkanObjectTypeDescriptorSetLayout, true, "VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorSetLayout-parameter", "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent");
2252*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->pipelineLayout, kVulkanObjectTypePipelineLayout, true, kVUIDUndefined, "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent");
2253*b7893ccfSSadaf Ebrahimi }
2254*b7893ccfSSadaf Ebrahimi
2255*b7893ccfSSadaf Ebrahimi return skip;
2256*b7893ccfSSadaf Ebrahimi }
2257*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate,VkResult result)2258*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateDescriptorUpdateTemplate(
2259*b7893ccfSSadaf Ebrahimi VkDevice device,
2260*b7893ccfSSadaf Ebrahimi const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2261*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2262*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate,
2263*b7893ccfSSadaf Ebrahimi VkResult result) {
2264*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2265*b7893ccfSSadaf Ebrahimi CreateObject(device, *pDescriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate, pAllocator);
2266*b7893ccfSSadaf Ebrahimi
2267*b7893ccfSSadaf Ebrahimi }
2268*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)2269*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyDescriptorUpdateTemplate(
2270*b7893ccfSSadaf Ebrahimi VkDevice device,
2271*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2272*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
2273*b7893ccfSSadaf Ebrahimi bool skip = false;
2274*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyDescriptorUpdateTemplate-device-parameter", kVUIDUndefined);
2275*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate, true, "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameter", "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parent");
2276*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate, pAllocator, "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356", "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357");
2277*b7893ccfSSadaf Ebrahimi
2278*b7893ccfSSadaf Ebrahimi return skip;
2279*b7893ccfSSadaf Ebrahimi }
2280*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)2281*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyDescriptorUpdateTemplate(
2282*b7893ccfSSadaf Ebrahimi VkDevice device,
2283*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2284*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
2285*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate);
2286*b7893ccfSSadaf Ebrahimi
2287*b7893ccfSSadaf Ebrahimi }
2288*b7893ccfSSadaf Ebrahimi
PreCallValidateUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)2289*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateUpdateDescriptorSetWithTemplate(
2290*b7893ccfSSadaf Ebrahimi VkDevice device,
2291*b7893ccfSSadaf Ebrahimi VkDescriptorSet descriptorSet,
2292*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2293*b7893ccfSSadaf Ebrahimi const void* pData) {
2294*b7893ccfSSadaf Ebrahimi bool skip = false;
2295*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkUpdateDescriptorSetWithTemplate-device-parameter", kVUIDUndefined);
2296*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, descriptorSet, kVulkanObjectTypeDescriptorSet, false, "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameter", kVUIDUndefined);
2297*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate, false, "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameter", "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent");
2298*b7893ccfSSadaf Ebrahimi
2299*b7893ccfSSadaf Ebrahimi return skip;
2300*b7893ccfSSadaf Ebrahimi }
2301*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)2302*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceExternalBufferProperties(
2303*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2304*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2305*b7893ccfSSadaf Ebrahimi VkExternalBufferProperties* pExternalBufferProperties) {
2306*b7893ccfSSadaf Ebrahimi bool skip = false;
2307*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameter", kVUIDUndefined);
2308*b7893ccfSSadaf Ebrahimi
2309*b7893ccfSSadaf Ebrahimi return skip;
2310*b7893ccfSSadaf Ebrahimi }
2311*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)2312*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceExternalFenceProperties(
2313*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2314*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2315*b7893ccfSSadaf Ebrahimi VkExternalFenceProperties* pExternalFenceProperties) {
2316*b7893ccfSSadaf Ebrahimi bool skip = false;
2317*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameter", kVUIDUndefined);
2318*b7893ccfSSadaf Ebrahimi
2319*b7893ccfSSadaf Ebrahimi return skip;
2320*b7893ccfSSadaf Ebrahimi }
2321*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)2322*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceExternalSemaphoreProperties(
2323*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2324*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2325*b7893ccfSSadaf Ebrahimi VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
2326*b7893ccfSSadaf Ebrahimi bool skip = false;
2327*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameter", kVUIDUndefined);
2328*b7893ccfSSadaf Ebrahimi
2329*b7893ccfSSadaf Ebrahimi return skip;
2330*b7893ccfSSadaf Ebrahimi }
2331*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator)2332*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroySurfaceKHR(
2333*b7893ccfSSadaf Ebrahimi VkInstance instance,
2334*b7893ccfSSadaf Ebrahimi VkSurfaceKHR surface,
2335*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
2336*b7893ccfSSadaf Ebrahimi bool skip = false;
2337*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkDestroySurfaceKHR-instance-parameter", kVUIDUndefined);
2338*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, surface, kVulkanObjectTypeSurfaceKHR, true, "VUID-vkDestroySurfaceKHR-surface-parameter", "VUID-vkDestroySurfaceKHR-surface-parent");
2339*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(instance, surface, kVulkanObjectTypeSurfaceKHR, pAllocator, "VUID-vkDestroySurfaceKHR-surface-01267", "VUID-vkDestroySurfaceKHR-surface-01268");
2340*b7893ccfSSadaf Ebrahimi
2341*b7893ccfSSadaf Ebrahimi return skip;
2342*b7893ccfSSadaf Ebrahimi }
2343*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator)2344*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroySurfaceKHR(
2345*b7893ccfSSadaf Ebrahimi VkInstance instance,
2346*b7893ccfSSadaf Ebrahimi VkSurfaceKHR surface,
2347*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
2348*b7893ccfSSadaf Ebrahimi RecordDestroyObject(instance, surface, kVulkanObjectTypeSurfaceKHR);
2349*b7893ccfSSadaf Ebrahimi
2350*b7893ccfSSadaf Ebrahimi }
2351*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported)2352*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSurfaceSupportKHR(
2353*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2354*b7893ccfSSadaf Ebrahimi uint32_t queueFamilyIndex,
2355*b7893ccfSSadaf Ebrahimi VkSurfaceKHR surface,
2356*b7893ccfSSadaf Ebrahimi VkBool32* pSupported) {
2357*b7893ccfSSadaf Ebrahimi bool skip = false;
2358*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-physicalDevice-parameter", "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparent");
2359*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-surface-parameter", "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparent");
2360*b7893ccfSSadaf Ebrahimi
2361*b7893ccfSSadaf Ebrahimi return skip;
2362*b7893ccfSSadaf Ebrahimi }
2363*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities)2364*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSurfaceCapabilitiesKHR(
2365*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2366*b7893ccfSSadaf Ebrahimi VkSurfaceKHR surface,
2367*b7893ccfSSadaf Ebrahimi VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
2368*b7893ccfSSadaf Ebrahimi bool skip = false;
2369*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameter", "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparent");
2370*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-parameter", "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparent");
2371*b7893ccfSSadaf Ebrahimi
2372*b7893ccfSSadaf Ebrahimi return skip;
2373*b7893ccfSSadaf Ebrahimi }
2374*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats)2375*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSurfaceFormatsKHR(
2376*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2377*b7893ccfSSadaf Ebrahimi VkSurfaceKHR surface,
2378*b7893ccfSSadaf Ebrahimi uint32_t* pSurfaceFormatCount,
2379*b7893ccfSSadaf Ebrahimi VkSurfaceFormatKHR* pSurfaceFormats) {
2380*b7893ccfSSadaf Ebrahimi bool skip = false;
2381*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-physicalDevice-parameter", "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparent");
2382*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameter", "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparent");
2383*b7893ccfSSadaf Ebrahimi
2384*b7893ccfSSadaf Ebrahimi return skip;
2385*b7893ccfSSadaf Ebrahimi }
2386*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes)2387*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSurfacePresentModesKHR(
2388*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2389*b7893ccfSSadaf Ebrahimi VkSurfaceKHR surface,
2390*b7893ccfSSadaf Ebrahimi uint32_t* pPresentModeCount,
2391*b7893ccfSSadaf Ebrahimi VkPresentModeKHR* pPresentModes) {
2392*b7893ccfSSadaf Ebrahimi bool skip = false;
2393*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-physicalDevice-parameter", "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparent");
2394*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameter", "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparent");
2395*b7893ccfSSadaf Ebrahimi
2396*b7893ccfSSadaf Ebrahimi return skip;
2397*b7893ccfSSadaf Ebrahimi }
2398*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain)2399*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateSwapchainKHR(
2400*b7893ccfSSadaf Ebrahimi VkDevice device,
2401*b7893ccfSSadaf Ebrahimi const VkSwapchainCreateInfoKHR* pCreateInfo,
2402*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2403*b7893ccfSSadaf Ebrahimi VkSwapchainKHR* pSwapchain) {
2404*b7893ccfSSadaf Ebrahimi bool skip = false;
2405*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateSwapchainKHR-device-parameter", kVUIDUndefined);
2406*b7893ccfSSadaf Ebrahimi if (pCreateInfo) {
2407*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-VkSwapchainCreateInfoKHR-surface-parameter", "VUID-VkSwapchainCreateInfoKHR-commonparent");
2408*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->oldSwapchain, kVulkanObjectTypeSwapchainKHR, true, "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter", "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parent");
2409*b7893ccfSSadaf Ebrahimi }
2410*b7893ccfSSadaf Ebrahimi
2411*b7893ccfSSadaf Ebrahimi return skip;
2412*b7893ccfSSadaf Ebrahimi }
2413*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain,VkResult result)2414*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateSwapchainKHR(
2415*b7893ccfSSadaf Ebrahimi VkDevice device,
2416*b7893ccfSSadaf Ebrahimi const VkSwapchainCreateInfoKHR* pCreateInfo,
2417*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2418*b7893ccfSSadaf Ebrahimi VkSwapchainKHR* pSwapchain,
2419*b7893ccfSSadaf Ebrahimi VkResult result) {
2420*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2421*b7893ccfSSadaf Ebrahimi CreateObject(device, *pSwapchain, kVulkanObjectTypeSwapchainKHR, pAllocator);
2422*b7893ccfSSadaf Ebrahimi
2423*b7893ccfSSadaf Ebrahimi }
2424*b7893ccfSSadaf Ebrahimi
PreCallValidateAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex)2425*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateAcquireNextImageKHR(
2426*b7893ccfSSadaf Ebrahimi VkDevice device,
2427*b7893ccfSSadaf Ebrahimi VkSwapchainKHR swapchain,
2428*b7893ccfSSadaf Ebrahimi uint64_t timeout,
2429*b7893ccfSSadaf Ebrahimi VkSemaphore semaphore,
2430*b7893ccfSSadaf Ebrahimi VkFence fence,
2431*b7893ccfSSadaf Ebrahimi uint32_t* pImageIndex) {
2432*b7893ccfSSadaf Ebrahimi bool skip = false;
2433*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkAcquireNextImageKHR-device-parameter", "VUID-vkAcquireNextImageKHR-commonparent");
2434*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, "VUID-vkAcquireNextImageKHR-swapchain-parameter", "VUID-vkAcquireNextImageKHR-commonparent");
2435*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, semaphore, kVulkanObjectTypeSemaphore, true, "VUID-vkAcquireNextImageKHR-semaphore-parameter", "VUID-vkAcquireNextImageKHR-semaphore-parent");
2436*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, fence, kVulkanObjectTypeFence, true, "VUID-vkAcquireNextImageKHR-fence-parameter", "VUID-vkAcquireNextImageKHR-fence-parent");
2437*b7893ccfSSadaf Ebrahimi
2438*b7893ccfSSadaf Ebrahimi return skip;
2439*b7893ccfSSadaf Ebrahimi }
2440*b7893ccfSSadaf Ebrahimi
PreCallValidateQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo)2441*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateQueuePresentKHR(
2442*b7893ccfSSadaf Ebrahimi VkQueue queue,
2443*b7893ccfSSadaf Ebrahimi const VkPresentInfoKHR* pPresentInfo) {
2444*b7893ccfSSadaf Ebrahimi bool skip = false;
2445*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, "VUID-vkQueuePresentKHR-queue-parameter", kVUIDUndefined);
2446*b7893ccfSSadaf Ebrahimi if (pPresentInfo) {
2447*b7893ccfSSadaf Ebrahimi if (pPresentInfo->pWaitSemaphores) {
2448*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pPresentInfo->waitSemaphoreCount; ++index1) {
2449*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pPresentInfo->pWaitSemaphores[index1], kVulkanObjectTypeSemaphore, false, "VUID-VkPresentInfoKHR-pWaitSemaphores-parameter", "VUID-VkPresentInfoKHR-commonparent");
2450*b7893ccfSSadaf Ebrahimi }
2451*b7893ccfSSadaf Ebrahimi }
2452*b7893ccfSSadaf Ebrahimi if (pPresentInfo->pSwapchains) {
2453*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pPresentInfo->swapchainCount; ++index1) {
2454*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, pPresentInfo->pSwapchains[index1], kVulkanObjectTypeSwapchainKHR, false, "VUID-VkPresentInfoKHR-pSwapchains-parameter", "VUID-VkPresentInfoKHR-commonparent");
2455*b7893ccfSSadaf Ebrahimi }
2456*b7893ccfSSadaf Ebrahimi }
2457*b7893ccfSSadaf Ebrahimi }
2458*b7893ccfSSadaf Ebrahimi
2459*b7893ccfSSadaf Ebrahimi return skip;
2460*b7893ccfSSadaf Ebrahimi }
2461*b7893ccfSSadaf Ebrahimi
PreCallValidateGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities)2462*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetDeviceGroupPresentCapabilitiesKHR(
2463*b7893ccfSSadaf Ebrahimi VkDevice device,
2464*b7893ccfSSadaf Ebrahimi VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
2465*b7893ccfSSadaf Ebrahimi bool skip = false;
2466*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-device-parameter", kVUIDUndefined);
2467*b7893ccfSSadaf Ebrahimi
2468*b7893ccfSSadaf Ebrahimi return skip;
2469*b7893ccfSSadaf Ebrahimi }
2470*b7893ccfSSadaf Ebrahimi
PreCallValidateGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes)2471*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetDeviceGroupSurfacePresentModesKHR(
2472*b7893ccfSSadaf Ebrahimi VkDevice device,
2473*b7893ccfSSadaf Ebrahimi VkSurfaceKHR surface,
2474*b7893ccfSSadaf Ebrahimi VkDeviceGroupPresentModeFlagsKHR* pModes) {
2475*b7893ccfSSadaf Ebrahimi bool skip = false;
2476*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameter", "VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparent");
2477*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameter", "VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparent");
2478*b7893ccfSSadaf Ebrahimi
2479*b7893ccfSSadaf Ebrahimi return skip;
2480*b7893ccfSSadaf Ebrahimi }
2481*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects)2482*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDevicePresentRectanglesKHR(
2483*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2484*b7893ccfSSadaf Ebrahimi VkSurfaceKHR surface,
2485*b7893ccfSSadaf Ebrahimi uint32_t* pRectCount,
2486*b7893ccfSSadaf Ebrahimi VkRect2D* pRects) {
2487*b7893ccfSSadaf Ebrahimi bool skip = false;
2488*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDevicePresentRectanglesKHR-physicalDevice-parameter", "VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparent");
2489*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameter", "VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparent");
2490*b7893ccfSSadaf Ebrahimi
2491*b7893ccfSSadaf Ebrahimi return skip;
2492*b7893ccfSSadaf Ebrahimi }
2493*b7893ccfSSadaf Ebrahimi
PreCallValidateAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex)2494*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateAcquireNextImage2KHR(
2495*b7893ccfSSadaf Ebrahimi VkDevice device,
2496*b7893ccfSSadaf Ebrahimi const VkAcquireNextImageInfoKHR* pAcquireInfo,
2497*b7893ccfSSadaf Ebrahimi uint32_t* pImageIndex) {
2498*b7893ccfSSadaf Ebrahimi bool skip = false;
2499*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkAcquireNextImage2KHR-device-parameter", kVUIDUndefined);
2500*b7893ccfSSadaf Ebrahimi if (pAcquireInfo) {
2501*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pAcquireInfo->swapchain, kVulkanObjectTypeSwapchainKHR, false, "VUID-VkAcquireNextImageInfoKHR-swapchain-parameter", "VUID-VkAcquireNextImageInfoKHR-commonparent");
2502*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pAcquireInfo->semaphore, kVulkanObjectTypeSemaphore, true, "VUID-VkAcquireNextImageInfoKHR-semaphore-parameter", "VUID-VkAcquireNextImageInfoKHR-commonparent");
2503*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pAcquireInfo->fence, kVulkanObjectTypeFence, true, "VUID-VkAcquireNextImageInfoKHR-fence-parameter", "VUID-VkAcquireNextImageInfoKHR-commonparent");
2504*b7893ccfSSadaf Ebrahimi }
2505*b7893ccfSSadaf Ebrahimi
2506*b7893ccfSSadaf Ebrahimi return skip;
2507*b7893ccfSSadaf Ebrahimi }
2508*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties)2509*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceDisplayPlanePropertiesKHR(
2510*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2511*b7893ccfSSadaf Ebrahimi uint32_t* pPropertyCount,
2512*b7893ccfSSadaf Ebrahimi VkDisplayPlanePropertiesKHR* pProperties) {
2513*b7893ccfSSadaf Ebrahimi bool skip = false;
2514*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameter", kVUIDUndefined);
2515*b7893ccfSSadaf Ebrahimi
2516*b7893ccfSSadaf Ebrahimi return skip;
2517*b7893ccfSSadaf Ebrahimi }
2518*b7893ccfSSadaf Ebrahimi
PreCallValidateGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays)2519*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetDisplayPlaneSupportedDisplaysKHR(
2520*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2521*b7893ccfSSadaf Ebrahimi uint32_t planeIndex,
2522*b7893ccfSSadaf Ebrahimi uint32_t* pDisplayCount,
2523*b7893ccfSSadaf Ebrahimi VkDisplayKHR* pDisplays) {
2524*b7893ccfSSadaf Ebrahimi bool skip = false;
2525*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-physicalDevice-parameter", kVUIDUndefined);
2526*b7893ccfSSadaf Ebrahimi
2527*b7893ccfSSadaf Ebrahimi return skip;
2528*b7893ccfSSadaf Ebrahimi }
2529*b7893ccfSSadaf Ebrahimi
PostCallRecordGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays,VkResult result)2530*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordGetDisplayPlaneSupportedDisplaysKHR(
2531*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2532*b7893ccfSSadaf Ebrahimi uint32_t planeIndex,
2533*b7893ccfSSadaf Ebrahimi uint32_t* pDisplayCount,
2534*b7893ccfSSadaf Ebrahimi VkDisplayKHR* pDisplays,
2535*b7893ccfSSadaf Ebrahimi VkResult result) {
2536*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2537*b7893ccfSSadaf Ebrahimi if (pDisplays) {
2538*b7893ccfSSadaf Ebrahimi for (uint32_t index = 0; index < *pDisplayCount; index++) {
2539*b7893ccfSSadaf Ebrahimi CreateObject(physicalDevice, pDisplays[index], kVulkanObjectTypeDisplayKHR, nullptr);
2540*b7893ccfSSadaf Ebrahimi }
2541*b7893ccfSSadaf Ebrahimi }
2542*b7893ccfSSadaf Ebrahimi
2543*b7893ccfSSadaf Ebrahimi }
2544*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode)2545*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateDisplayModeKHR(
2546*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2547*b7893ccfSSadaf Ebrahimi VkDisplayKHR display,
2548*b7893ccfSSadaf Ebrahimi const VkDisplayModeCreateInfoKHR* pCreateInfo,
2549*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2550*b7893ccfSSadaf Ebrahimi VkDisplayModeKHR* pMode) {
2551*b7893ccfSSadaf Ebrahimi bool skip = false;
2552*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkCreateDisplayModeKHR-physicalDevice-parameter", kVUIDUndefined);
2553*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, display, kVulkanObjectTypeDisplayKHR, false, "VUID-vkCreateDisplayModeKHR-display-parameter", kVUIDUndefined);
2554*b7893ccfSSadaf Ebrahimi
2555*b7893ccfSSadaf Ebrahimi return skip;
2556*b7893ccfSSadaf Ebrahimi }
2557*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode,VkResult result)2558*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateDisplayModeKHR(
2559*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2560*b7893ccfSSadaf Ebrahimi VkDisplayKHR display,
2561*b7893ccfSSadaf Ebrahimi const VkDisplayModeCreateInfoKHR* pCreateInfo,
2562*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2563*b7893ccfSSadaf Ebrahimi VkDisplayModeKHR* pMode,
2564*b7893ccfSSadaf Ebrahimi VkResult result) {
2565*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2566*b7893ccfSSadaf Ebrahimi CreateObject(physicalDevice, *pMode, kVulkanObjectTypeDisplayModeKHR, pAllocator);
2567*b7893ccfSSadaf Ebrahimi
2568*b7893ccfSSadaf Ebrahimi }
2569*b7893ccfSSadaf Ebrahimi
PreCallValidateGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities)2570*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetDisplayPlaneCapabilitiesKHR(
2571*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2572*b7893ccfSSadaf Ebrahimi VkDisplayModeKHR mode,
2573*b7893ccfSSadaf Ebrahimi uint32_t planeIndex,
2574*b7893ccfSSadaf Ebrahimi VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
2575*b7893ccfSSadaf Ebrahimi bool skip = false;
2576*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameter", kVUIDUndefined);
2577*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, mode, kVulkanObjectTypeDisplayModeKHR, false, "VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameter", kVUIDUndefined);
2578*b7893ccfSSadaf Ebrahimi
2579*b7893ccfSSadaf Ebrahimi return skip;
2580*b7893ccfSSadaf Ebrahimi }
2581*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2582*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateDisplayPlaneSurfaceKHR(
2583*b7893ccfSSadaf Ebrahimi VkInstance instance,
2584*b7893ccfSSadaf Ebrahimi const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2585*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2586*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
2587*b7893ccfSSadaf Ebrahimi bool skip = false;
2588*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameter", kVUIDUndefined);
2589*b7893ccfSSadaf Ebrahimi if (pCreateInfo) {
2590*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, pCreateInfo->displayMode, kVulkanObjectTypeDisplayModeKHR, false, "VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameter", kVUIDUndefined);
2591*b7893ccfSSadaf Ebrahimi }
2592*b7893ccfSSadaf Ebrahimi
2593*b7893ccfSSadaf Ebrahimi return skip;
2594*b7893ccfSSadaf Ebrahimi }
2595*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)2596*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateDisplayPlaneSurfaceKHR(
2597*b7893ccfSSadaf Ebrahimi VkInstance instance,
2598*b7893ccfSSadaf Ebrahimi const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2599*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2600*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
2601*b7893ccfSSadaf Ebrahimi VkResult result) {
2602*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2603*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
2604*b7893ccfSSadaf Ebrahimi
2605*b7893ccfSSadaf Ebrahimi }
2606*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains)2607*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateSharedSwapchainsKHR(
2608*b7893ccfSSadaf Ebrahimi VkDevice device,
2609*b7893ccfSSadaf Ebrahimi uint32_t swapchainCount,
2610*b7893ccfSSadaf Ebrahimi const VkSwapchainCreateInfoKHR* pCreateInfos,
2611*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2612*b7893ccfSSadaf Ebrahimi VkSwapchainKHR* pSwapchains) {
2613*b7893ccfSSadaf Ebrahimi bool skip = false;
2614*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateSharedSwapchainsKHR-device-parameter", kVUIDUndefined);
2615*b7893ccfSSadaf Ebrahimi if (pCreateInfos) {
2616*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < swapchainCount; ++index0) {
2617*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-VkSwapchainCreateInfoKHR-surface-parameter", "VUID-VkSwapchainCreateInfoKHR-commonparent");
2618*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].oldSwapchain, kVulkanObjectTypeSwapchainKHR, true, "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter", "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parent");
2619*b7893ccfSSadaf Ebrahimi }
2620*b7893ccfSSadaf Ebrahimi }
2621*b7893ccfSSadaf Ebrahimi
2622*b7893ccfSSadaf Ebrahimi return skip;
2623*b7893ccfSSadaf Ebrahimi }
2624*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains,VkResult result)2625*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateSharedSwapchainsKHR(
2626*b7893ccfSSadaf Ebrahimi VkDevice device,
2627*b7893ccfSSadaf Ebrahimi uint32_t swapchainCount,
2628*b7893ccfSSadaf Ebrahimi const VkSwapchainCreateInfoKHR* pCreateInfos,
2629*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2630*b7893ccfSSadaf Ebrahimi VkSwapchainKHR* pSwapchains,
2631*b7893ccfSSadaf Ebrahimi VkResult result) {
2632*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2633*b7893ccfSSadaf Ebrahimi if (pSwapchains) {
2634*b7893ccfSSadaf Ebrahimi for (uint32_t index = 0; index < swapchainCount; index++) {
2635*b7893ccfSSadaf Ebrahimi CreateObject(device, pSwapchains[index], kVulkanObjectTypeSwapchainKHR, pAllocator);
2636*b7893ccfSSadaf Ebrahimi }
2637*b7893ccfSSadaf Ebrahimi }
2638*b7893ccfSSadaf Ebrahimi
2639*b7893ccfSSadaf Ebrahimi }
2640*b7893ccfSSadaf Ebrahimi
2641*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XLIB_KHR
2642*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2643*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateXlibSurfaceKHR(
2644*b7893ccfSSadaf Ebrahimi VkInstance instance,
2645*b7893ccfSSadaf Ebrahimi const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2646*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2647*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
2648*b7893ccfSSadaf Ebrahimi bool skip = false;
2649*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateXlibSurfaceKHR-instance-parameter", kVUIDUndefined);
2650*b7893ccfSSadaf Ebrahimi
2651*b7893ccfSSadaf Ebrahimi return skip;
2652*b7893ccfSSadaf Ebrahimi }
2653*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)2654*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateXlibSurfaceKHR(
2655*b7893ccfSSadaf Ebrahimi VkInstance instance,
2656*b7893ccfSSadaf Ebrahimi const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2657*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2658*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
2659*b7893ccfSSadaf Ebrahimi VkResult result) {
2660*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2661*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
2662*b7893ccfSSadaf Ebrahimi
2663*b7893ccfSSadaf Ebrahimi }
2664*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_XLIB_KHR
2665*b7893ccfSSadaf Ebrahimi
2666*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XLIB_KHR
2667*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID)2668*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceXlibPresentationSupportKHR(
2669*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2670*b7893ccfSSadaf Ebrahimi uint32_t queueFamilyIndex,
2671*b7893ccfSSadaf Ebrahimi Display* dpy,
2672*b7893ccfSSadaf Ebrahimi VisualID visualID) {
2673*b7893ccfSSadaf Ebrahimi bool skip = false;
2674*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameter", kVUIDUndefined);
2675*b7893ccfSSadaf Ebrahimi
2676*b7893ccfSSadaf Ebrahimi return skip;
2677*b7893ccfSSadaf Ebrahimi }
2678*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_XLIB_KHR
2679*b7893ccfSSadaf Ebrahimi
2680*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XCB_KHR
2681*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2682*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateXcbSurfaceKHR(
2683*b7893ccfSSadaf Ebrahimi VkInstance instance,
2684*b7893ccfSSadaf Ebrahimi const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2685*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2686*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
2687*b7893ccfSSadaf Ebrahimi bool skip = false;
2688*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateXcbSurfaceKHR-instance-parameter", kVUIDUndefined);
2689*b7893ccfSSadaf Ebrahimi
2690*b7893ccfSSadaf Ebrahimi return skip;
2691*b7893ccfSSadaf Ebrahimi }
2692*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)2693*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateXcbSurfaceKHR(
2694*b7893ccfSSadaf Ebrahimi VkInstance instance,
2695*b7893ccfSSadaf Ebrahimi const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2696*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2697*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
2698*b7893ccfSSadaf Ebrahimi VkResult result) {
2699*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2700*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
2701*b7893ccfSSadaf Ebrahimi
2702*b7893ccfSSadaf Ebrahimi }
2703*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_XCB_KHR
2704*b7893ccfSSadaf Ebrahimi
2705*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XCB_KHR
2706*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id)2707*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceXcbPresentationSupportKHR(
2708*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2709*b7893ccfSSadaf Ebrahimi uint32_t queueFamilyIndex,
2710*b7893ccfSSadaf Ebrahimi xcb_connection_t* connection,
2711*b7893ccfSSadaf Ebrahimi xcb_visualid_t visual_id) {
2712*b7893ccfSSadaf Ebrahimi bool skip = false;
2713*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameter", kVUIDUndefined);
2714*b7893ccfSSadaf Ebrahimi
2715*b7893ccfSSadaf Ebrahimi return skip;
2716*b7893ccfSSadaf Ebrahimi }
2717*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_XCB_KHR
2718*b7893ccfSSadaf Ebrahimi
2719*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WAYLAND_KHR
2720*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2721*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateWaylandSurfaceKHR(
2722*b7893ccfSSadaf Ebrahimi VkInstance instance,
2723*b7893ccfSSadaf Ebrahimi const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2724*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2725*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
2726*b7893ccfSSadaf Ebrahimi bool skip = false;
2727*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateWaylandSurfaceKHR-instance-parameter", kVUIDUndefined);
2728*b7893ccfSSadaf Ebrahimi
2729*b7893ccfSSadaf Ebrahimi return skip;
2730*b7893ccfSSadaf Ebrahimi }
2731*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)2732*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateWaylandSurfaceKHR(
2733*b7893ccfSSadaf Ebrahimi VkInstance instance,
2734*b7893ccfSSadaf Ebrahimi const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2735*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2736*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
2737*b7893ccfSSadaf Ebrahimi VkResult result) {
2738*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2739*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
2740*b7893ccfSSadaf Ebrahimi
2741*b7893ccfSSadaf Ebrahimi }
2742*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WAYLAND_KHR
2743*b7893ccfSSadaf Ebrahimi
2744*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WAYLAND_KHR
2745*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,struct wl_display * display)2746*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceWaylandPresentationSupportKHR(
2747*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2748*b7893ccfSSadaf Ebrahimi uint32_t queueFamilyIndex,
2749*b7893ccfSSadaf Ebrahimi struct wl_display* display) {
2750*b7893ccfSSadaf Ebrahimi bool skip = false;
2751*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameter", kVUIDUndefined);
2752*b7893ccfSSadaf Ebrahimi
2753*b7893ccfSSadaf Ebrahimi return skip;
2754*b7893ccfSSadaf Ebrahimi }
2755*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WAYLAND_KHR
2756*b7893ccfSSadaf Ebrahimi
2757*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_ANDROID_KHR
2758*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2759*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateAndroidSurfaceKHR(
2760*b7893ccfSSadaf Ebrahimi VkInstance instance,
2761*b7893ccfSSadaf Ebrahimi const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2762*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2763*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
2764*b7893ccfSSadaf Ebrahimi bool skip = false;
2765*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateAndroidSurfaceKHR-instance-parameter", kVUIDUndefined);
2766*b7893ccfSSadaf Ebrahimi
2767*b7893ccfSSadaf Ebrahimi return skip;
2768*b7893ccfSSadaf Ebrahimi }
2769*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)2770*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateAndroidSurfaceKHR(
2771*b7893ccfSSadaf Ebrahimi VkInstance instance,
2772*b7893ccfSSadaf Ebrahimi const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2773*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2774*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
2775*b7893ccfSSadaf Ebrahimi VkResult result) {
2776*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2777*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
2778*b7893ccfSSadaf Ebrahimi
2779*b7893ccfSSadaf Ebrahimi }
2780*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_ANDROID_KHR
2781*b7893ccfSSadaf Ebrahimi
2782*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
2783*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2784*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateWin32SurfaceKHR(
2785*b7893ccfSSadaf Ebrahimi VkInstance instance,
2786*b7893ccfSSadaf Ebrahimi const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2787*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2788*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
2789*b7893ccfSSadaf Ebrahimi bool skip = false;
2790*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateWin32SurfaceKHR-instance-parameter", kVUIDUndefined);
2791*b7893ccfSSadaf Ebrahimi
2792*b7893ccfSSadaf Ebrahimi return skip;
2793*b7893ccfSSadaf Ebrahimi }
2794*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)2795*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateWin32SurfaceKHR(
2796*b7893ccfSSadaf Ebrahimi VkInstance instance,
2797*b7893ccfSSadaf Ebrahimi const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2798*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
2799*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
2800*b7893ccfSSadaf Ebrahimi VkResult result) {
2801*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
2802*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
2803*b7893ccfSSadaf Ebrahimi
2804*b7893ccfSSadaf Ebrahimi }
2805*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
2806*b7893ccfSSadaf Ebrahimi
2807*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
2808*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex)2809*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceWin32PresentationSupportKHR(
2810*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2811*b7893ccfSSadaf Ebrahimi uint32_t queueFamilyIndex) {
2812*b7893ccfSSadaf Ebrahimi bool skip = false;
2813*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameter", kVUIDUndefined);
2814*b7893ccfSSadaf Ebrahimi
2815*b7893ccfSSadaf Ebrahimi return skip;
2816*b7893ccfSSadaf Ebrahimi }
2817*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
2818*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)2819*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceFeatures2KHR(
2820*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2821*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceFeatures2* pFeatures) {
2822*b7893ccfSSadaf Ebrahimi bool skip = false;
2823*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameter", kVUIDUndefined);
2824*b7893ccfSSadaf Ebrahimi
2825*b7893ccfSSadaf Ebrahimi return skip;
2826*b7893ccfSSadaf Ebrahimi }
2827*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)2828*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceProperties2KHR(
2829*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2830*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceProperties2* pProperties) {
2831*b7893ccfSSadaf Ebrahimi bool skip = false;
2832*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceProperties2-physicalDevice-parameter", kVUIDUndefined);
2833*b7893ccfSSadaf Ebrahimi
2834*b7893ccfSSadaf Ebrahimi return skip;
2835*b7893ccfSSadaf Ebrahimi }
2836*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)2837*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceFormatProperties2KHR(
2838*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2839*b7893ccfSSadaf Ebrahimi VkFormat format,
2840*b7893ccfSSadaf Ebrahimi VkFormatProperties2* pFormatProperties) {
2841*b7893ccfSSadaf Ebrahimi bool skip = false;
2842*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceFormatProperties2-physicalDevice-parameter", kVUIDUndefined);
2843*b7893ccfSSadaf Ebrahimi
2844*b7893ccfSSadaf Ebrahimi return skip;
2845*b7893ccfSSadaf Ebrahimi }
2846*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)2847*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceImageFormatProperties2KHR(
2848*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2849*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2850*b7893ccfSSadaf Ebrahimi VkImageFormatProperties2* pImageFormatProperties) {
2851*b7893ccfSSadaf Ebrahimi bool skip = false;
2852*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter", kVUIDUndefined);
2853*b7893ccfSSadaf Ebrahimi
2854*b7893ccfSSadaf Ebrahimi return skip;
2855*b7893ccfSSadaf Ebrahimi }
2856*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)2857*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceMemoryProperties2KHR(
2858*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2859*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
2860*b7893ccfSSadaf Ebrahimi bool skip = false;
2861*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameter", kVUIDUndefined);
2862*b7893ccfSSadaf Ebrahimi
2863*b7893ccfSSadaf Ebrahimi return skip;
2864*b7893ccfSSadaf Ebrahimi }
2865*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)2866*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSparseImageFormatProperties2KHR(
2867*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2868*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2869*b7893ccfSSadaf Ebrahimi uint32_t* pPropertyCount,
2870*b7893ccfSSadaf Ebrahimi VkSparseImageFormatProperties2* pProperties) {
2871*b7893ccfSSadaf Ebrahimi bool skip = false;
2872*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameter", kVUIDUndefined);
2873*b7893ccfSSadaf Ebrahimi
2874*b7893ccfSSadaf Ebrahimi return skip;
2875*b7893ccfSSadaf Ebrahimi }
2876*b7893ccfSSadaf Ebrahimi
PreCallValidateGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)2877*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetDeviceGroupPeerMemoryFeaturesKHR(
2878*b7893ccfSSadaf Ebrahimi VkDevice device,
2879*b7893ccfSSadaf Ebrahimi uint32_t heapIndex,
2880*b7893ccfSSadaf Ebrahimi uint32_t localDeviceIndex,
2881*b7893ccfSSadaf Ebrahimi uint32_t remoteDeviceIndex,
2882*b7893ccfSSadaf Ebrahimi VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
2883*b7893ccfSSadaf Ebrahimi bool skip = false;
2884*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameter", kVUIDUndefined);
2885*b7893ccfSSadaf Ebrahimi
2886*b7893ccfSSadaf Ebrahimi return skip;
2887*b7893ccfSSadaf Ebrahimi }
2888*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask)2889*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetDeviceMaskKHR(
2890*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
2891*b7893ccfSSadaf Ebrahimi uint32_t deviceMask) {
2892*b7893ccfSSadaf Ebrahimi bool skip = false;
2893*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetDeviceMask-commandBuffer-parameter", kVUIDUndefined);
2894*b7893ccfSSadaf Ebrahimi
2895*b7893ccfSSadaf Ebrahimi return skip;
2896*b7893ccfSSadaf Ebrahimi }
2897*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)2898*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDispatchBaseKHR(
2899*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
2900*b7893ccfSSadaf Ebrahimi uint32_t baseGroupX,
2901*b7893ccfSSadaf Ebrahimi uint32_t baseGroupY,
2902*b7893ccfSSadaf Ebrahimi uint32_t baseGroupZ,
2903*b7893ccfSSadaf Ebrahimi uint32_t groupCountX,
2904*b7893ccfSSadaf Ebrahimi uint32_t groupCountY,
2905*b7893ccfSSadaf Ebrahimi uint32_t groupCountZ) {
2906*b7893ccfSSadaf Ebrahimi bool skip = false;
2907*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDispatchBase-commandBuffer-parameter", kVUIDUndefined);
2908*b7893ccfSSadaf Ebrahimi
2909*b7893ccfSSadaf Ebrahimi return skip;
2910*b7893ccfSSadaf Ebrahimi }
2911*b7893ccfSSadaf Ebrahimi
PreCallValidateTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)2912*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateTrimCommandPoolKHR(
2913*b7893ccfSSadaf Ebrahimi VkDevice device,
2914*b7893ccfSSadaf Ebrahimi VkCommandPool commandPool,
2915*b7893ccfSSadaf Ebrahimi VkCommandPoolTrimFlags flags) {
2916*b7893ccfSSadaf Ebrahimi bool skip = false;
2917*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkTrimCommandPool-device-parameter", kVUIDUndefined);
2918*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, commandPool, kVulkanObjectTypeCommandPool, false, "VUID-vkTrimCommandPool-commandPool-parameter", "VUID-vkTrimCommandPool-commandPool-parent");
2919*b7893ccfSSadaf Ebrahimi
2920*b7893ccfSSadaf Ebrahimi return skip;
2921*b7893ccfSSadaf Ebrahimi }
2922*b7893ccfSSadaf Ebrahimi
PreCallValidateEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)2923*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateEnumeratePhysicalDeviceGroupsKHR(
2924*b7893ccfSSadaf Ebrahimi VkInstance instance,
2925*b7893ccfSSadaf Ebrahimi uint32_t* pPhysicalDeviceGroupCount,
2926*b7893ccfSSadaf Ebrahimi VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
2927*b7893ccfSSadaf Ebrahimi bool skip = false;
2928*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkEnumeratePhysicalDeviceGroups-instance-parameter", kVUIDUndefined);
2929*b7893ccfSSadaf Ebrahimi
2930*b7893ccfSSadaf Ebrahimi return skip;
2931*b7893ccfSSadaf Ebrahimi }
2932*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)2933*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceExternalBufferPropertiesKHR(
2934*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2935*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2936*b7893ccfSSadaf Ebrahimi VkExternalBufferProperties* pExternalBufferProperties) {
2937*b7893ccfSSadaf Ebrahimi bool skip = false;
2938*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameter", kVUIDUndefined);
2939*b7893ccfSSadaf Ebrahimi
2940*b7893ccfSSadaf Ebrahimi return skip;
2941*b7893ccfSSadaf Ebrahimi }
2942*b7893ccfSSadaf Ebrahimi
2943*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
2944*b7893ccfSSadaf Ebrahimi
PreCallValidateGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)2945*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetMemoryWin32HandleKHR(
2946*b7893ccfSSadaf Ebrahimi VkDevice device,
2947*b7893ccfSSadaf Ebrahimi const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2948*b7893ccfSSadaf Ebrahimi HANDLE* pHandle) {
2949*b7893ccfSSadaf Ebrahimi bool skip = false;
2950*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetMemoryWin32HandleKHR-device-parameter", kVUIDUndefined);
2951*b7893ccfSSadaf Ebrahimi if (pGetWin32HandleInfo) {
2952*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pGetWin32HandleInfo->memory, kVulkanObjectTypeDeviceMemory, false, "VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter", kVUIDUndefined);
2953*b7893ccfSSadaf Ebrahimi }
2954*b7893ccfSSadaf Ebrahimi
2955*b7893ccfSSadaf Ebrahimi return skip;
2956*b7893ccfSSadaf Ebrahimi }
2957*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
2958*b7893ccfSSadaf Ebrahimi
2959*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
2960*b7893ccfSSadaf Ebrahimi
PreCallValidateGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties)2961*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetMemoryWin32HandlePropertiesKHR(
2962*b7893ccfSSadaf Ebrahimi VkDevice device,
2963*b7893ccfSSadaf Ebrahimi VkExternalMemoryHandleTypeFlagBits handleType,
2964*b7893ccfSSadaf Ebrahimi HANDLE handle,
2965*b7893ccfSSadaf Ebrahimi VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
2966*b7893ccfSSadaf Ebrahimi bool skip = false;
2967*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter", kVUIDUndefined);
2968*b7893ccfSSadaf Ebrahimi
2969*b7893ccfSSadaf Ebrahimi return skip;
2970*b7893ccfSSadaf Ebrahimi }
2971*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
2972*b7893ccfSSadaf Ebrahimi
PreCallValidateGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd)2973*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetMemoryFdKHR(
2974*b7893ccfSSadaf Ebrahimi VkDevice device,
2975*b7893ccfSSadaf Ebrahimi const VkMemoryGetFdInfoKHR* pGetFdInfo,
2976*b7893ccfSSadaf Ebrahimi int* pFd) {
2977*b7893ccfSSadaf Ebrahimi bool skip = false;
2978*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetMemoryFdKHR-device-parameter", kVUIDUndefined);
2979*b7893ccfSSadaf Ebrahimi if (pGetFdInfo) {
2980*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pGetFdInfo->memory, kVulkanObjectTypeDeviceMemory, false, "VUID-VkMemoryGetFdInfoKHR-memory-parameter", kVUIDUndefined);
2981*b7893ccfSSadaf Ebrahimi }
2982*b7893ccfSSadaf Ebrahimi
2983*b7893ccfSSadaf Ebrahimi return skip;
2984*b7893ccfSSadaf Ebrahimi }
2985*b7893ccfSSadaf Ebrahimi
PreCallValidateGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties)2986*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetMemoryFdPropertiesKHR(
2987*b7893ccfSSadaf Ebrahimi VkDevice device,
2988*b7893ccfSSadaf Ebrahimi VkExternalMemoryHandleTypeFlagBits handleType,
2989*b7893ccfSSadaf Ebrahimi int fd,
2990*b7893ccfSSadaf Ebrahimi VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
2991*b7893ccfSSadaf Ebrahimi bool skip = false;
2992*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetMemoryFdPropertiesKHR-device-parameter", kVUIDUndefined);
2993*b7893ccfSSadaf Ebrahimi
2994*b7893ccfSSadaf Ebrahimi return skip;
2995*b7893ccfSSadaf Ebrahimi }
2996*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)2997*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2998*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
2999*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
3000*b7893ccfSSadaf Ebrahimi VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
3001*b7893ccfSSadaf Ebrahimi bool skip = false;
3002*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameter", kVUIDUndefined);
3003*b7893ccfSSadaf Ebrahimi
3004*b7893ccfSSadaf Ebrahimi return skip;
3005*b7893ccfSSadaf Ebrahimi }
3006*b7893ccfSSadaf Ebrahimi
3007*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
3008*b7893ccfSSadaf Ebrahimi
PreCallValidateImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo)3009*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateImportSemaphoreWin32HandleKHR(
3010*b7893ccfSSadaf Ebrahimi VkDevice device,
3011*b7893ccfSSadaf Ebrahimi const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
3012*b7893ccfSSadaf Ebrahimi bool skip = false;
3013*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkImportSemaphoreWin32HandleKHR-device-parameter", kVUIDUndefined);
3014*b7893ccfSSadaf Ebrahimi if (pImportSemaphoreWin32HandleInfo) {
3015*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pImportSemaphoreWin32HandleInfo->semaphore, kVulkanObjectTypeSemaphore, false, "VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter", kVUIDUndefined);
3016*b7893ccfSSadaf Ebrahimi }
3017*b7893ccfSSadaf Ebrahimi
3018*b7893ccfSSadaf Ebrahimi return skip;
3019*b7893ccfSSadaf Ebrahimi }
3020*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
3021*b7893ccfSSadaf Ebrahimi
3022*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
3023*b7893ccfSSadaf Ebrahimi
PreCallValidateGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3024*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetSemaphoreWin32HandleKHR(
3025*b7893ccfSSadaf Ebrahimi VkDevice device,
3026*b7893ccfSSadaf Ebrahimi const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3027*b7893ccfSSadaf Ebrahimi HANDLE* pHandle) {
3028*b7893ccfSSadaf Ebrahimi bool skip = false;
3029*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetSemaphoreWin32HandleKHR-device-parameter", kVUIDUndefined);
3030*b7893ccfSSadaf Ebrahimi if (pGetWin32HandleInfo) {
3031*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pGetWin32HandleInfo->semaphore, kVulkanObjectTypeSemaphore, false, "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter", kVUIDUndefined);
3032*b7893ccfSSadaf Ebrahimi }
3033*b7893ccfSSadaf Ebrahimi
3034*b7893ccfSSadaf Ebrahimi return skip;
3035*b7893ccfSSadaf Ebrahimi }
3036*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
3037*b7893ccfSSadaf Ebrahimi
PreCallValidateImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)3038*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateImportSemaphoreFdKHR(
3039*b7893ccfSSadaf Ebrahimi VkDevice device,
3040*b7893ccfSSadaf Ebrahimi const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
3041*b7893ccfSSadaf Ebrahimi bool skip = false;
3042*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkImportSemaphoreFdKHR-device-parameter", kVUIDUndefined);
3043*b7893ccfSSadaf Ebrahimi if (pImportSemaphoreFdInfo) {
3044*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pImportSemaphoreFdInfo->semaphore, kVulkanObjectTypeSemaphore, false, "VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter", kVUIDUndefined);
3045*b7893ccfSSadaf Ebrahimi }
3046*b7893ccfSSadaf Ebrahimi
3047*b7893ccfSSadaf Ebrahimi return skip;
3048*b7893ccfSSadaf Ebrahimi }
3049*b7893ccfSSadaf Ebrahimi
PreCallValidateGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)3050*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetSemaphoreFdKHR(
3051*b7893ccfSSadaf Ebrahimi VkDevice device,
3052*b7893ccfSSadaf Ebrahimi const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
3053*b7893ccfSSadaf Ebrahimi int* pFd) {
3054*b7893ccfSSadaf Ebrahimi bool skip = false;
3055*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetSemaphoreFdKHR-device-parameter", kVUIDUndefined);
3056*b7893ccfSSadaf Ebrahimi if (pGetFdInfo) {
3057*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pGetFdInfo->semaphore, kVulkanObjectTypeSemaphore, false, "VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter", kVUIDUndefined);
3058*b7893ccfSSadaf Ebrahimi }
3059*b7893ccfSSadaf Ebrahimi
3060*b7893ccfSSadaf Ebrahimi return skip;
3061*b7893ccfSSadaf Ebrahimi }
3062*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData)3063*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdPushDescriptorSetWithTemplateKHR(
3064*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3065*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3066*b7893ccfSSadaf Ebrahimi VkPipelineLayout layout,
3067*b7893ccfSSadaf Ebrahimi uint32_t set,
3068*b7893ccfSSadaf Ebrahimi const void* pData) {
3069*b7893ccfSSadaf Ebrahimi bool skip = false;
3070*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter", "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent");
3071*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate, false, "VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameter", "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent");
3072*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, layout, kVulkanObjectTypePipelineLayout, false, "VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameter", "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent");
3073*b7893ccfSSadaf Ebrahimi
3074*b7893ccfSSadaf Ebrahimi return skip;
3075*b7893ccfSSadaf Ebrahimi }
3076*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)3077*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateDescriptorUpdateTemplateKHR(
3078*b7893ccfSSadaf Ebrahimi VkDevice device,
3079*b7893ccfSSadaf Ebrahimi const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
3080*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3081*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
3082*b7893ccfSSadaf Ebrahimi bool skip = false;
3083*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateDescriptorUpdateTemplate-device-parameter", kVUIDUndefined);
3084*b7893ccfSSadaf Ebrahimi if (pCreateInfo) {
3085*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->descriptorSetLayout, kVulkanObjectTypeDescriptorSetLayout, true, "VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorSetLayout-parameter", "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent");
3086*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->pipelineLayout, kVulkanObjectTypePipelineLayout, true, kVUIDUndefined, "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent");
3087*b7893ccfSSadaf Ebrahimi }
3088*b7893ccfSSadaf Ebrahimi
3089*b7893ccfSSadaf Ebrahimi return skip;
3090*b7893ccfSSadaf Ebrahimi }
3091*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate,VkResult result)3092*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateDescriptorUpdateTemplateKHR(
3093*b7893ccfSSadaf Ebrahimi VkDevice device,
3094*b7893ccfSSadaf Ebrahimi const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
3095*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3096*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate,
3097*b7893ccfSSadaf Ebrahimi VkResult result) {
3098*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
3099*b7893ccfSSadaf Ebrahimi CreateObject(device, *pDescriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate, pAllocator);
3100*b7893ccfSSadaf Ebrahimi
3101*b7893ccfSSadaf Ebrahimi }
3102*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)3103*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyDescriptorUpdateTemplateKHR(
3104*b7893ccfSSadaf Ebrahimi VkDevice device,
3105*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3106*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
3107*b7893ccfSSadaf Ebrahimi bool skip = false;
3108*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyDescriptorUpdateTemplate-device-parameter", kVUIDUndefined);
3109*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate, true, "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameter", "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parent");
3110*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate, pAllocator, "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356", "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357");
3111*b7893ccfSSadaf Ebrahimi
3112*b7893ccfSSadaf Ebrahimi return skip;
3113*b7893ccfSSadaf Ebrahimi }
3114*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)3115*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyDescriptorUpdateTemplateKHR(
3116*b7893ccfSSadaf Ebrahimi VkDevice device,
3117*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3118*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
3119*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate);
3120*b7893ccfSSadaf Ebrahimi
3121*b7893ccfSSadaf Ebrahimi }
3122*b7893ccfSSadaf Ebrahimi
PreCallValidateUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)3123*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateUpdateDescriptorSetWithTemplateKHR(
3124*b7893ccfSSadaf Ebrahimi VkDevice device,
3125*b7893ccfSSadaf Ebrahimi VkDescriptorSet descriptorSet,
3126*b7893ccfSSadaf Ebrahimi VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3127*b7893ccfSSadaf Ebrahimi const void* pData) {
3128*b7893ccfSSadaf Ebrahimi bool skip = false;
3129*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkUpdateDescriptorSetWithTemplate-device-parameter", kVUIDUndefined);
3130*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, descriptorSet, kVulkanObjectTypeDescriptorSet, false, "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameter", kVUIDUndefined);
3131*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, descriptorUpdateTemplate, kVulkanObjectTypeDescriptorUpdateTemplate, false, "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameter", "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent");
3132*b7893ccfSSadaf Ebrahimi
3133*b7893ccfSSadaf Ebrahimi return skip;
3134*b7893ccfSSadaf Ebrahimi }
3135*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2KHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)3136*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateRenderPass2KHR(
3137*b7893ccfSSadaf Ebrahimi VkDevice device,
3138*b7893ccfSSadaf Ebrahimi const VkRenderPassCreateInfo2KHR* pCreateInfo,
3139*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3140*b7893ccfSSadaf Ebrahimi VkRenderPass* pRenderPass) {
3141*b7893ccfSSadaf Ebrahimi bool skip = false;
3142*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateRenderPass2KHR-device-parameter", kVUIDUndefined);
3143*b7893ccfSSadaf Ebrahimi
3144*b7893ccfSSadaf Ebrahimi return skip;
3145*b7893ccfSSadaf Ebrahimi }
3146*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2KHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass,VkResult result)3147*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateRenderPass2KHR(
3148*b7893ccfSSadaf Ebrahimi VkDevice device,
3149*b7893ccfSSadaf Ebrahimi const VkRenderPassCreateInfo2KHR* pCreateInfo,
3150*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3151*b7893ccfSSadaf Ebrahimi VkRenderPass* pRenderPass,
3152*b7893ccfSSadaf Ebrahimi VkResult result) {
3153*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
3154*b7893ccfSSadaf Ebrahimi CreateObject(device, *pRenderPass, kVulkanObjectTypeRenderPass, pAllocator);
3155*b7893ccfSSadaf Ebrahimi
3156*b7893ccfSSadaf Ebrahimi }
3157*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfoKHR * pSubpassBeginInfo)3158*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBeginRenderPass2KHR(
3159*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3160*b7893ccfSSadaf Ebrahimi const VkRenderPassBeginInfo* pRenderPassBegin,
3161*b7893ccfSSadaf Ebrahimi const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
3162*b7893ccfSSadaf Ebrahimi bool skip = false;
3163*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBeginRenderPass2KHR-commandBuffer-parameter", kVUIDUndefined);
3164*b7893ccfSSadaf Ebrahimi if (pRenderPassBegin) {
3165*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pRenderPassBegin->renderPass, kVulkanObjectTypeRenderPass, false, "VUID-VkRenderPassBeginInfo-renderPass-parameter", "VUID-VkRenderPassBeginInfo-commonparent");
3166*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pRenderPassBegin->framebuffer, kVulkanObjectTypeFramebuffer, false, "VUID-VkRenderPassBeginInfo-framebuffer-parameter", "VUID-VkRenderPassBeginInfo-commonparent");
3167*b7893ccfSSadaf Ebrahimi }
3168*b7893ccfSSadaf Ebrahimi
3169*b7893ccfSSadaf Ebrahimi return skip;
3170*b7893ccfSSadaf Ebrahimi }
3171*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfoKHR * pSubpassBeginInfo,const VkSubpassEndInfoKHR * pSubpassEndInfo)3172*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdNextSubpass2KHR(
3173*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3174*b7893ccfSSadaf Ebrahimi const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
3175*b7893ccfSSadaf Ebrahimi const VkSubpassEndInfoKHR* pSubpassEndInfo) {
3176*b7893ccfSSadaf Ebrahimi bool skip = false;
3177*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdNextSubpass2KHR-commandBuffer-parameter", kVUIDUndefined);
3178*b7893ccfSSadaf Ebrahimi
3179*b7893ccfSSadaf Ebrahimi return skip;
3180*b7893ccfSSadaf Ebrahimi }
3181*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfoKHR * pSubpassEndInfo)3182*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdEndRenderPass2KHR(
3183*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3184*b7893ccfSSadaf Ebrahimi const VkSubpassEndInfoKHR* pSubpassEndInfo) {
3185*b7893ccfSSadaf Ebrahimi bool skip = false;
3186*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdEndRenderPass2KHR-commandBuffer-parameter", kVUIDUndefined);
3187*b7893ccfSSadaf Ebrahimi
3188*b7893ccfSSadaf Ebrahimi return skip;
3189*b7893ccfSSadaf Ebrahimi }
3190*b7893ccfSSadaf Ebrahimi
PreCallValidateGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain)3191*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetSwapchainStatusKHR(
3192*b7893ccfSSadaf Ebrahimi VkDevice device,
3193*b7893ccfSSadaf Ebrahimi VkSwapchainKHR swapchain) {
3194*b7893ccfSSadaf Ebrahimi bool skip = false;
3195*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetSwapchainStatusKHR-device-parameter", "VUID-vkGetSwapchainStatusKHR-commonparent");
3196*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, "VUID-vkGetSwapchainStatusKHR-swapchain-parameter", "VUID-vkGetSwapchainStatusKHR-commonparent");
3197*b7893ccfSSadaf Ebrahimi
3198*b7893ccfSSadaf Ebrahimi return skip;
3199*b7893ccfSSadaf Ebrahimi }
3200*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)3201*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceExternalFencePropertiesKHR(
3202*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
3203*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
3204*b7893ccfSSadaf Ebrahimi VkExternalFenceProperties* pExternalFenceProperties) {
3205*b7893ccfSSadaf Ebrahimi bool skip = false;
3206*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameter", kVUIDUndefined);
3207*b7893ccfSSadaf Ebrahimi
3208*b7893ccfSSadaf Ebrahimi return skip;
3209*b7893ccfSSadaf Ebrahimi }
3210*b7893ccfSSadaf Ebrahimi
3211*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
3212*b7893ccfSSadaf Ebrahimi
PreCallValidateImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo)3213*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateImportFenceWin32HandleKHR(
3214*b7893ccfSSadaf Ebrahimi VkDevice device,
3215*b7893ccfSSadaf Ebrahimi const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
3216*b7893ccfSSadaf Ebrahimi bool skip = false;
3217*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkImportFenceWin32HandleKHR-device-parameter", kVUIDUndefined);
3218*b7893ccfSSadaf Ebrahimi if (pImportFenceWin32HandleInfo) {
3219*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pImportFenceWin32HandleInfo->fence, kVulkanObjectTypeFence, false, "VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter", kVUIDUndefined);
3220*b7893ccfSSadaf Ebrahimi }
3221*b7893ccfSSadaf Ebrahimi
3222*b7893ccfSSadaf Ebrahimi return skip;
3223*b7893ccfSSadaf Ebrahimi }
3224*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
3225*b7893ccfSSadaf Ebrahimi
3226*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
3227*b7893ccfSSadaf Ebrahimi
PreCallValidateGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3228*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetFenceWin32HandleKHR(
3229*b7893ccfSSadaf Ebrahimi VkDevice device,
3230*b7893ccfSSadaf Ebrahimi const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3231*b7893ccfSSadaf Ebrahimi HANDLE* pHandle) {
3232*b7893ccfSSadaf Ebrahimi bool skip = false;
3233*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetFenceWin32HandleKHR-device-parameter", kVUIDUndefined);
3234*b7893ccfSSadaf Ebrahimi if (pGetWin32HandleInfo) {
3235*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pGetWin32HandleInfo->fence, kVulkanObjectTypeFence, false, "VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter", kVUIDUndefined);
3236*b7893ccfSSadaf Ebrahimi }
3237*b7893ccfSSadaf Ebrahimi
3238*b7893ccfSSadaf Ebrahimi return skip;
3239*b7893ccfSSadaf Ebrahimi }
3240*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
3241*b7893ccfSSadaf Ebrahimi
PreCallValidateImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo)3242*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateImportFenceFdKHR(
3243*b7893ccfSSadaf Ebrahimi VkDevice device,
3244*b7893ccfSSadaf Ebrahimi const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
3245*b7893ccfSSadaf Ebrahimi bool skip = false;
3246*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkImportFenceFdKHR-device-parameter", kVUIDUndefined);
3247*b7893ccfSSadaf Ebrahimi if (pImportFenceFdInfo) {
3248*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pImportFenceFdInfo->fence, kVulkanObjectTypeFence, false, "VUID-VkImportFenceFdInfoKHR-fence-parameter", kVUIDUndefined);
3249*b7893ccfSSadaf Ebrahimi }
3250*b7893ccfSSadaf Ebrahimi
3251*b7893ccfSSadaf Ebrahimi return skip;
3252*b7893ccfSSadaf Ebrahimi }
3253*b7893ccfSSadaf Ebrahimi
PreCallValidateGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd)3254*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetFenceFdKHR(
3255*b7893ccfSSadaf Ebrahimi VkDevice device,
3256*b7893ccfSSadaf Ebrahimi const VkFenceGetFdInfoKHR* pGetFdInfo,
3257*b7893ccfSSadaf Ebrahimi int* pFd) {
3258*b7893ccfSSadaf Ebrahimi bool skip = false;
3259*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetFenceFdKHR-device-parameter", kVUIDUndefined);
3260*b7893ccfSSadaf Ebrahimi if (pGetFdInfo) {
3261*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pGetFdInfo->fence, kVulkanObjectTypeFence, false, "VUID-VkFenceGetFdInfoKHR-fence-parameter", kVUIDUndefined);
3262*b7893ccfSSadaf Ebrahimi }
3263*b7893ccfSSadaf Ebrahimi
3264*b7893ccfSSadaf Ebrahimi return skip;
3265*b7893ccfSSadaf Ebrahimi }
3266*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSurfaceCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkSurfaceCapabilities2KHR * pSurfaceCapabilities)3267*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSurfaceCapabilities2KHR(
3268*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
3269*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
3270*b7893ccfSSadaf Ebrahimi VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
3271*b7893ccfSSadaf Ebrahimi bool skip = false;
3272*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter", kVUIDUndefined);
3273*b7893ccfSSadaf Ebrahimi if (pSurfaceInfo) {
3274*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, pSurfaceInfo->surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter", kVUIDUndefined);
3275*b7893ccfSSadaf Ebrahimi }
3276*b7893ccfSSadaf Ebrahimi
3277*b7893ccfSSadaf Ebrahimi return skip;
3278*b7893ccfSSadaf Ebrahimi }
3279*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VkSurfaceFormat2KHR * pSurfaceFormats)3280*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSurfaceFormats2KHR(
3281*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
3282*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
3283*b7893ccfSSadaf Ebrahimi uint32_t* pSurfaceFormatCount,
3284*b7893ccfSSadaf Ebrahimi VkSurfaceFormat2KHR* pSurfaceFormats) {
3285*b7893ccfSSadaf Ebrahimi bool skip = false;
3286*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameter", kVUIDUndefined);
3287*b7893ccfSSadaf Ebrahimi if (pSurfaceInfo) {
3288*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, pSurfaceInfo->surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter", kVUIDUndefined);
3289*b7893ccfSSadaf Ebrahimi }
3290*b7893ccfSSadaf Ebrahimi
3291*b7893ccfSSadaf Ebrahimi return skip;
3292*b7893ccfSSadaf Ebrahimi }
3293*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlaneProperties2KHR * pProperties)3294*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceDisplayPlaneProperties2KHR(
3295*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
3296*b7893ccfSSadaf Ebrahimi uint32_t* pPropertyCount,
3297*b7893ccfSSadaf Ebrahimi VkDisplayPlaneProperties2KHR* pProperties) {
3298*b7893ccfSSadaf Ebrahimi bool skip = false;
3299*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameter", kVUIDUndefined);
3300*b7893ccfSSadaf Ebrahimi
3301*b7893ccfSSadaf Ebrahimi return skip;
3302*b7893ccfSSadaf Ebrahimi }
3303*b7893ccfSSadaf Ebrahimi
PreCallValidateGetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,VkDisplayPlaneCapabilities2KHR * pCapabilities)3304*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetDisplayPlaneCapabilities2KHR(
3305*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
3306*b7893ccfSSadaf Ebrahimi const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
3307*b7893ccfSSadaf Ebrahimi VkDisplayPlaneCapabilities2KHR* pCapabilities) {
3308*b7893ccfSSadaf Ebrahimi bool skip = false;
3309*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetDisplayPlaneCapabilities2KHR-physicalDevice-parameter", kVUIDUndefined);
3310*b7893ccfSSadaf Ebrahimi if (pDisplayPlaneInfo) {
3311*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, pDisplayPlaneInfo->mode, kVulkanObjectTypeDisplayModeKHR, false, "VUID-VkDisplayPlaneInfo2KHR-mode-parameter", kVUIDUndefined);
3312*b7893ccfSSadaf Ebrahimi }
3313*b7893ccfSSadaf Ebrahimi
3314*b7893ccfSSadaf Ebrahimi return skip;
3315*b7893ccfSSadaf Ebrahimi }
3316*b7893ccfSSadaf Ebrahimi
PreCallValidateGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3317*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetImageMemoryRequirements2KHR(
3318*b7893ccfSSadaf Ebrahimi VkDevice device,
3319*b7893ccfSSadaf Ebrahimi const VkImageMemoryRequirementsInfo2* pInfo,
3320*b7893ccfSSadaf Ebrahimi VkMemoryRequirements2* pMemoryRequirements) {
3321*b7893ccfSSadaf Ebrahimi bool skip = false;
3322*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageMemoryRequirements2-device-parameter", kVUIDUndefined);
3323*b7893ccfSSadaf Ebrahimi if (pInfo) {
3324*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pInfo->image, kVulkanObjectTypeImage, false, "VUID-VkImageMemoryRequirementsInfo2-image-parameter", kVUIDUndefined);
3325*b7893ccfSSadaf Ebrahimi }
3326*b7893ccfSSadaf Ebrahimi
3327*b7893ccfSSadaf Ebrahimi return skip;
3328*b7893ccfSSadaf Ebrahimi }
3329*b7893ccfSSadaf Ebrahimi
PreCallValidateGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3330*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetBufferMemoryRequirements2KHR(
3331*b7893ccfSSadaf Ebrahimi VkDevice device,
3332*b7893ccfSSadaf Ebrahimi const VkBufferMemoryRequirementsInfo2* pInfo,
3333*b7893ccfSSadaf Ebrahimi VkMemoryRequirements2* pMemoryRequirements) {
3334*b7893ccfSSadaf Ebrahimi bool skip = false;
3335*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetBufferMemoryRequirements2-device-parameter", kVUIDUndefined);
3336*b7893ccfSSadaf Ebrahimi if (pInfo) {
3337*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pInfo->buffer, kVulkanObjectTypeBuffer, false, "VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter", kVUIDUndefined);
3338*b7893ccfSSadaf Ebrahimi }
3339*b7893ccfSSadaf Ebrahimi
3340*b7893ccfSSadaf Ebrahimi return skip;
3341*b7893ccfSSadaf Ebrahimi }
3342*b7893ccfSSadaf Ebrahimi
PreCallValidateGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)3343*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetImageSparseMemoryRequirements2KHR(
3344*b7893ccfSSadaf Ebrahimi VkDevice device,
3345*b7893ccfSSadaf Ebrahimi const VkImageSparseMemoryRequirementsInfo2* pInfo,
3346*b7893ccfSSadaf Ebrahimi uint32_t* pSparseMemoryRequirementCount,
3347*b7893ccfSSadaf Ebrahimi VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
3348*b7893ccfSSadaf Ebrahimi bool skip = false;
3349*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageSparseMemoryRequirements2-device-parameter", kVUIDUndefined);
3350*b7893ccfSSadaf Ebrahimi if (pInfo) {
3351*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pInfo->image, kVulkanObjectTypeImage, false, "VUID-VkImageSparseMemoryRequirementsInfo2-image-parameter", kVUIDUndefined);
3352*b7893ccfSSadaf Ebrahimi }
3353*b7893ccfSSadaf Ebrahimi
3354*b7893ccfSSadaf Ebrahimi return skip;
3355*b7893ccfSSadaf Ebrahimi }
3356*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)3357*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateSamplerYcbcrConversionKHR(
3358*b7893ccfSSadaf Ebrahimi VkDevice device,
3359*b7893ccfSSadaf Ebrahimi const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
3360*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3361*b7893ccfSSadaf Ebrahimi VkSamplerYcbcrConversion* pYcbcrConversion) {
3362*b7893ccfSSadaf Ebrahimi bool skip = false;
3363*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateSamplerYcbcrConversion-device-parameter", kVUIDUndefined);
3364*b7893ccfSSadaf Ebrahimi
3365*b7893ccfSSadaf Ebrahimi return skip;
3366*b7893ccfSSadaf Ebrahimi }
3367*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion,VkResult result)3368*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateSamplerYcbcrConversionKHR(
3369*b7893ccfSSadaf Ebrahimi VkDevice device,
3370*b7893ccfSSadaf Ebrahimi const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
3371*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3372*b7893ccfSSadaf Ebrahimi VkSamplerYcbcrConversion* pYcbcrConversion,
3373*b7893ccfSSadaf Ebrahimi VkResult result) {
3374*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
3375*b7893ccfSSadaf Ebrahimi CreateObject(device, *pYcbcrConversion, kVulkanObjectTypeSamplerYcbcrConversion, pAllocator);
3376*b7893ccfSSadaf Ebrahimi
3377*b7893ccfSSadaf Ebrahimi }
3378*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)3379*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroySamplerYcbcrConversionKHR(
3380*b7893ccfSSadaf Ebrahimi VkDevice device,
3381*b7893ccfSSadaf Ebrahimi VkSamplerYcbcrConversion ycbcrConversion,
3382*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
3383*b7893ccfSSadaf Ebrahimi bool skip = false;
3384*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroySamplerYcbcrConversion-device-parameter", kVUIDUndefined);
3385*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, ycbcrConversion, kVulkanObjectTypeSamplerYcbcrConversion, true, "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameter", "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parent");
3386*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, ycbcrConversion, kVulkanObjectTypeSamplerYcbcrConversion, pAllocator, kVUIDUndefined, kVUIDUndefined);
3387*b7893ccfSSadaf Ebrahimi
3388*b7893ccfSSadaf Ebrahimi return skip;
3389*b7893ccfSSadaf Ebrahimi }
3390*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)3391*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroySamplerYcbcrConversionKHR(
3392*b7893ccfSSadaf Ebrahimi VkDevice device,
3393*b7893ccfSSadaf Ebrahimi VkSamplerYcbcrConversion ycbcrConversion,
3394*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
3395*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, ycbcrConversion, kVulkanObjectTypeSamplerYcbcrConversion);
3396*b7893ccfSSadaf Ebrahimi
3397*b7893ccfSSadaf Ebrahimi }
3398*b7893ccfSSadaf Ebrahimi
PreCallValidateBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)3399*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateBindBufferMemory2KHR(
3400*b7893ccfSSadaf Ebrahimi VkDevice device,
3401*b7893ccfSSadaf Ebrahimi uint32_t bindInfoCount,
3402*b7893ccfSSadaf Ebrahimi const VkBindBufferMemoryInfo* pBindInfos) {
3403*b7893ccfSSadaf Ebrahimi bool skip = false;
3404*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkBindBufferMemory2-device-parameter", kVUIDUndefined);
3405*b7893ccfSSadaf Ebrahimi if (pBindInfos) {
3406*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < bindInfoCount; ++index0) {
3407*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pBindInfos[index0].buffer, kVulkanObjectTypeBuffer, false, "VUID-VkBindBufferMemoryInfo-buffer-parameter", "VUID-VkBindBufferMemoryInfo-commonparent");
3408*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pBindInfos[index0].memory, kVulkanObjectTypeDeviceMemory, false, "VUID-VkBindBufferMemoryInfo-memory-parameter", "VUID-VkBindBufferMemoryInfo-commonparent");
3409*b7893ccfSSadaf Ebrahimi }
3410*b7893ccfSSadaf Ebrahimi }
3411*b7893ccfSSadaf Ebrahimi
3412*b7893ccfSSadaf Ebrahimi return skip;
3413*b7893ccfSSadaf Ebrahimi }
3414*b7893ccfSSadaf Ebrahimi
PreCallValidateBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)3415*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateBindImageMemory2KHR(
3416*b7893ccfSSadaf Ebrahimi VkDevice device,
3417*b7893ccfSSadaf Ebrahimi uint32_t bindInfoCount,
3418*b7893ccfSSadaf Ebrahimi const VkBindImageMemoryInfo* pBindInfos) {
3419*b7893ccfSSadaf Ebrahimi bool skip = false;
3420*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkBindImageMemory2-device-parameter", kVUIDUndefined);
3421*b7893ccfSSadaf Ebrahimi if (pBindInfos) {
3422*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < bindInfoCount; ++index0) {
3423*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pBindInfos[index0].image, kVulkanObjectTypeImage, false, "VUID-VkBindImageMemoryInfo-image-parameter", "VUID-VkBindImageMemoryInfo-commonparent");
3424*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pBindInfos[index0].memory, kVulkanObjectTypeDeviceMemory, true, kVUIDUndefined, "VUID-VkBindImageMemoryInfo-commonparent");
3425*b7893ccfSSadaf Ebrahimi }
3426*b7893ccfSSadaf Ebrahimi }
3427*b7893ccfSSadaf Ebrahimi
3428*b7893ccfSSadaf Ebrahimi return skip;
3429*b7893ccfSSadaf Ebrahimi }
3430*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)3431*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawIndirectCountKHR(
3432*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3433*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
3434*b7893ccfSSadaf Ebrahimi VkDeviceSize offset,
3435*b7893ccfSSadaf Ebrahimi VkBuffer countBuffer,
3436*b7893ccfSSadaf Ebrahimi VkDeviceSize countBufferOffset,
3437*b7893ccfSSadaf Ebrahimi uint32_t maxDrawCount,
3438*b7893ccfSSadaf Ebrahimi uint32_t stride) {
3439*b7893ccfSSadaf Ebrahimi bool skip = false;
3440*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawIndirectCountKHR-commandBuffer-parameter", "VUID-vkCmdDrawIndirectCountKHR-commonparent");
3441*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndirectCountKHR-buffer-parameter", "VUID-vkCmdDrawIndirectCountKHR-commonparent");
3442*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, countBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndirectCountKHR-countBuffer-parameter", "VUID-vkCmdDrawIndirectCountKHR-commonparent");
3443*b7893ccfSSadaf Ebrahimi
3444*b7893ccfSSadaf Ebrahimi return skip;
3445*b7893ccfSSadaf Ebrahimi }
3446*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)3447*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawIndexedIndirectCountKHR(
3448*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3449*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
3450*b7893ccfSSadaf Ebrahimi VkDeviceSize offset,
3451*b7893ccfSSadaf Ebrahimi VkBuffer countBuffer,
3452*b7893ccfSSadaf Ebrahimi VkDeviceSize countBufferOffset,
3453*b7893ccfSSadaf Ebrahimi uint32_t maxDrawCount,
3454*b7893ccfSSadaf Ebrahimi uint32_t stride) {
3455*b7893ccfSSadaf Ebrahimi bool skip = false;
3456*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-parameter", "VUID-vkCmdDrawIndexedIndirectCountKHR-commonparent");
3457*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndexedIndirectCountKHR-buffer-parameter", "VUID-vkCmdDrawIndexedIndirectCountKHR-commonparent");
3458*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, countBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndexedIndirectCountKHR-countBuffer-parameter", "VUID-vkCmdDrawIndexedIndirectCountKHR-commonparent");
3459*b7893ccfSSadaf Ebrahimi
3460*b7893ccfSSadaf Ebrahimi return skip;
3461*b7893ccfSSadaf Ebrahimi }
3462*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties)3463*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPipelineExecutablePropertiesKHR(
3464*b7893ccfSSadaf Ebrahimi VkDevice device,
3465*b7893ccfSSadaf Ebrahimi const VkPipelineInfoKHR* pPipelineInfo,
3466*b7893ccfSSadaf Ebrahimi uint32_t* pExecutableCount,
3467*b7893ccfSSadaf Ebrahimi VkPipelineExecutablePropertiesKHR* pProperties) {
3468*b7893ccfSSadaf Ebrahimi bool skip = false;
3469*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter", kVUIDUndefined);
3470*b7893ccfSSadaf Ebrahimi if (pPipelineInfo) {
3471*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pPipelineInfo->pipeline, kVulkanObjectTypePipeline, false, "VUID-VkPipelineInfoKHR-pipeline-parameter", kVUIDUndefined);
3472*b7893ccfSSadaf Ebrahimi }
3473*b7893ccfSSadaf Ebrahimi
3474*b7893ccfSSadaf Ebrahimi return skip;
3475*b7893ccfSSadaf Ebrahimi }
3476*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics)3477*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPipelineExecutableStatisticsKHR(
3478*b7893ccfSSadaf Ebrahimi VkDevice device,
3479*b7893ccfSSadaf Ebrahimi const VkPipelineExecutableInfoKHR* pExecutableInfo,
3480*b7893ccfSSadaf Ebrahimi uint32_t* pStatisticCount,
3481*b7893ccfSSadaf Ebrahimi VkPipelineExecutableStatisticKHR* pStatistics) {
3482*b7893ccfSSadaf Ebrahimi bool skip = false;
3483*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter", kVUIDUndefined);
3484*b7893ccfSSadaf Ebrahimi if (pExecutableInfo) {
3485*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pExecutableInfo->pipeline, kVulkanObjectTypePipeline, false, "VUID-VkPipelineExecutableInfoKHR-pipeline-parameter", kVUIDUndefined);
3486*b7893ccfSSadaf Ebrahimi }
3487*b7893ccfSSadaf Ebrahimi
3488*b7893ccfSSadaf Ebrahimi return skip;
3489*b7893ccfSSadaf Ebrahimi }
3490*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations)3491*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPipelineExecutableInternalRepresentationsKHR(
3492*b7893ccfSSadaf Ebrahimi VkDevice device,
3493*b7893ccfSSadaf Ebrahimi const VkPipelineExecutableInfoKHR* pExecutableInfo,
3494*b7893ccfSSadaf Ebrahimi uint32_t* pInternalRepresentationCount,
3495*b7893ccfSSadaf Ebrahimi VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {
3496*b7893ccfSSadaf Ebrahimi bool skip = false;
3497*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter", kVUIDUndefined);
3498*b7893ccfSSadaf Ebrahimi if (pExecutableInfo) {
3499*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pExecutableInfo->pipeline, kVulkanObjectTypePipeline, false, "VUID-VkPipelineExecutableInfoKHR-pipeline-parameter", kVUIDUndefined);
3500*b7893ccfSSadaf Ebrahimi }
3501*b7893ccfSSadaf Ebrahimi
3502*b7893ccfSSadaf Ebrahimi return skip;
3503*b7893ccfSSadaf Ebrahimi }
3504*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback)3505*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateDebugReportCallbackEXT(
3506*b7893ccfSSadaf Ebrahimi VkInstance instance,
3507*b7893ccfSSadaf Ebrahimi const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
3508*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3509*b7893ccfSSadaf Ebrahimi VkDebugReportCallbackEXT* pCallback) {
3510*b7893ccfSSadaf Ebrahimi bool skip = false;
3511*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateDebugReportCallbackEXT-instance-parameter", kVUIDUndefined);
3512*b7893ccfSSadaf Ebrahimi
3513*b7893ccfSSadaf Ebrahimi return skip;
3514*b7893ccfSSadaf Ebrahimi }
3515*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback,VkResult result)3516*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateDebugReportCallbackEXT(
3517*b7893ccfSSadaf Ebrahimi VkInstance instance,
3518*b7893ccfSSadaf Ebrahimi const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
3519*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3520*b7893ccfSSadaf Ebrahimi VkDebugReportCallbackEXT* pCallback,
3521*b7893ccfSSadaf Ebrahimi VkResult result) {
3522*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
3523*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pCallback, kVulkanObjectTypeDebugReportCallbackEXT, pAllocator);
3524*b7893ccfSSadaf Ebrahimi
3525*b7893ccfSSadaf Ebrahimi }
3526*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator)3527*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyDebugReportCallbackEXT(
3528*b7893ccfSSadaf Ebrahimi VkInstance instance,
3529*b7893ccfSSadaf Ebrahimi VkDebugReportCallbackEXT callback,
3530*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
3531*b7893ccfSSadaf Ebrahimi bool skip = false;
3532*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkDestroyDebugReportCallbackEXT-instance-parameter", kVUIDUndefined);
3533*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, callback, kVulkanObjectTypeDebugReportCallbackEXT, false, "VUID-vkDestroyDebugReportCallbackEXT-callback-parameter", "VUID-vkDestroyDebugReportCallbackEXT-callback-parent");
3534*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(instance, callback, kVulkanObjectTypeDebugReportCallbackEXT, pAllocator, kVUIDUndefined, kVUIDUndefined);
3535*b7893ccfSSadaf Ebrahimi
3536*b7893ccfSSadaf Ebrahimi return skip;
3537*b7893ccfSSadaf Ebrahimi }
3538*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator)3539*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyDebugReportCallbackEXT(
3540*b7893ccfSSadaf Ebrahimi VkInstance instance,
3541*b7893ccfSSadaf Ebrahimi VkDebugReportCallbackEXT callback,
3542*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
3543*b7893ccfSSadaf Ebrahimi RecordDestroyObject(instance, callback, kVulkanObjectTypeDebugReportCallbackEXT);
3544*b7893ccfSSadaf Ebrahimi
3545*b7893ccfSSadaf Ebrahimi }
3546*b7893ccfSSadaf Ebrahimi
PreCallValidateDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage)3547*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDebugReportMessageEXT(
3548*b7893ccfSSadaf Ebrahimi VkInstance instance,
3549*b7893ccfSSadaf Ebrahimi VkDebugReportFlagsEXT flags,
3550*b7893ccfSSadaf Ebrahimi VkDebugReportObjectTypeEXT objectType,
3551*b7893ccfSSadaf Ebrahimi uint64_t object,
3552*b7893ccfSSadaf Ebrahimi size_t location,
3553*b7893ccfSSadaf Ebrahimi int32_t messageCode,
3554*b7893ccfSSadaf Ebrahimi const char* pLayerPrefix,
3555*b7893ccfSSadaf Ebrahimi const char* pMessage) {
3556*b7893ccfSSadaf Ebrahimi bool skip = false;
3557*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkDebugReportMessageEXT-instance-parameter", kVUIDUndefined);
3558*b7893ccfSSadaf Ebrahimi
3559*b7893ccfSSadaf Ebrahimi return skip;
3560*b7893ccfSSadaf Ebrahimi }
3561*b7893ccfSSadaf Ebrahimi
PreCallValidateDebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo)3562*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDebugMarkerSetObjectTagEXT(
3563*b7893ccfSSadaf Ebrahimi VkDevice device,
3564*b7893ccfSSadaf Ebrahimi const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
3565*b7893ccfSSadaf Ebrahimi bool skip = false;
3566*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDebugMarkerSetObjectTagEXT-device-parameter", kVUIDUndefined);
3567*b7893ccfSSadaf Ebrahimi
3568*b7893ccfSSadaf Ebrahimi return skip;
3569*b7893ccfSSadaf Ebrahimi }
3570*b7893ccfSSadaf Ebrahimi
PreCallValidateDebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo)3571*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDebugMarkerSetObjectNameEXT(
3572*b7893ccfSSadaf Ebrahimi VkDevice device,
3573*b7893ccfSSadaf Ebrahimi const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
3574*b7893ccfSSadaf Ebrahimi bool skip = false;
3575*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDebugMarkerSetObjectNameEXT-device-parameter", kVUIDUndefined);
3576*b7893ccfSSadaf Ebrahimi
3577*b7893ccfSSadaf Ebrahimi return skip;
3578*b7893ccfSSadaf Ebrahimi }
3579*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo)3580*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDebugMarkerBeginEXT(
3581*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3582*b7893ccfSSadaf Ebrahimi const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
3583*b7893ccfSSadaf Ebrahimi bool skip = false;
3584*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter", kVUIDUndefined);
3585*b7893ccfSSadaf Ebrahimi
3586*b7893ccfSSadaf Ebrahimi return skip;
3587*b7893ccfSSadaf Ebrahimi }
3588*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer)3589*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDebugMarkerEndEXT(
3590*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer) {
3591*b7893ccfSSadaf Ebrahimi bool skip = false;
3592*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter", kVUIDUndefined);
3593*b7893ccfSSadaf Ebrahimi
3594*b7893ccfSSadaf Ebrahimi return skip;
3595*b7893ccfSSadaf Ebrahimi }
3596*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo)3597*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDebugMarkerInsertEXT(
3598*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3599*b7893ccfSSadaf Ebrahimi const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
3600*b7893ccfSSadaf Ebrahimi bool skip = false;
3601*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter", kVUIDUndefined);
3602*b7893ccfSSadaf Ebrahimi
3603*b7893ccfSSadaf Ebrahimi return skip;
3604*b7893ccfSSadaf Ebrahimi }
3605*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes)3606*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBindTransformFeedbackBuffersEXT(
3607*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3608*b7893ccfSSadaf Ebrahimi uint32_t firstBinding,
3609*b7893ccfSSadaf Ebrahimi uint32_t bindingCount,
3610*b7893ccfSSadaf Ebrahimi const VkBuffer* pBuffers,
3611*b7893ccfSSadaf Ebrahimi const VkDeviceSize* pOffsets,
3612*b7893ccfSSadaf Ebrahimi const VkDeviceSize* pSizes) {
3613*b7893ccfSSadaf Ebrahimi bool skip = false;
3614*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter", "VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparent");
3615*b7893ccfSSadaf Ebrahimi if (pBuffers) {
3616*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < bindingCount; ++index0) {
3617*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pBuffers[index0], kVulkanObjectTypeBuffer, false, "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameter", "VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparent");
3618*b7893ccfSSadaf Ebrahimi }
3619*b7893ccfSSadaf Ebrahimi }
3620*b7893ccfSSadaf Ebrahimi
3621*b7893ccfSSadaf Ebrahimi return skip;
3622*b7893ccfSSadaf Ebrahimi }
3623*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)3624*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBeginTransformFeedbackEXT(
3625*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3626*b7893ccfSSadaf Ebrahimi uint32_t firstCounterBuffer,
3627*b7893ccfSSadaf Ebrahimi uint32_t counterBufferCount,
3628*b7893ccfSSadaf Ebrahimi const VkBuffer* pCounterBuffers,
3629*b7893ccfSSadaf Ebrahimi const VkDeviceSize* pCounterBufferOffsets) {
3630*b7893ccfSSadaf Ebrahimi bool skip = false;
3631*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter", "VUID-vkCmdBeginTransformFeedbackEXT-commonparent");
3632*b7893ccfSSadaf Ebrahimi if (pCounterBuffers) {
3633*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < counterBufferCount; ++index0) {
3634*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pCounterBuffers[index0], kVulkanObjectTypeBuffer, true, kVUIDUndefined, "VUID-vkCmdBeginTransformFeedbackEXT-commonparent");
3635*b7893ccfSSadaf Ebrahimi }
3636*b7893ccfSSadaf Ebrahimi }
3637*b7893ccfSSadaf Ebrahimi
3638*b7893ccfSSadaf Ebrahimi return skip;
3639*b7893ccfSSadaf Ebrahimi }
3640*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)3641*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdEndTransformFeedbackEXT(
3642*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3643*b7893ccfSSadaf Ebrahimi uint32_t firstCounterBuffer,
3644*b7893ccfSSadaf Ebrahimi uint32_t counterBufferCount,
3645*b7893ccfSSadaf Ebrahimi const VkBuffer* pCounterBuffers,
3646*b7893ccfSSadaf Ebrahimi const VkDeviceSize* pCounterBufferOffsets) {
3647*b7893ccfSSadaf Ebrahimi bool skip = false;
3648*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter", "VUID-vkCmdEndTransformFeedbackEXT-commonparent");
3649*b7893ccfSSadaf Ebrahimi if (pCounterBuffers) {
3650*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < counterBufferCount; ++index0) {
3651*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pCounterBuffers[index0], kVulkanObjectTypeBuffer, true, kVUIDUndefined, "VUID-vkCmdEndTransformFeedbackEXT-commonparent");
3652*b7893ccfSSadaf Ebrahimi }
3653*b7893ccfSSadaf Ebrahimi }
3654*b7893ccfSSadaf Ebrahimi
3655*b7893ccfSSadaf Ebrahimi return skip;
3656*b7893ccfSSadaf Ebrahimi }
3657*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index)3658*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBeginQueryIndexedEXT(
3659*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3660*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
3661*b7893ccfSSadaf Ebrahimi uint32_t query,
3662*b7893ccfSSadaf Ebrahimi VkQueryControlFlags flags,
3663*b7893ccfSSadaf Ebrahimi uint32_t index) {
3664*b7893ccfSSadaf Ebrahimi bool skip = false;
3665*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter", "VUID-vkCmdBeginQueryIndexedEXT-commonparent");
3666*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, "VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter", "VUID-vkCmdBeginQueryIndexedEXT-commonparent");
3667*b7893ccfSSadaf Ebrahimi
3668*b7893ccfSSadaf Ebrahimi return skip;
3669*b7893ccfSSadaf Ebrahimi }
3670*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index)3671*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdEndQueryIndexedEXT(
3672*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3673*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
3674*b7893ccfSSadaf Ebrahimi uint32_t query,
3675*b7893ccfSSadaf Ebrahimi uint32_t index) {
3676*b7893ccfSSadaf Ebrahimi bool skip = false;
3677*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter", "VUID-vkCmdEndQueryIndexedEXT-commonparent");
3678*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, "VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter", "VUID-vkCmdEndQueryIndexedEXT-commonparent");
3679*b7893ccfSSadaf Ebrahimi
3680*b7893ccfSSadaf Ebrahimi return skip;
3681*b7893ccfSSadaf Ebrahimi }
3682*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride)3683*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawIndirectByteCountEXT(
3684*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3685*b7893ccfSSadaf Ebrahimi uint32_t instanceCount,
3686*b7893ccfSSadaf Ebrahimi uint32_t firstInstance,
3687*b7893ccfSSadaf Ebrahimi VkBuffer counterBuffer,
3688*b7893ccfSSadaf Ebrahimi VkDeviceSize counterBufferOffset,
3689*b7893ccfSSadaf Ebrahimi uint32_t counterOffset,
3690*b7893ccfSSadaf Ebrahimi uint32_t vertexStride) {
3691*b7893ccfSSadaf Ebrahimi bool skip = false;
3692*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter", "VUID-vkCmdDrawIndirectByteCountEXT-commonparent");
3693*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, counterBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter", "VUID-vkCmdDrawIndirectByteCountEXT-commonparent");
3694*b7893ccfSSadaf Ebrahimi
3695*b7893ccfSSadaf Ebrahimi return skip;
3696*b7893ccfSSadaf Ebrahimi }
3697*b7893ccfSSadaf Ebrahimi
PreCallValidateGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo)3698*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetImageViewHandleNVX(
3699*b7893ccfSSadaf Ebrahimi VkDevice device,
3700*b7893ccfSSadaf Ebrahimi const VkImageViewHandleInfoNVX* pInfo) {
3701*b7893ccfSSadaf Ebrahimi bool skip = false;
3702*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageViewHandleNVX-device-parameter", kVUIDUndefined);
3703*b7893ccfSSadaf Ebrahimi
3704*b7893ccfSSadaf Ebrahimi return skip;
3705*b7893ccfSSadaf Ebrahimi }
3706*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)3707*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawIndirectCountAMD(
3708*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3709*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
3710*b7893ccfSSadaf Ebrahimi VkDeviceSize offset,
3711*b7893ccfSSadaf Ebrahimi VkBuffer countBuffer,
3712*b7893ccfSSadaf Ebrahimi VkDeviceSize countBufferOffset,
3713*b7893ccfSSadaf Ebrahimi uint32_t maxDrawCount,
3714*b7893ccfSSadaf Ebrahimi uint32_t stride) {
3715*b7893ccfSSadaf Ebrahimi bool skip = false;
3716*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawIndirectCountKHR-commandBuffer-parameter", "VUID-vkCmdDrawIndirectCountKHR-commonparent");
3717*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndirectCountKHR-buffer-parameter", "VUID-vkCmdDrawIndirectCountKHR-commonparent");
3718*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, countBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndirectCountKHR-countBuffer-parameter", "VUID-vkCmdDrawIndirectCountKHR-commonparent");
3719*b7893ccfSSadaf Ebrahimi
3720*b7893ccfSSadaf Ebrahimi return skip;
3721*b7893ccfSSadaf Ebrahimi }
3722*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)3723*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawIndexedIndirectCountAMD(
3724*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3725*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
3726*b7893ccfSSadaf Ebrahimi VkDeviceSize offset,
3727*b7893ccfSSadaf Ebrahimi VkBuffer countBuffer,
3728*b7893ccfSSadaf Ebrahimi VkDeviceSize countBufferOffset,
3729*b7893ccfSSadaf Ebrahimi uint32_t maxDrawCount,
3730*b7893ccfSSadaf Ebrahimi uint32_t stride) {
3731*b7893ccfSSadaf Ebrahimi bool skip = false;
3732*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-parameter", "VUID-vkCmdDrawIndexedIndirectCountKHR-commonparent");
3733*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndexedIndirectCountKHR-buffer-parameter", "VUID-vkCmdDrawIndexedIndirectCountKHR-commonparent");
3734*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, countBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawIndexedIndirectCountKHR-countBuffer-parameter", "VUID-vkCmdDrawIndexedIndirectCountKHR-commonparent");
3735*b7893ccfSSadaf Ebrahimi
3736*b7893ccfSSadaf Ebrahimi return skip;
3737*b7893ccfSSadaf Ebrahimi }
3738*b7893ccfSSadaf Ebrahimi
PreCallValidateGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo)3739*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetShaderInfoAMD(
3740*b7893ccfSSadaf Ebrahimi VkDevice device,
3741*b7893ccfSSadaf Ebrahimi VkPipeline pipeline,
3742*b7893ccfSSadaf Ebrahimi VkShaderStageFlagBits shaderStage,
3743*b7893ccfSSadaf Ebrahimi VkShaderInfoTypeAMD infoType,
3744*b7893ccfSSadaf Ebrahimi size_t* pInfoSize,
3745*b7893ccfSSadaf Ebrahimi void* pInfo) {
3746*b7893ccfSSadaf Ebrahimi bool skip = false;
3747*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetShaderInfoAMD-device-parameter", kVUIDUndefined);
3748*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pipeline, kVulkanObjectTypePipeline, false, "VUID-vkGetShaderInfoAMD-pipeline-parameter", "VUID-vkGetShaderInfoAMD-pipeline-parent");
3749*b7893ccfSSadaf Ebrahimi
3750*b7893ccfSSadaf Ebrahimi return skip;
3751*b7893ccfSSadaf Ebrahimi }
3752*b7893ccfSSadaf Ebrahimi
3753*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_GGP
3754*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)3755*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateStreamDescriptorSurfaceGGP(
3756*b7893ccfSSadaf Ebrahimi VkInstance instance,
3757*b7893ccfSSadaf Ebrahimi const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo,
3758*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3759*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
3760*b7893ccfSSadaf Ebrahimi bool skip = false;
3761*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateStreamDescriptorSurfaceGGP-instance-parameter", kVUIDUndefined);
3762*b7893ccfSSadaf Ebrahimi
3763*b7893ccfSSadaf Ebrahimi return skip;
3764*b7893ccfSSadaf Ebrahimi }
3765*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)3766*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateStreamDescriptorSurfaceGGP(
3767*b7893ccfSSadaf Ebrahimi VkInstance instance,
3768*b7893ccfSSadaf Ebrahimi const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo,
3769*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3770*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
3771*b7893ccfSSadaf Ebrahimi VkResult result) {
3772*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
3773*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
3774*b7893ccfSSadaf Ebrahimi
3775*b7893ccfSSadaf Ebrahimi }
3776*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_GGP
3777*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceExternalImageFormatPropertiesNV(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkExternalMemoryHandleTypeFlagsNV externalHandleType,VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties)3778*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceExternalImageFormatPropertiesNV(
3779*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
3780*b7893ccfSSadaf Ebrahimi VkFormat format,
3781*b7893ccfSSadaf Ebrahimi VkImageType type,
3782*b7893ccfSSadaf Ebrahimi VkImageTiling tiling,
3783*b7893ccfSSadaf Ebrahimi VkImageUsageFlags usage,
3784*b7893ccfSSadaf Ebrahimi VkImageCreateFlags flags,
3785*b7893ccfSSadaf Ebrahimi VkExternalMemoryHandleTypeFlagsNV externalHandleType,
3786*b7893ccfSSadaf Ebrahimi VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
3787*b7893ccfSSadaf Ebrahimi bool skip = false;
3788*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-physicalDevice-parameter", kVUIDUndefined);
3789*b7893ccfSSadaf Ebrahimi
3790*b7893ccfSSadaf Ebrahimi return skip;
3791*b7893ccfSSadaf Ebrahimi }
3792*b7893ccfSSadaf Ebrahimi
3793*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
3794*b7893ccfSSadaf Ebrahimi
PreCallValidateGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle)3795*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetMemoryWin32HandleNV(
3796*b7893ccfSSadaf Ebrahimi VkDevice device,
3797*b7893ccfSSadaf Ebrahimi VkDeviceMemory memory,
3798*b7893ccfSSadaf Ebrahimi VkExternalMemoryHandleTypeFlagsNV handleType,
3799*b7893ccfSSadaf Ebrahimi HANDLE* pHandle) {
3800*b7893ccfSSadaf Ebrahimi bool skip = false;
3801*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetMemoryWin32HandleNV-device-parameter", kVUIDUndefined);
3802*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, memory, kVulkanObjectTypeDeviceMemory, false, "VUID-vkGetMemoryWin32HandleNV-memory-parameter", "VUID-vkGetMemoryWin32HandleNV-memory-parent");
3803*b7893ccfSSadaf Ebrahimi
3804*b7893ccfSSadaf Ebrahimi return skip;
3805*b7893ccfSSadaf Ebrahimi }
3806*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
3807*b7893ccfSSadaf Ebrahimi
3808*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_VI_NN
3809*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)3810*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateViSurfaceNN(
3811*b7893ccfSSadaf Ebrahimi VkInstance instance,
3812*b7893ccfSSadaf Ebrahimi const VkViSurfaceCreateInfoNN* pCreateInfo,
3813*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3814*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
3815*b7893ccfSSadaf Ebrahimi bool skip = false;
3816*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateViSurfaceNN-instance-parameter", kVUIDUndefined);
3817*b7893ccfSSadaf Ebrahimi
3818*b7893ccfSSadaf Ebrahimi return skip;
3819*b7893ccfSSadaf Ebrahimi }
3820*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)3821*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateViSurfaceNN(
3822*b7893ccfSSadaf Ebrahimi VkInstance instance,
3823*b7893ccfSSadaf Ebrahimi const VkViSurfaceCreateInfoNN* pCreateInfo,
3824*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3825*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
3826*b7893ccfSSadaf Ebrahimi VkResult result) {
3827*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
3828*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
3829*b7893ccfSSadaf Ebrahimi
3830*b7893ccfSSadaf Ebrahimi }
3831*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_VI_NN
3832*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin)3833*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBeginConditionalRenderingEXT(
3834*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3835*b7893ccfSSadaf Ebrahimi const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
3836*b7893ccfSSadaf Ebrahimi bool skip = false;
3837*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter", kVUIDUndefined);
3838*b7893ccfSSadaf Ebrahimi if (pConditionalRenderingBegin) {
3839*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pConditionalRenderingBegin->buffer, kVulkanObjectTypeBuffer, false, "VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameter", kVUIDUndefined);
3840*b7893ccfSSadaf Ebrahimi }
3841*b7893ccfSSadaf Ebrahimi
3842*b7893ccfSSadaf Ebrahimi return skip;
3843*b7893ccfSSadaf Ebrahimi }
3844*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer)3845*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdEndConditionalRenderingEXT(
3846*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer) {
3847*b7893ccfSSadaf Ebrahimi bool skip = false;
3848*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter", kVUIDUndefined);
3849*b7893ccfSSadaf Ebrahimi
3850*b7893ccfSSadaf Ebrahimi return skip;
3851*b7893ccfSSadaf Ebrahimi }
3852*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdProcessCommandsNVX(VkCommandBuffer commandBuffer,const VkCmdProcessCommandsInfoNVX * pProcessCommandsInfo)3853*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdProcessCommandsNVX(
3854*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3855*b7893ccfSSadaf Ebrahimi const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
3856*b7893ccfSSadaf Ebrahimi bool skip = false;
3857*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdProcessCommandsNVX-commandBuffer-parameter", kVUIDUndefined);
3858*b7893ccfSSadaf Ebrahimi if (pProcessCommandsInfo) {
3859*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pProcessCommandsInfo->objectTable, kVulkanObjectTypeObjectTableNVX, false, "VUID-VkCmdProcessCommandsInfoNVX-objectTable-parameter", "VUID-VkCmdProcessCommandsInfoNVX-commonparent");
3860*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pProcessCommandsInfo->indirectCommandsLayout, kVulkanObjectTypeIndirectCommandsLayoutNVX, false, "VUID-VkCmdProcessCommandsInfoNVX-indirectCommandsLayout-parameter", "VUID-VkCmdProcessCommandsInfoNVX-commonparent");
3861*b7893ccfSSadaf Ebrahimi if (pProcessCommandsInfo->pIndirectCommandsTokens) {
3862*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pProcessCommandsInfo->indirectCommandsTokenCount; ++index1) {
3863*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pProcessCommandsInfo->pIndirectCommandsTokens[index1].buffer, kVulkanObjectTypeBuffer, false, "VUID-VkIndirectCommandsTokenNVX-buffer-parameter", kVUIDUndefined);
3864*b7893ccfSSadaf Ebrahimi }
3865*b7893ccfSSadaf Ebrahimi }
3866*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pProcessCommandsInfo->targetCommandBuffer, kVulkanObjectTypeCommandBuffer, true, "VUID-VkCmdProcessCommandsInfoNVX-targetCommandBuffer-parameter", "VUID-VkCmdProcessCommandsInfoNVX-commonparent");
3867*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pProcessCommandsInfo->sequencesCountBuffer, kVulkanObjectTypeBuffer, true, "VUID-VkCmdProcessCommandsInfoNVX-sequencesCountBuffer-parameter", "VUID-VkCmdProcessCommandsInfoNVX-commonparent");
3868*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pProcessCommandsInfo->sequencesIndexBuffer, kVulkanObjectTypeBuffer, true, "VUID-VkCmdProcessCommandsInfoNVX-sequencesIndexBuffer-parameter", "VUID-VkCmdProcessCommandsInfoNVX-commonparent");
3869*b7893ccfSSadaf Ebrahimi }
3870*b7893ccfSSadaf Ebrahimi
3871*b7893ccfSSadaf Ebrahimi return skip;
3872*b7893ccfSSadaf Ebrahimi }
3873*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdReserveSpaceForCommandsNVX(VkCommandBuffer commandBuffer,const VkCmdReserveSpaceForCommandsInfoNVX * pReserveSpaceInfo)3874*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdReserveSpaceForCommandsNVX(
3875*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
3876*b7893ccfSSadaf Ebrahimi const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
3877*b7893ccfSSadaf Ebrahimi bool skip = false;
3878*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdReserveSpaceForCommandsNVX-commandBuffer-parameter", kVUIDUndefined);
3879*b7893ccfSSadaf Ebrahimi if (pReserveSpaceInfo) {
3880*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pReserveSpaceInfo->objectTable, kVulkanObjectTypeObjectTableNVX, false, "VUID-VkCmdReserveSpaceForCommandsInfoNVX-objectTable-parameter", "VUID-VkCmdReserveSpaceForCommandsInfoNVX-commonparent");
3881*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pReserveSpaceInfo->indirectCommandsLayout, kVulkanObjectTypeIndirectCommandsLayoutNVX, false, "VUID-VkCmdReserveSpaceForCommandsInfoNVX-indirectCommandsLayout-parameter", "VUID-VkCmdReserveSpaceForCommandsInfoNVX-commonparent");
3882*b7893ccfSSadaf Ebrahimi }
3883*b7893ccfSSadaf Ebrahimi
3884*b7893ccfSSadaf Ebrahimi return skip;
3885*b7893ccfSSadaf Ebrahimi }
3886*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateIndirectCommandsLayoutNVX(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNVX * pIndirectCommandsLayout)3887*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateIndirectCommandsLayoutNVX(
3888*b7893ccfSSadaf Ebrahimi VkDevice device,
3889*b7893ccfSSadaf Ebrahimi const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3890*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3891*b7893ccfSSadaf Ebrahimi VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
3892*b7893ccfSSadaf Ebrahimi bool skip = false;
3893*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateIndirectCommandsLayoutNVX-device-parameter", kVUIDUndefined);
3894*b7893ccfSSadaf Ebrahimi
3895*b7893ccfSSadaf Ebrahimi return skip;
3896*b7893ccfSSadaf Ebrahimi }
3897*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateIndirectCommandsLayoutNVX(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNVX * pIndirectCommandsLayout,VkResult result)3898*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateIndirectCommandsLayoutNVX(
3899*b7893ccfSSadaf Ebrahimi VkDevice device,
3900*b7893ccfSSadaf Ebrahimi const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3901*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3902*b7893ccfSSadaf Ebrahimi VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout,
3903*b7893ccfSSadaf Ebrahimi VkResult result) {
3904*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
3905*b7893ccfSSadaf Ebrahimi CreateObject(device, *pIndirectCommandsLayout, kVulkanObjectTypeIndirectCommandsLayoutNVX, pAllocator);
3906*b7893ccfSSadaf Ebrahimi
3907*b7893ccfSSadaf Ebrahimi }
3908*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyIndirectCommandsLayoutNVX(VkDevice device,VkIndirectCommandsLayoutNVX indirectCommandsLayout,const VkAllocationCallbacks * pAllocator)3909*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyIndirectCommandsLayoutNVX(
3910*b7893ccfSSadaf Ebrahimi VkDevice device,
3911*b7893ccfSSadaf Ebrahimi VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3912*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
3913*b7893ccfSSadaf Ebrahimi bool skip = false;
3914*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyIndirectCommandsLayoutNVX-device-parameter", kVUIDUndefined);
3915*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, indirectCommandsLayout, kVulkanObjectTypeIndirectCommandsLayoutNVX, false, "VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parameter", "VUID-vkDestroyIndirectCommandsLayoutNVX-indirectCommandsLayout-parent");
3916*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, indirectCommandsLayout, kVulkanObjectTypeIndirectCommandsLayoutNVX, pAllocator, kVUIDUndefined, kVUIDUndefined);
3917*b7893ccfSSadaf Ebrahimi
3918*b7893ccfSSadaf Ebrahimi return skip;
3919*b7893ccfSSadaf Ebrahimi }
3920*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyIndirectCommandsLayoutNVX(VkDevice device,VkIndirectCommandsLayoutNVX indirectCommandsLayout,const VkAllocationCallbacks * pAllocator)3921*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyIndirectCommandsLayoutNVX(
3922*b7893ccfSSadaf Ebrahimi VkDevice device,
3923*b7893ccfSSadaf Ebrahimi VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3924*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
3925*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, indirectCommandsLayout, kVulkanObjectTypeIndirectCommandsLayoutNVX);
3926*b7893ccfSSadaf Ebrahimi
3927*b7893ccfSSadaf Ebrahimi }
3928*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateObjectTableNVX(VkDevice device,const VkObjectTableCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkObjectTableNVX * pObjectTable)3929*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateObjectTableNVX(
3930*b7893ccfSSadaf Ebrahimi VkDevice device,
3931*b7893ccfSSadaf Ebrahimi const VkObjectTableCreateInfoNVX* pCreateInfo,
3932*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3933*b7893ccfSSadaf Ebrahimi VkObjectTableNVX* pObjectTable) {
3934*b7893ccfSSadaf Ebrahimi bool skip = false;
3935*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateObjectTableNVX-device-parameter", kVUIDUndefined);
3936*b7893ccfSSadaf Ebrahimi
3937*b7893ccfSSadaf Ebrahimi return skip;
3938*b7893ccfSSadaf Ebrahimi }
3939*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateObjectTableNVX(VkDevice device,const VkObjectTableCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkObjectTableNVX * pObjectTable,VkResult result)3940*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateObjectTableNVX(
3941*b7893ccfSSadaf Ebrahimi VkDevice device,
3942*b7893ccfSSadaf Ebrahimi const VkObjectTableCreateInfoNVX* pCreateInfo,
3943*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
3944*b7893ccfSSadaf Ebrahimi VkObjectTableNVX* pObjectTable,
3945*b7893ccfSSadaf Ebrahimi VkResult result) {
3946*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
3947*b7893ccfSSadaf Ebrahimi CreateObject(device, *pObjectTable, kVulkanObjectTypeObjectTableNVX, pAllocator);
3948*b7893ccfSSadaf Ebrahimi
3949*b7893ccfSSadaf Ebrahimi }
3950*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyObjectTableNVX(VkDevice device,VkObjectTableNVX objectTable,const VkAllocationCallbacks * pAllocator)3951*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyObjectTableNVX(
3952*b7893ccfSSadaf Ebrahimi VkDevice device,
3953*b7893ccfSSadaf Ebrahimi VkObjectTableNVX objectTable,
3954*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
3955*b7893ccfSSadaf Ebrahimi bool skip = false;
3956*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyObjectTableNVX-device-parameter", kVUIDUndefined);
3957*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, objectTable, kVulkanObjectTypeObjectTableNVX, false, "VUID-vkDestroyObjectTableNVX-objectTable-parameter", "VUID-vkDestroyObjectTableNVX-objectTable-parent");
3958*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, objectTable, kVulkanObjectTypeObjectTableNVX, pAllocator, kVUIDUndefined, kVUIDUndefined);
3959*b7893ccfSSadaf Ebrahimi
3960*b7893ccfSSadaf Ebrahimi return skip;
3961*b7893ccfSSadaf Ebrahimi }
3962*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyObjectTableNVX(VkDevice device,VkObjectTableNVX objectTable,const VkAllocationCallbacks * pAllocator)3963*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyObjectTableNVX(
3964*b7893ccfSSadaf Ebrahimi VkDevice device,
3965*b7893ccfSSadaf Ebrahimi VkObjectTableNVX objectTable,
3966*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
3967*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, objectTable, kVulkanObjectTypeObjectTableNVX);
3968*b7893ccfSSadaf Ebrahimi
3969*b7893ccfSSadaf Ebrahimi }
3970*b7893ccfSSadaf Ebrahimi
PreCallValidateRegisterObjectsNVX(VkDevice device,VkObjectTableNVX objectTable,uint32_t objectCount,const VkObjectTableEntryNVX * const * ppObjectTableEntries,const uint32_t * pObjectIndices)3971*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateRegisterObjectsNVX(
3972*b7893ccfSSadaf Ebrahimi VkDevice device,
3973*b7893ccfSSadaf Ebrahimi VkObjectTableNVX objectTable,
3974*b7893ccfSSadaf Ebrahimi uint32_t objectCount,
3975*b7893ccfSSadaf Ebrahimi const VkObjectTableEntryNVX* const* ppObjectTableEntries,
3976*b7893ccfSSadaf Ebrahimi const uint32_t* pObjectIndices) {
3977*b7893ccfSSadaf Ebrahimi bool skip = false;
3978*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkRegisterObjectsNVX-device-parameter", kVUIDUndefined);
3979*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, objectTable, kVulkanObjectTypeObjectTableNVX, false, "VUID-vkRegisterObjectsNVX-objectTable-parameter", "VUID-vkRegisterObjectsNVX-objectTable-parent");
3980*b7893ccfSSadaf Ebrahimi
3981*b7893ccfSSadaf Ebrahimi return skip;
3982*b7893ccfSSadaf Ebrahimi }
3983*b7893ccfSSadaf Ebrahimi
PreCallValidateUnregisterObjectsNVX(VkDevice device,VkObjectTableNVX objectTable,uint32_t objectCount,const VkObjectEntryTypeNVX * pObjectEntryTypes,const uint32_t * pObjectIndices)3984*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateUnregisterObjectsNVX(
3985*b7893ccfSSadaf Ebrahimi VkDevice device,
3986*b7893ccfSSadaf Ebrahimi VkObjectTableNVX objectTable,
3987*b7893ccfSSadaf Ebrahimi uint32_t objectCount,
3988*b7893ccfSSadaf Ebrahimi const VkObjectEntryTypeNVX* pObjectEntryTypes,
3989*b7893ccfSSadaf Ebrahimi const uint32_t* pObjectIndices) {
3990*b7893ccfSSadaf Ebrahimi bool skip = false;
3991*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkUnregisterObjectsNVX-device-parameter", kVUIDUndefined);
3992*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, objectTable, kVulkanObjectTypeObjectTableNVX, false, "VUID-vkUnregisterObjectsNVX-objectTable-parameter", "VUID-vkUnregisterObjectsNVX-objectTable-parent");
3993*b7893ccfSSadaf Ebrahimi
3994*b7893ccfSSadaf Ebrahimi return skip;
3995*b7893ccfSSadaf Ebrahimi }
3996*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceGeneratedCommandsPropertiesNVX(VkPhysicalDevice physicalDevice,VkDeviceGeneratedCommandsFeaturesNVX * pFeatures,VkDeviceGeneratedCommandsLimitsNVX * pLimits)3997*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
3998*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
3999*b7893ccfSSadaf Ebrahimi VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
4000*b7893ccfSSadaf Ebrahimi VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
4001*b7893ccfSSadaf Ebrahimi bool skip = false;
4002*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX-physicalDevice-parameter", kVUIDUndefined);
4003*b7893ccfSSadaf Ebrahimi
4004*b7893ccfSSadaf Ebrahimi return skip;
4005*b7893ccfSSadaf Ebrahimi }
4006*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings)4007*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetViewportWScalingNV(
4008*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4009*b7893ccfSSadaf Ebrahimi uint32_t firstViewport,
4010*b7893ccfSSadaf Ebrahimi uint32_t viewportCount,
4011*b7893ccfSSadaf Ebrahimi const VkViewportWScalingNV* pViewportWScalings) {
4012*b7893ccfSSadaf Ebrahimi bool skip = false;
4013*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter", kVUIDUndefined);
4014*b7893ccfSSadaf Ebrahimi
4015*b7893ccfSSadaf Ebrahimi return skip;
4016*b7893ccfSSadaf Ebrahimi }
4017*b7893ccfSSadaf Ebrahimi
PreCallValidateReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display)4018*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateReleaseDisplayEXT(
4019*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
4020*b7893ccfSSadaf Ebrahimi VkDisplayKHR display) {
4021*b7893ccfSSadaf Ebrahimi bool skip = false;
4022*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkReleaseDisplayEXT-physicalDevice-parameter", kVUIDUndefined);
4023*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, display, kVulkanObjectTypeDisplayKHR, false, "VUID-vkReleaseDisplayEXT-display-parameter", kVUIDUndefined);
4024*b7893ccfSSadaf Ebrahimi
4025*b7893ccfSSadaf Ebrahimi return skip;
4026*b7893ccfSSadaf Ebrahimi }
4027*b7893ccfSSadaf Ebrahimi
4028*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
4029*b7893ccfSSadaf Ebrahimi
PreCallValidateAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display)4030*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateAcquireXlibDisplayEXT(
4031*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
4032*b7893ccfSSadaf Ebrahimi Display* dpy,
4033*b7893ccfSSadaf Ebrahimi VkDisplayKHR display) {
4034*b7893ccfSSadaf Ebrahimi bool skip = false;
4035*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter", kVUIDUndefined);
4036*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, display, kVulkanObjectTypeDisplayKHR, false, "VUID-vkAcquireXlibDisplayEXT-display-parameter", kVUIDUndefined);
4037*b7893ccfSSadaf Ebrahimi
4038*b7893ccfSSadaf Ebrahimi return skip;
4039*b7893ccfSSadaf Ebrahimi }
4040*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
4041*b7893ccfSSadaf Ebrahimi
4042*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
4043*b7893ccfSSadaf Ebrahimi
PreCallValidateGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay)4044*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetRandROutputDisplayEXT(
4045*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
4046*b7893ccfSSadaf Ebrahimi Display* dpy,
4047*b7893ccfSSadaf Ebrahimi RROutput rrOutput,
4048*b7893ccfSSadaf Ebrahimi VkDisplayKHR* pDisplay) {
4049*b7893ccfSSadaf Ebrahimi bool skip = false;
4050*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter", kVUIDUndefined);
4051*b7893ccfSSadaf Ebrahimi
4052*b7893ccfSSadaf Ebrahimi return skip;
4053*b7893ccfSSadaf Ebrahimi }
4054*b7893ccfSSadaf Ebrahimi
PostCallRecordGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,RROutput rrOutput,VkDisplayKHR * pDisplay,VkResult result)4055*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordGetRandROutputDisplayEXT(
4056*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
4057*b7893ccfSSadaf Ebrahimi Display* dpy,
4058*b7893ccfSSadaf Ebrahimi RROutput rrOutput,
4059*b7893ccfSSadaf Ebrahimi VkDisplayKHR* pDisplay,
4060*b7893ccfSSadaf Ebrahimi VkResult result) {
4061*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
4062*b7893ccfSSadaf Ebrahimi CreateObject(physicalDevice, *pDisplay, kVulkanObjectTypeDisplayKHR, nullptr);
4063*b7893ccfSSadaf Ebrahimi
4064*b7893ccfSSadaf Ebrahimi }
4065*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
4066*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities)4067*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSurfaceCapabilities2EXT(
4068*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
4069*b7893ccfSSadaf Ebrahimi VkSurfaceKHR surface,
4070*b7893ccfSSadaf Ebrahimi VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
4071*b7893ccfSSadaf Ebrahimi bool skip = false;
4072*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter", "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparent");
4073*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter", "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparent");
4074*b7893ccfSSadaf Ebrahimi
4075*b7893ccfSSadaf Ebrahimi return skip;
4076*b7893ccfSSadaf Ebrahimi }
4077*b7893ccfSSadaf Ebrahimi
PreCallValidateDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo)4078*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDisplayPowerControlEXT(
4079*b7893ccfSSadaf Ebrahimi VkDevice device,
4080*b7893ccfSSadaf Ebrahimi VkDisplayKHR display,
4081*b7893ccfSSadaf Ebrahimi const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
4082*b7893ccfSSadaf Ebrahimi bool skip = false;
4083*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDisplayPowerControlEXT-device-parameter", kVUIDUndefined);
4084*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, display, kVulkanObjectTypeDisplayKHR, false, "VUID-vkDisplayPowerControlEXT-display-parameter", kVUIDUndefined);
4085*b7893ccfSSadaf Ebrahimi
4086*b7893ccfSSadaf Ebrahimi return skip;
4087*b7893ccfSSadaf Ebrahimi }
4088*b7893ccfSSadaf Ebrahimi
PreCallValidateRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)4089*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateRegisterDeviceEventEXT(
4090*b7893ccfSSadaf Ebrahimi VkDevice device,
4091*b7893ccfSSadaf Ebrahimi const VkDeviceEventInfoEXT* pDeviceEventInfo,
4092*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4093*b7893ccfSSadaf Ebrahimi VkFence* pFence) {
4094*b7893ccfSSadaf Ebrahimi bool skip = false;
4095*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkRegisterDeviceEventEXT-device-parameter", kVUIDUndefined);
4096*b7893ccfSSadaf Ebrahimi
4097*b7893ccfSSadaf Ebrahimi return skip;
4098*b7893ccfSSadaf Ebrahimi }
4099*b7893ccfSSadaf Ebrahimi
PostCallRecordRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence,VkResult result)4100*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordRegisterDeviceEventEXT(
4101*b7893ccfSSadaf Ebrahimi VkDevice device,
4102*b7893ccfSSadaf Ebrahimi const VkDeviceEventInfoEXT* pDeviceEventInfo,
4103*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4104*b7893ccfSSadaf Ebrahimi VkFence* pFence,
4105*b7893ccfSSadaf Ebrahimi VkResult result) {
4106*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
4107*b7893ccfSSadaf Ebrahimi CreateObject(device, *pFence, kVulkanObjectTypeFence, pAllocator);
4108*b7893ccfSSadaf Ebrahimi
4109*b7893ccfSSadaf Ebrahimi }
4110*b7893ccfSSadaf Ebrahimi
PreCallValidateRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)4111*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateRegisterDisplayEventEXT(
4112*b7893ccfSSadaf Ebrahimi VkDevice device,
4113*b7893ccfSSadaf Ebrahimi VkDisplayKHR display,
4114*b7893ccfSSadaf Ebrahimi const VkDisplayEventInfoEXT* pDisplayEventInfo,
4115*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4116*b7893ccfSSadaf Ebrahimi VkFence* pFence) {
4117*b7893ccfSSadaf Ebrahimi bool skip = false;
4118*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkRegisterDisplayEventEXT-device-parameter", kVUIDUndefined);
4119*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, display, kVulkanObjectTypeDisplayKHR, false, "VUID-vkRegisterDisplayEventEXT-display-parameter", kVUIDUndefined);
4120*b7893ccfSSadaf Ebrahimi
4121*b7893ccfSSadaf Ebrahimi return skip;
4122*b7893ccfSSadaf Ebrahimi }
4123*b7893ccfSSadaf Ebrahimi
PostCallRecordRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence,VkResult result)4124*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordRegisterDisplayEventEXT(
4125*b7893ccfSSadaf Ebrahimi VkDevice device,
4126*b7893ccfSSadaf Ebrahimi VkDisplayKHR display,
4127*b7893ccfSSadaf Ebrahimi const VkDisplayEventInfoEXT* pDisplayEventInfo,
4128*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4129*b7893ccfSSadaf Ebrahimi VkFence* pFence,
4130*b7893ccfSSadaf Ebrahimi VkResult result) {
4131*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
4132*b7893ccfSSadaf Ebrahimi CreateObject(device, *pFence, kVulkanObjectTypeFence, pAllocator);
4133*b7893ccfSSadaf Ebrahimi
4134*b7893ccfSSadaf Ebrahimi }
4135*b7893ccfSSadaf Ebrahimi
PreCallValidateGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue)4136*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetSwapchainCounterEXT(
4137*b7893ccfSSadaf Ebrahimi VkDevice device,
4138*b7893ccfSSadaf Ebrahimi VkSwapchainKHR swapchain,
4139*b7893ccfSSadaf Ebrahimi VkSurfaceCounterFlagBitsEXT counter,
4140*b7893ccfSSadaf Ebrahimi uint64_t* pCounterValue) {
4141*b7893ccfSSadaf Ebrahimi bool skip = false;
4142*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetSwapchainCounterEXT-device-parameter", "VUID-vkGetSwapchainCounterEXT-commonparent");
4143*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, "VUID-vkGetSwapchainCounterEXT-swapchain-parameter", "VUID-vkGetSwapchainCounterEXT-commonparent");
4144*b7893ccfSSadaf Ebrahimi
4145*b7893ccfSSadaf Ebrahimi return skip;
4146*b7893ccfSSadaf Ebrahimi }
4147*b7893ccfSSadaf Ebrahimi
PreCallValidateGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties)4148*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetRefreshCycleDurationGOOGLE(
4149*b7893ccfSSadaf Ebrahimi VkDevice device,
4150*b7893ccfSSadaf Ebrahimi VkSwapchainKHR swapchain,
4151*b7893ccfSSadaf Ebrahimi VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
4152*b7893ccfSSadaf Ebrahimi bool skip = false;
4153*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter", "VUID-vkGetRefreshCycleDurationGOOGLE-commonparent");
4154*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, "VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameter", "VUID-vkGetRefreshCycleDurationGOOGLE-commonparent");
4155*b7893ccfSSadaf Ebrahimi
4156*b7893ccfSSadaf Ebrahimi return skip;
4157*b7893ccfSSadaf Ebrahimi }
4158*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings)4159*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPastPresentationTimingGOOGLE(
4160*b7893ccfSSadaf Ebrahimi VkDevice device,
4161*b7893ccfSSadaf Ebrahimi VkSwapchainKHR swapchain,
4162*b7893ccfSSadaf Ebrahimi uint32_t* pPresentationTimingCount,
4163*b7893ccfSSadaf Ebrahimi VkPastPresentationTimingGOOGLE* pPresentationTimings) {
4164*b7893ccfSSadaf Ebrahimi bool skip = false;
4165*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetPastPresentationTimingGOOGLE-device-parameter", "VUID-vkGetPastPresentationTimingGOOGLE-commonparent");
4166*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, "VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parameter", "VUID-vkGetPastPresentationTimingGOOGLE-commonparent");
4167*b7893ccfSSadaf Ebrahimi
4168*b7893ccfSSadaf Ebrahimi return skip;
4169*b7893ccfSSadaf Ebrahimi }
4170*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles)4171*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetDiscardRectangleEXT(
4172*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4173*b7893ccfSSadaf Ebrahimi uint32_t firstDiscardRectangle,
4174*b7893ccfSSadaf Ebrahimi uint32_t discardRectangleCount,
4175*b7893ccfSSadaf Ebrahimi const VkRect2D* pDiscardRectangles) {
4176*b7893ccfSSadaf Ebrahimi bool skip = false;
4177*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter", kVUIDUndefined);
4178*b7893ccfSSadaf Ebrahimi
4179*b7893ccfSSadaf Ebrahimi return skip;
4180*b7893ccfSSadaf Ebrahimi }
4181*b7893ccfSSadaf Ebrahimi
PreCallValidateSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata)4182*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateSetHdrMetadataEXT(
4183*b7893ccfSSadaf Ebrahimi VkDevice device,
4184*b7893ccfSSadaf Ebrahimi uint32_t swapchainCount,
4185*b7893ccfSSadaf Ebrahimi const VkSwapchainKHR* pSwapchains,
4186*b7893ccfSSadaf Ebrahimi const VkHdrMetadataEXT* pMetadata) {
4187*b7893ccfSSadaf Ebrahimi bool skip = false;
4188*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkSetHdrMetadataEXT-device-parameter", "VUID-vkSetHdrMetadataEXT-commonparent");
4189*b7893ccfSSadaf Ebrahimi if (pSwapchains) {
4190*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < swapchainCount; ++index0) {
4191*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pSwapchains[index0], kVulkanObjectTypeSwapchainKHR, false, "VUID-vkSetHdrMetadataEXT-pSwapchains-parameter", "VUID-vkSetHdrMetadataEXT-commonparent");
4192*b7893ccfSSadaf Ebrahimi }
4193*b7893ccfSSadaf Ebrahimi }
4194*b7893ccfSSadaf Ebrahimi
4195*b7893ccfSSadaf Ebrahimi return skip;
4196*b7893ccfSSadaf Ebrahimi }
4197*b7893ccfSSadaf Ebrahimi
4198*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_IOS_MVK
4199*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)4200*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateIOSSurfaceMVK(
4201*b7893ccfSSadaf Ebrahimi VkInstance instance,
4202*b7893ccfSSadaf Ebrahimi const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
4203*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4204*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
4205*b7893ccfSSadaf Ebrahimi bool skip = false;
4206*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateIOSSurfaceMVK-instance-parameter", kVUIDUndefined);
4207*b7893ccfSSadaf Ebrahimi
4208*b7893ccfSSadaf Ebrahimi return skip;
4209*b7893ccfSSadaf Ebrahimi }
4210*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)4211*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateIOSSurfaceMVK(
4212*b7893ccfSSadaf Ebrahimi VkInstance instance,
4213*b7893ccfSSadaf Ebrahimi const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
4214*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4215*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
4216*b7893ccfSSadaf Ebrahimi VkResult result) {
4217*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
4218*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
4219*b7893ccfSSadaf Ebrahimi
4220*b7893ccfSSadaf Ebrahimi }
4221*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_IOS_MVK
4222*b7893ccfSSadaf Ebrahimi
4223*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_MACOS_MVK
4224*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)4225*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateMacOSSurfaceMVK(
4226*b7893ccfSSadaf Ebrahimi VkInstance instance,
4227*b7893ccfSSadaf Ebrahimi const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
4228*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4229*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
4230*b7893ccfSSadaf Ebrahimi bool skip = false;
4231*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateMacOSSurfaceMVK-instance-parameter", kVUIDUndefined);
4232*b7893ccfSSadaf Ebrahimi
4233*b7893ccfSSadaf Ebrahimi return skip;
4234*b7893ccfSSadaf Ebrahimi }
4235*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)4236*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateMacOSSurfaceMVK(
4237*b7893ccfSSadaf Ebrahimi VkInstance instance,
4238*b7893ccfSSadaf Ebrahimi const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
4239*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4240*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
4241*b7893ccfSSadaf Ebrahimi VkResult result) {
4242*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
4243*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
4244*b7893ccfSSadaf Ebrahimi
4245*b7893ccfSSadaf Ebrahimi }
4246*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_MACOS_MVK
4247*b7893ccfSSadaf Ebrahimi
PreCallValidateSetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo)4248*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateSetDebugUtilsObjectNameEXT(
4249*b7893ccfSSadaf Ebrahimi VkDevice device,
4250*b7893ccfSSadaf Ebrahimi const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
4251*b7893ccfSSadaf Ebrahimi bool skip = false;
4252*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkSetDebugUtilsObjectNameEXT-device-parameter", kVUIDUndefined);
4253*b7893ccfSSadaf Ebrahimi
4254*b7893ccfSSadaf Ebrahimi return skip;
4255*b7893ccfSSadaf Ebrahimi }
4256*b7893ccfSSadaf Ebrahimi
PreCallValidateSetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo)4257*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateSetDebugUtilsObjectTagEXT(
4258*b7893ccfSSadaf Ebrahimi VkDevice device,
4259*b7893ccfSSadaf Ebrahimi const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
4260*b7893ccfSSadaf Ebrahimi bool skip = false;
4261*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkSetDebugUtilsObjectTagEXT-device-parameter", kVUIDUndefined);
4262*b7893ccfSSadaf Ebrahimi
4263*b7893ccfSSadaf Ebrahimi return skip;
4264*b7893ccfSSadaf Ebrahimi }
4265*b7893ccfSSadaf Ebrahimi
PreCallValidateQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)4266*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateQueueBeginDebugUtilsLabelEXT(
4267*b7893ccfSSadaf Ebrahimi VkQueue queue,
4268*b7893ccfSSadaf Ebrahimi const VkDebugUtilsLabelEXT* pLabelInfo) {
4269*b7893ccfSSadaf Ebrahimi bool skip = false;
4270*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, "VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter", kVUIDUndefined);
4271*b7893ccfSSadaf Ebrahimi
4272*b7893ccfSSadaf Ebrahimi return skip;
4273*b7893ccfSSadaf Ebrahimi }
4274*b7893ccfSSadaf Ebrahimi
PreCallValidateQueueEndDebugUtilsLabelEXT(VkQueue queue)4275*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateQueueEndDebugUtilsLabelEXT(
4276*b7893ccfSSadaf Ebrahimi VkQueue queue) {
4277*b7893ccfSSadaf Ebrahimi bool skip = false;
4278*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, "VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter", kVUIDUndefined);
4279*b7893ccfSSadaf Ebrahimi
4280*b7893ccfSSadaf Ebrahimi return skip;
4281*b7893ccfSSadaf Ebrahimi }
4282*b7893ccfSSadaf Ebrahimi
PreCallValidateQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)4283*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateQueueInsertDebugUtilsLabelEXT(
4284*b7893ccfSSadaf Ebrahimi VkQueue queue,
4285*b7893ccfSSadaf Ebrahimi const VkDebugUtilsLabelEXT* pLabelInfo) {
4286*b7893ccfSSadaf Ebrahimi bool skip = false;
4287*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, "VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter", kVUIDUndefined);
4288*b7893ccfSSadaf Ebrahimi
4289*b7893ccfSSadaf Ebrahimi return skip;
4290*b7893ccfSSadaf Ebrahimi }
4291*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)4292*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBeginDebugUtilsLabelEXT(
4293*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4294*b7893ccfSSadaf Ebrahimi const VkDebugUtilsLabelEXT* pLabelInfo) {
4295*b7893ccfSSadaf Ebrahimi bool skip = false;
4296*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter", kVUIDUndefined);
4297*b7893ccfSSadaf Ebrahimi
4298*b7893ccfSSadaf Ebrahimi return skip;
4299*b7893ccfSSadaf Ebrahimi }
4300*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)4301*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdEndDebugUtilsLabelEXT(
4302*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer) {
4303*b7893ccfSSadaf Ebrahimi bool skip = false;
4304*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter", kVUIDUndefined);
4305*b7893ccfSSadaf Ebrahimi
4306*b7893ccfSSadaf Ebrahimi return skip;
4307*b7893ccfSSadaf Ebrahimi }
4308*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)4309*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdInsertDebugUtilsLabelEXT(
4310*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4311*b7893ccfSSadaf Ebrahimi const VkDebugUtilsLabelEXT* pLabelInfo) {
4312*b7893ccfSSadaf Ebrahimi bool skip = false;
4313*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter", kVUIDUndefined);
4314*b7893ccfSSadaf Ebrahimi
4315*b7893ccfSSadaf Ebrahimi return skip;
4316*b7893ccfSSadaf Ebrahimi }
4317*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger)4318*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateDebugUtilsMessengerEXT(
4319*b7893ccfSSadaf Ebrahimi VkInstance instance,
4320*b7893ccfSSadaf Ebrahimi const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
4321*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4322*b7893ccfSSadaf Ebrahimi VkDebugUtilsMessengerEXT* pMessenger) {
4323*b7893ccfSSadaf Ebrahimi bool skip = false;
4324*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateDebugUtilsMessengerEXT-instance-parameter", kVUIDUndefined);
4325*b7893ccfSSadaf Ebrahimi
4326*b7893ccfSSadaf Ebrahimi return skip;
4327*b7893ccfSSadaf Ebrahimi }
4328*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger,VkResult result)4329*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateDebugUtilsMessengerEXT(
4330*b7893ccfSSadaf Ebrahimi VkInstance instance,
4331*b7893ccfSSadaf Ebrahimi const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
4332*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4333*b7893ccfSSadaf Ebrahimi VkDebugUtilsMessengerEXT* pMessenger,
4334*b7893ccfSSadaf Ebrahimi VkResult result) {
4335*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
4336*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pMessenger, kVulkanObjectTypeDebugUtilsMessengerEXT, pAllocator);
4337*b7893ccfSSadaf Ebrahimi
4338*b7893ccfSSadaf Ebrahimi }
4339*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator)4340*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyDebugUtilsMessengerEXT(
4341*b7893ccfSSadaf Ebrahimi VkInstance instance,
4342*b7893ccfSSadaf Ebrahimi VkDebugUtilsMessengerEXT messenger,
4343*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
4344*b7893ccfSSadaf Ebrahimi bool skip = false;
4345*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameter", kVUIDUndefined);
4346*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, messenger, kVulkanObjectTypeDebugUtilsMessengerEXT, false, "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parameter", "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parent");
4347*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(instance, messenger, kVulkanObjectTypeDebugUtilsMessengerEXT, pAllocator, kVUIDUndefined, kVUIDUndefined);
4348*b7893ccfSSadaf Ebrahimi
4349*b7893ccfSSadaf Ebrahimi return skip;
4350*b7893ccfSSadaf Ebrahimi }
4351*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator)4352*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyDebugUtilsMessengerEXT(
4353*b7893ccfSSadaf Ebrahimi VkInstance instance,
4354*b7893ccfSSadaf Ebrahimi VkDebugUtilsMessengerEXT messenger,
4355*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
4356*b7893ccfSSadaf Ebrahimi RecordDestroyObject(instance, messenger, kVulkanObjectTypeDebugUtilsMessengerEXT);
4357*b7893ccfSSadaf Ebrahimi
4358*b7893ccfSSadaf Ebrahimi }
4359*b7893ccfSSadaf Ebrahimi
PreCallValidateSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData)4360*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateSubmitDebugUtilsMessageEXT(
4361*b7893ccfSSadaf Ebrahimi VkInstance instance,
4362*b7893ccfSSadaf Ebrahimi VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
4363*b7893ccfSSadaf Ebrahimi VkDebugUtilsMessageTypeFlagsEXT messageTypes,
4364*b7893ccfSSadaf Ebrahimi const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
4365*b7893ccfSSadaf Ebrahimi bool skip = false;
4366*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkSubmitDebugUtilsMessageEXT-instance-parameter", kVUIDUndefined);
4367*b7893ccfSSadaf Ebrahimi
4368*b7893ccfSSadaf Ebrahimi return skip;
4369*b7893ccfSSadaf Ebrahimi }
4370*b7893ccfSSadaf Ebrahimi
4371*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_ANDROID_KHR
4372*b7893ccfSSadaf Ebrahimi
PreCallValidateGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties)4373*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetAndroidHardwareBufferPropertiesANDROID(
4374*b7893ccfSSadaf Ebrahimi VkDevice device,
4375*b7893ccfSSadaf Ebrahimi const struct AHardwareBuffer* buffer,
4376*b7893ccfSSadaf Ebrahimi VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
4377*b7893ccfSSadaf Ebrahimi bool skip = false;
4378*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter", kVUIDUndefined);
4379*b7893ccfSSadaf Ebrahimi
4380*b7893ccfSSadaf Ebrahimi return skip;
4381*b7893ccfSSadaf Ebrahimi }
4382*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_ANDROID_KHR
4383*b7893ccfSSadaf Ebrahimi
4384*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_ANDROID_KHR
4385*b7893ccfSSadaf Ebrahimi
PreCallValidateGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer)4386*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetMemoryAndroidHardwareBufferANDROID(
4387*b7893ccfSSadaf Ebrahimi VkDevice device,
4388*b7893ccfSSadaf Ebrahimi const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
4389*b7893ccfSSadaf Ebrahimi struct AHardwareBuffer** pBuffer) {
4390*b7893ccfSSadaf Ebrahimi bool skip = false;
4391*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter", kVUIDUndefined);
4392*b7893ccfSSadaf Ebrahimi if (pInfo) {
4393*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pInfo->memory, kVulkanObjectTypeDeviceMemory, false, "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-memory-parameter", kVUIDUndefined);
4394*b7893ccfSSadaf Ebrahimi }
4395*b7893ccfSSadaf Ebrahimi
4396*b7893ccfSSadaf Ebrahimi return skip;
4397*b7893ccfSSadaf Ebrahimi }
4398*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_ANDROID_KHR
4399*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo)4400*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetSampleLocationsEXT(
4401*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4402*b7893ccfSSadaf Ebrahimi const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
4403*b7893ccfSSadaf Ebrahimi bool skip = false;
4404*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter", kVUIDUndefined);
4405*b7893ccfSSadaf Ebrahimi
4406*b7893ccfSSadaf Ebrahimi return skip;
4407*b7893ccfSSadaf Ebrahimi }
4408*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties)4409*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceMultisamplePropertiesEXT(
4410*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
4411*b7893ccfSSadaf Ebrahimi VkSampleCountFlagBits samples,
4412*b7893ccfSSadaf Ebrahimi VkMultisamplePropertiesEXT* pMultisampleProperties) {
4413*b7893ccfSSadaf Ebrahimi bool skip = false;
4414*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter", kVUIDUndefined);
4415*b7893ccfSSadaf Ebrahimi
4416*b7893ccfSSadaf Ebrahimi return skip;
4417*b7893ccfSSadaf Ebrahimi }
4418*b7893ccfSSadaf Ebrahimi
PreCallValidateGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties)4419*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetImageDrmFormatModifierPropertiesEXT(
4420*b7893ccfSSadaf Ebrahimi VkDevice device,
4421*b7893ccfSSadaf Ebrahimi VkImage image,
4422*b7893ccfSSadaf Ebrahimi VkImageDrmFormatModifierPropertiesEXT* pProperties) {
4423*b7893ccfSSadaf Ebrahimi bool skip = false;
4424*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter", kVUIDUndefined);
4425*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, image, kVulkanObjectTypeImage, false, "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameter", "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parent");
4426*b7893ccfSSadaf Ebrahimi
4427*b7893ccfSSadaf Ebrahimi return skip;
4428*b7893ccfSSadaf Ebrahimi }
4429*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache)4430*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateValidationCacheEXT(
4431*b7893ccfSSadaf Ebrahimi VkDevice device,
4432*b7893ccfSSadaf Ebrahimi const VkValidationCacheCreateInfoEXT* pCreateInfo,
4433*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4434*b7893ccfSSadaf Ebrahimi VkValidationCacheEXT* pValidationCache) {
4435*b7893ccfSSadaf Ebrahimi bool skip = false;
4436*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateValidationCacheEXT-device-parameter", kVUIDUndefined);
4437*b7893ccfSSadaf Ebrahimi
4438*b7893ccfSSadaf Ebrahimi return skip;
4439*b7893ccfSSadaf Ebrahimi }
4440*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache,VkResult result)4441*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateValidationCacheEXT(
4442*b7893ccfSSadaf Ebrahimi VkDevice device,
4443*b7893ccfSSadaf Ebrahimi const VkValidationCacheCreateInfoEXT* pCreateInfo,
4444*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4445*b7893ccfSSadaf Ebrahimi VkValidationCacheEXT* pValidationCache,
4446*b7893ccfSSadaf Ebrahimi VkResult result) {
4447*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
4448*b7893ccfSSadaf Ebrahimi CreateObject(device, *pValidationCache, kVulkanObjectTypeValidationCacheEXT, pAllocator);
4449*b7893ccfSSadaf Ebrahimi
4450*b7893ccfSSadaf Ebrahimi }
4451*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator)4452*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyValidationCacheEXT(
4453*b7893ccfSSadaf Ebrahimi VkDevice device,
4454*b7893ccfSSadaf Ebrahimi VkValidationCacheEXT validationCache,
4455*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
4456*b7893ccfSSadaf Ebrahimi bool skip = false;
4457*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyValidationCacheEXT-device-parameter", kVUIDUndefined);
4458*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, validationCache, kVulkanObjectTypeValidationCacheEXT, true, "VUID-vkDestroyValidationCacheEXT-validationCache-parameter", "VUID-vkDestroyValidationCacheEXT-validationCache-parent");
4459*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, validationCache, kVulkanObjectTypeValidationCacheEXT, pAllocator, kVUIDUndefined, kVUIDUndefined);
4460*b7893ccfSSadaf Ebrahimi
4461*b7893ccfSSadaf Ebrahimi return skip;
4462*b7893ccfSSadaf Ebrahimi }
4463*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator)4464*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyValidationCacheEXT(
4465*b7893ccfSSadaf Ebrahimi VkDevice device,
4466*b7893ccfSSadaf Ebrahimi VkValidationCacheEXT validationCache,
4467*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
4468*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, validationCache, kVulkanObjectTypeValidationCacheEXT);
4469*b7893ccfSSadaf Ebrahimi
4470*b7893ccfSSadaf Ebrahimi }
4471*b7893ccfSSadaf Ebrahimi
PreCallValidateMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches)4472*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateMergeValidationCachesEXT(
4473*b7893ccfSSadaf Ebrahimi VkDevice device,
4474*b7893ccfSSadaf Ebrahimi VkValidationCacheEXT dstCache,
4475*b7893ccfSSadaf Ebrahimi uint32_t srcCacheCount,
4476*b7893ccfSSadaf Ebrahimi const VkValidationCacheEXT* pSrcCaches) {
4477*b7893ccfSSadaf Ebrahimi bool skip = false;
4478*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkMergeValidationCachesEXT-device-parameter", kVUIDUndefined);
4479*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, dstCache, kVulkanObjectTypeValidationCacheEXT, false, "VUID-vkMergeValidationCachesEXT-dstCache-parameter", "VUID-vkMergeValidationCachesEXT-dstCache-parent");
4480*b7893ccfSSadaf Ebrahimi if (pSrcCaches) {
4481*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < srcCacheCount; ++index0) {
4482*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pSrcCaches[index0], kVulkanObjectTypeValidationCacheEXT, false, "VUID-vkMergeValidationCachesEXT-pSrcCaches-parameter", "VUID-vkMergeValidationCachesEXT-pSrcCaches-parent");
4483*b7893ccfSSadaf Ebrahimi }
4484*b7893ccfSSadaf Ebrahimi }
4485*b7893ccfSSadaf Ebrahimi
4486*b7893ccfSSadaf Ebrahimi return skip;
4487*b7893ccfSSadaf Ebrahimi }
4488*b7893ccfSSadaf Ebrahimi
PreCallValidateGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData)4489*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetValidationCacheDataEXT(
4490*b7893ccfSSadaf Ebrahimi VkDevice device,
4491*b7893ccfSSadaf Ebrahimi VkValidationCacheEXT validationCache,
4492*b7893ccfSSadaf Ebrahimi size_t* pDataSize,
4493*b7893ccfSSadaf Ebrahimi void* pData) {
4494*b7893ccfSSadaf Ebrahimi bool skip = false;
4495*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetValidationCacheDataEXT-device-parameter", kVUIDUndefined);
4496*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, validationCache, kVulkanObjectTypeValidationCacheEXT, false, "VUID-vkGetValidationCacheDataEXT-validationCache-parameter", "VUID-vkGetValidationCacheDataEXT-validationCache-parent");
4497*b7893ccfSSadaf Ebrahimi
4498*b7893ccfSSadaf Ebrahimi return skip;
4499*b7893ccfSSadaf Ebrahimi }
4500*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout)4501*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBindShadingRateImageNV(
4502*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4503*b7893ccfSSadaf Ebrahimi VkImageView imageView,
4504*b7893ccfSSadaf Ebrahimi VkImageLayout imageLayout) {
4505*b7893ccfSSadaf Ebrahimi bool skip = false;
4506*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter", "VUID-vkCmdBindShadingRateImageNV-commonparent");
4507*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, imageView, kVulkanObjectTypeImageView, true, "VUID-vkCmdBindShadingRateImageNV-imageView-parameter", "VUID-vkCmdBindShadingRateImageNV-commonparent");
4508*b7893ccfSSadaf Ebrahimi
4509*b7893ccfSSadaf Ebrahimi return skip;
4510*b7893ccfSSadaf Ebrahimi }
4511*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes)4512*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetViewportShadingRatePaletteNV(
4513*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4514*b7893ccfSSadaf Ebrahimi uint32_t firstViewport,
4515*b7893ccfSSadaf Ebrahimi uint32_t viewportCount,
4516*b7893ccfSSadaf Ebrahimi const VkShadingRatePaletteNV* pShadingRatePalettes) {
4517*b7893ccfSSadaf Ebrahimi bool skip = false;
4518*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter", kVUIDUndefined);
4519*b7893ccfSSadaf Ebrahimi
4520*b7893ccfSSadaf Ebrahimi return skip;
4521*b7893ccfSSadaf Ebrahimi }
4522*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders)4523*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetCoarseSampleOrderNV(
4524*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4525*b7893ccfSSadaf Ebrahimi VkCoarseSampleOrderTypeNV sampleOrderType,
4526*b7893ccfSSadaf Ebrahimi uint32_t customSampleOrderCount,
4527*b7893ccfSSadaf Ebrahimi const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
4528*b7893ccfSSadaf Ebrahimi bool skip = false;
4529*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter", kVUIDUndefined);
4530*b7893ccfSSadaf Ebrahimi
4531*b7893ccfSSadaf Ebrahimi return skip;
4532*b7893ccfSSadaf Ebrahimi }
4533*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure)4534*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateAccelerationStructureNV(
4535*b7893ccfSSadaf Ebrahimi VkDevice device,
4536*b7893ccfSSadaf Ebrahimi const VkAccelerationStructureCreateInfoNV* pCreateInfo,
4537*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4538*b7893ccfSSadaf Ebrahimi VkAccelerationStructureNV* pAccelerationStructure) {
4539*b7893ccfSSadaf Ebrahimi bool skip = false;
4540*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateAccelerationStructureNV-device-parameter", kVUIDUndefined);
4541*b7893ccfSSadaf Ebrahimi if (pCreateInfo) {
4542*b7893ccfSSadaf Ebrahimi if (pCreateInfo->info.pGeometries) {
4543*b7893ccfSSadaf Ebrahimi for (uint32_t index2 = 0; index2 < pCreateInfo->info.geometryCount; ++index2) {
4544*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->info.pGeometries[index2].geometry.triangles.vertexData, kVulkanObjectTypeBuffer, true, "VUID-VkGeometryTrianglesNV-vertexData-parameter", "VUID-VkGeometryTrianglesNV-commonparent");
4545*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->info.pGeometries[index2].geometry.triangles.indexData, kVulkanObjectTypeBuffer, true, "VUID-VkGeometryTrianglesNV-indexData-parameter", "VUID-VkGeometryTrianglesNV-commonparent");
4546*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->info.pGeometries[index2].geometry.triangles.transformData, kVulkanObjectTypeBuffer, true, "VUID-VkGeometryTrianglesNV-transformData-parameter", "VUID-VkGeometryTrianglesNV-commonparent");
4547*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfo->info.pGeometries[index2].geometry.aabbs.aabbData, kVulkanObjectTypeBuffer, true, "VUID-VkGeometryAABBNV-aabbData-parameter", kVUIDUndefined);
4548*b7893ccfSSadaf Ebrahimi }
4549*b7893ccfSSadaf Ebrahimi }
4550*b7893ccfSSadaf Ebrahimi }
4551*b7893ccfSSadaf Ebrahimi
4552*b7893ccfSSadaf Ebrahimi return skip;
4553*b7893ccfSSadaf Ebrahimi }
4554*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure,VkResult result)4555*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateAccelerationStructureNV(
4556*b7893ccfSSadaf Ebrahimi VkDevice device,
4557*b7893ccfSSadaf Ebrahimi const VkAccelerationStructureCreateInfoNV* pCreateInfo,
4558*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4559*b7893ccfSSadaf Ebrahimi VkAccelerationStructureNV* pAccelerationStructure,
4560*b7893ccfSSadaf Ebrahimi VkResult result) {
4561*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
4562*b7893ccfSSadaf Ebrahimi CreateObject(device, *pAccelerationStructure, kVulkanObjectTypeAccelerationStructureNV, pAllocator);
4563*b7893ccfSSadaf Ebrahimi
4564*b7893ccfSSadaf Ebrahimi }
4565*b7893ccfSSadaf Ebrahimi
PreCallValidateDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator)4566*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateDestroyAccelerationStructureNV(
4567*b7893ccfSSadaf Ebrahimi VkDevice device,
4568*b7893ccfSSadaf Ebrahimi VkAccelerationStructureNV accelerationStructure,
4569*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
4570*b7893ccfSSadaf Ebrahimi bool skip = false;
4571*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkDestroyAccelerationStructureNV-device-parameter", kVUIDUndefined);
4572*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, accelerationStructure, kVulkanObjectTypeAccelerationStructureNV, false, "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameter", "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parent");
4573*b7893ccfSSadaf Ebrahimi skip |= ValidateDestroyObject(device, accelerationStructure, kVulkanObjectTypeAccelerationStructureNV, pAllocator, kVUIDUndefined, kVUIDUndefined);
4574*b7893ccfSSadaf Ebrahimi
4575*b7893ccfSSadaf Ebrahimi return skip;
4576*b7893ccfSSadaf Ebrahimi }
4577*b7893ccfSSadaf Ebrahimi
PreCallRecordDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator)4578*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PreCallRecordDestroyAccelerationStructureNV(
4579*b7893ccfSSadaf Ebrahimi VkDevice device,
4580*b7893ccfSSadaf Ebrahimi VkAccelerationStructureNV accelerationStructure,
4581*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator) {
4582*b7893ccfSSadaf Ebrahimi RecordDestroyObject(device, accelerationStructure, kVulkanObjectTypeAccelerationStructureNV);
4583*b7893ccfSSadaf Ebrahimi
4584*b7893ccfSSadaf Ebrahimi }
4585*b7893ccfSSadaf Ebrahimi
PreCallValidateGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements)4586*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetAccelerationStructureMemoryRequirementsNV(
4587*b7893ccfSSadaf Ebrahimi VkDevice device,
4588*b7893ccfSSadaf Ebrahimi const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
4589*b7893ccfSSadaf Ebrahimi VkMemoryRequirements2KHR* pMemoryRequirements) {
4590*b7893ccfSSadaf Ebrahimi bool skip = false;
4591*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter", kVUIDUndefined);
4592*b7893ccfSSadaf Ebrahimi if (pInfo) {
4593*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pInfo->accelerationStructure, kVulkanObjectTypeAccelerationStructureNV, false, "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameter", kVUIDUndefined);
4594*b7893ccfSSadaf Ebrahimi }
4595*b7893ccfSSadaf Ebrahimi
4596*b7893ccfSSadaf Ebrahimi return skip;
4597*b7893ccfSSadaf Ebrahimi }
4598*b7893ccfSSadaf Ebrahimi
PreCallValidateBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoNV * pBindInfos)4599*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateBindAccelerationStructureMemoryNV(
4600*b7893ccfSSadaf Ebrahimi VkDevice device,
4601*b7893ccfSSadaf Ebrahimi uint32_t bindInfoCount,
4602*b7893ccfSSadaf Ebrahimi const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
4603*b7893ccfSSadaf Ebrahimi bool skip = false;
4604*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkBindAccelerationStructureMemoryNV-device-parameter", kVUIDUndefined);
4605*b7893ccfSSadaf Ebrahimi if (pBindInfos) {
4606*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < bindInfoCount; ++index0) {
4607*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pBindInfos[index0].accelerationStructure, kVulkanObjectTypeAccelerationStructureNV, false, "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-parameter", "VUID-VkBindAccelerationStructureMemoryInfoNV-commonparent");
4608*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pBindInfos[index0].memory, kVulkanObjectTypeDeviceMemory, false, "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-parameter", "VUID-VkBindAccelerationStructureMemoryInfoNV-commonparent");
4609*b7893ccfSSadaf Ebrahimi }
4610*b7893ccfSSadaf Ebrahimi }
4611*b7893ccfSSadaf Ebrahimi
4612*b7893ccfSSadaf Ebrahimi return skip;
4613*b7893ccfSSadaf Ebrahimi }
4614*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkBuffer scratch,VkDeviceSize scratchOffset)4615*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdBuildAccelerationStructureNV(
4616*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4617*b7893ccfSSadaf Ebrahimi const VkAccelerationStructureInfoNV* pInfo,
4618*b7893ccfSSadaf Ebrahimi VkBuffer instanceData,
4619*b7893ccfSSadaf Ebrahimi VkDeviceSize instanceOffset,
4620*b7893ccfSSadaf Ebrahimi VkBool32 update,
4621*b7893ccfSSadaf Ebrahimi VkAccelerationStructureNV dst,
4622*b7893ccfSSadaf Ebrahimi VkAccelerationStructureNV src,
4623*b7893ccfSSadaf Ebrahimi VkBuffer scratch,
4624*b7893ccfSSadaf Ebrahimi VkDeviceSize scratchOffset) {
4625*b7893ccfSSadaf Ebrahimi bool skip = false;
4626*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter", "VUID-vkCmdBuildAccelerationStructureNV-commonparent");
4627*b7893ccfSSadaf Ebrahimi if (pInfo) {
4628*b7893ccfSSadaf Ebrahimi if (pInfo->pGeometries) {
4629*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pInfo->geometryCount; ++index1) {
4630*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pInfo->pGeometries[index1].geometry.triangles.vertexData, kVulkanObjectTypeBuffer, true, "VUID-VkGeometryTrianglesNV-vertexData-parameter", "VUID-VkGeometryTrianglesNV-commonparent");
4631*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pInfo->pGeometries[index1].geometry.triangles.indexData, kVulkanObjectTypeBuffer, true, "VUID-VkGeometryTrianglesNV-indexData-parameter", "VUID-VkGeometryTrianglesNV-commonparent");
4632*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pInfo->pGeometries[index1].geometry.triangles.transformData, kVulkanObjectTypeBuffer, true, "VUID-VkGeometryTrianglesNV-transformData-parameter", "VUID-VkGeometryTrianglesNV-commonparent");
4633*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pInfo->pGeometries[index1].geometry.aabbs.aabbData, kVulkanObjectTypeBuffer, true, "VUID-VkGeometryAABBNV-aabbData-parameter", kVUIDUndefined);
4634*b7893ccfSSadaf Ebrahimi }
4635*b7893ccfSSadaf Ebrahimi }
4636*b7893ccfSSadaf Ebrahimi }
4637*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, instanceData, kVulkanObjectTypeBuffer, true, "VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter", "VUID-vkCmdBuildAccelerationStructureNV-commonparent");
4638*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dst, kVulkanObjectTypeAccelerationStructureNV, false, "VUID-vkCmdBuildAccelerationStructureNV-dst-parameter", "VUID-vkCmdBuildAccelerationStructureNV-commonparent");
4639*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, src, kVulkanObjectTypeAccelerationStructureNV, true, "VUID-vkCmdBuildAccelerationStructureNV-src-parameter", "VUID-vkCmdBuildAccelerationStructureNV-commonparent");
4640*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, scratch, kVulkanObjectTypeBuffer, false, "VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter", "VUID-vkCmdBuildAccelerationStructureNV-commonparent");
4641*b7893ccfSSadaf Ebrahimi
4642*b7893ccfSSadaf Ebrahimi return skip;
4643*b7893ccfSSadaf Ebrahimi }
4644*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkCopyAccelerationStructureModeNV mode)4645*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdCopyAccelerationStructureNV(
4646*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4647*b7893ccfSSadaf Ebrahimi VkAccelerationStructureNV dst,
4648*b7893ccfSSadaf Ebrahimi VkAccelerationStructureNV src,
4649*b7893ccfSSadaf Ebrahimi VkCopyAccelerationStructureModeNV mode) {
4650*b7893ccfSSadaf Ebrahimi bool skip = false;
4651*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter", "VUID-vkCmdCopyAccelerationStructureNV-commonparent");
4652*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dst, kVulkanObjectTypeAccelerationStructureNV, false, "VUID-vkCmdCopyAccelerationStructureNV-dst-parameter", "VUID-vkCmdCopyAccelerationStructureNV-commonparent");
4653*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, src, kVulkanObjectTypeAccelerationStructureNV, false, "VUID-vkCmdCopyAccelerationStructureNV-src-parameter", "VUID-vkCmdCopyAccelerationStructureNV-commonparent");
4654*b7893ccfSSadaf Ebrahimi
4655*b7893ccfSSadaf Ebrahimi return skip;
4656*b7893ccfSSadaf Ebrahimi }
4657*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdTraceRaysNV(VkCommandBuffer commandBuffer,VkBuffer raygenShaderBindingTableBuffer,VkDeviceSize raygenShaderBindingOffset,VkBuffer missShaderBindingTableBuffer,VkDeviceSize missShaderBindingOffset,VkDeviceSize missShaderBindingStride,VkBuffer hitShaderBindingTableBuffer,VkDeviceSize hitShaderBindingOffset,VkDeviceSize hitShaderBindingStride,VkBuffer callableShaderBindingTableBuffer,VkDeviceSize callableShaderBindingOffset,VkDeviceSize callableShaderBindingStride,uint32_t width,uint32_t height,uint32_t depth)4658*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdTraceRaysNV(
4659*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4660*b7893ccfSSadaf Ebrahimi VkBuffer raygenShaderBindingTableBuffer,
4661*b7893ccfSSadaf Ebrahimi VkDeviceSize raygenShaderBindingOffset,
4662*b7893ccfSSadaf Ebrahimi VkBuffer missShaderBindingTableBuffer,
4663*b7893ccfSSadaf Ebrahimi VkDeviceSize missShaderBindingOffset,
4664*b7893ccfSSadaf Ebrahimi VkDeviceSize missShaderBindingStride,
4665*b7893ccfSSadaf Ebrahimi VkBuffer hitShaderBindingTableBuffer,
4666*b7893ccfSSadaf Ebrahimi VkDeviceSize hitShaderBindingOffset,
4667*b7893ccfSSadaf Ebrahimi VkDeviceSize hitShaderBindingStride,
4668*b7893ccfSSadaf Ebrahimi VkBuffer callableShaderBindingTableBuffer,
4669*b7893ccfSSadaf Ebrahimi VkDeviceSize callableShaderBindingOffset,
4670*b7893ccfSSadaf Ebrahimi VkDeviceSize callableShaderBindingStride,
4671*b7893ccfSSadaf Ebrahimi uint32_t width,
4672*b7893ccfSSadaf Ebrahimi uint32_t height,
4673*b7893ccfSSadaf Ebrahimi uint32_t depth) {
4674*b7893ccfSSadaf Ebrahimi bool skip = false;
4675*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdTraceRaysNV-commandBuffer-parameter", "VUID-vkCmdTraceRaysNV-commonparent");
4676*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, raygenShaderBindingTableBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter", "VUID-vkCmdTraceRaysNV-commonparent");
4677*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, missShaderBindingTableBuffer, kVulkanObjectTypeBuffer, true, "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter", "VUID-vkCmdTraceRaysNV-commonparent");
4678*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, hitShaderBindingTableBuffer, kVulkanObjectTypeBuffer, true, "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter", "VUID-vkCmdTraceRaysNV-commonparent");
4679*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, callableShaderBindingTableBuffer, kVulkanObjectTypeBuffer, true, "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter", "VUID-vkCmdTraceRaysNV-commonparent");
4680*b7893ccfSSadaf Ebrahimi
4681*b7893ccfSSadaf Ebrahimi return skip;
4682*b7893ccfSSadaf Ebrahimi }
4683*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)4684*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateRayTracingPipelinesNV(
4685*b7893ccfSSadaf Ebrahimi VkDevice device,
4686*b7893ccfSSadaf Ebrahimi VkPipelineCache pipelineCache,
4687*b7893ccfSSadaf Ebrahimi uint32_t createInfoCount,
4688*b7893ccfSSadaf Ebrahimi const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
4689*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4690*b7893ccfSSadaf Ebrahimi VkPipeline* pPipelines) {
4691*b7893ccfSSadaf Ebrahimi bool skip = false;
4692*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCreateRayTracingPipelinesNV-device-parameter", kVUIDUndefined);
4693*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pipelineCache, kVulkanObjectTypePipelineCache, true, "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameter", "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parent");
4694*b7893ccfSSadaf Ebrahimi if (pCreateInfos) {
4695*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < createInfoCount; ++index0) {
4696*b7893ccfSSadaf Ebrahimi if (pCreateInfos[index0].pStages) {
4697*b7893ccfSSadaf Ebrahimi for (uint32_t index1 = 0; index1 < pCreateInfos[index0].stageCount; ++index1) {
4698*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].pStages[index1].module, kVulkanObjectTypeShaderModule, false, "VUID-VkPipelineShaderStageCreateInfo-module-parameter", kVUIDUndefined);
4699*b7893ccfSSadaf Ebrahimi }
4700*b7893ccfSSadaf Ebrahimi }
4701*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].layout, kVulkanObjectTypePipelineLayout, false, "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter", "VUID-VkRayTracingPipelineCreateInfoNV-commonparent");
4702*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pCreateInfos[index0].basePipelineHandle, kVulkanObjectTypePipeline, true, kVUIDUndefined, "VUID-VkRayTracingPipelineCreateInfoNV-commonparent");
4703*b7893ccfSSadaf Ebrahimi }
4704*b7893ccfSSadaf Ebrahimi }
4705*b7893ccfSSadaf Ebrahimi
4706*b7893ccfSSadaf Ebrahimi return skip;
4707*b7893ccfSSadaf Ebrahimi }
4708*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines,VkResult result)4709*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateRayTracingPipelinesNV(
4710*b7893ccfSSadaf Ebrahimi VkDevice device,
4711*b7893ccfSSadaf Ebrahimi VkPipelineCache pipelineCache,
4712*b7893ccfSSadaf Ebrahimi uint32_t createInfoCount,
4713*b7893ccfSSadaf Ebrahimi const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
4714*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4715*b7893ccfSSadaf Ebrahimi VkPipeline* pPipelines,
4716*b7893ccfSSadaf Ebrahimi VkResult result) {
4717*b7893ccfSSadaf Ebrahimi if (VK_ERROR_VALIDATION_FAILED_EXT == result) return;
4718*b7893ccfSSadaf Ebrahimi if (pPipelines) {
4719*b7893ccfSSadaf Ebrahimi for (uint32_t index = 0; index < createInfoCount; index++) {
4720*b7893ccfSSadaf Ebrahimi if (!pPipelines[index]) continue;
4721*b7893ccfSSadaf Ebrahimi CreateObject(device, pPipelines[index], kVulkanObjectTypePipeline, pAllocator);
4722*b7893ccfSSadaf Ebrahimi }
4723*b7893ccfSSadaf Ebrahimi }
4724*b7893ccfSSadaf Ebrahimi
4725*b7893ccfSSadaf Ebrahimi }
4726*b7893ccfSSadaf Ebrahimi
PreCallValidateGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)4727*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetRayTracingShaderGroupHandlesNV(
4728*b7893ccfSSadaf Ebrahimi VkDevice device,
4729*b7893ccfSSadaf Ebrahimi VkPipeline pipeline,
4730*b7893ccfSSadaf Ebrahimi uint32_t firstGroup,
4731*b7893ccfSSadaf Ebrahimi uint32_t groupCount,
4732*b7893ccfSSadaf Ebrahimi size_t dataSize,
4733*b7893ccfSSadaf Ebrahimi void* pData) {
4734*b7893ccfSSadaf Ebrahimi bool skip = false;
4735*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetRayTracingShaderGroupHandlesNV-device-parameter", kVUIDUndefined);
4736*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pipeline, kVulkanObjectTypePipeline, false, "VUID-vkGetRayTracingShaderGroupHandlesNV-pipeline-parameter", "VUID-vkGetRayTracingShaderGroupHandlesNV-pipeline-parent");
4737*b7893ccfSSadaf Ebrahimi
4738*b7893ccfSSadaf Ebrahimi return skip;
4739*b7893ccfSSadaf Ebrahimi }
4740*b7893ccfSSadaf Ebrahimi
PreCallValidateGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,size_t dataSize,void * pData)4741*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetAccelerationStructureHandleNV(
4742*b7893ccfSSadaf Ebrahimi VkDevice device,
4743*b7893ccfSSadaf Ebrahimi VkAccelerationStructureNV accelerationStructure,
4744*b7893ccfSSadaf Ebrahimi size_t dataSize,
4745*b7893ccfSSadaf Ebrahimi void* pData) {
4746*b7893ccfSSadaf Ebrahimi bool skip = false;
4747*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetAccelerationStructureHandleNV-device-parameter", kVUIDUndefined);
4748*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, accelerationStructure, kVulkanObjectTypeAccelerationStructureNV, false, "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameter", "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parent");
4749*b7893ccfSSadaf Ebrahimi
4750*b7893ccfSSadaf Ebrahimi return skip;
4751*b7893ccfSSadaf Ebrahimi }
4752*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureNV * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)4753*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdWriteAccelerationStructuresPropertiesNV(
4754*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4755*b7893ccfSSadaf Ebrahimi uint32_t accelerationStructureCount,
4756*b7893ccfSSadaf Ebrahimi const VkAccelerationStructureNV* pAccelerationStructures,
4757*b7893ccfSSadaf Ebrahimi VkQueryType queryType,
4758*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
4759*b7893ccfSSadaf Ebrahimi uint32_t firstQuery) {
4760*b7893ccfSSadaf Ebrahimi bool skip = false;
4761*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter", "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparent");
4762*b7893ccfSSadaf Ebrahimi if (pAccelerationStructures) {
4763*b7893ccfSSadaf Ebrahimi for (uint32_t index0 = 0; index0 < accelerationStructureCount; ++index0) {
4764*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, pAccelerationStructures[index0], kVulkanObjectTypeAccelerationStructureNV, false, "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-parameter", "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparent");
4765*b7893ccfSSadaf Ebrahimi }
4766*b7893ccfSSadaf Ebrahimi }
4767*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, queryPool, kVulkanObjectTypeQueryPool, false, "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-parameter", "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparent");
4768*b7893ccfSSadaf Ebrahimi
4769*b7893ccfSSadaf Ebrahimi return skip;
4770*b7893ccfSSadaf Ebrahimi }
4771*b7893ccfSSadaf Ebrahimi
PreCallValidateCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader)4772*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCompileDeferredNV(
4773*b7893ccfSSadaf Ebrahimi VkDevice device,
4774*b7893ccfSSadaf Ebrahimi VkPipeline pipeline,
4775*b7893ccfSSadaf Ebrahimi uint32_t shader) {
4776*b7893ccfSSadaf Ebrahimi bool skip = false;
4777*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkCompileDeferredNV-device-parameter", kVUIDUndefined);
4778*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pipeline, kVulkanObjectTypePipeline, false, "VUID-vkCompileDeferredNV-pipeline-parameter", "VUID-vkCompileDeferredNV-pipeline-parent");
4779*b7893ccfSSadaf Ebrahimi
4780*b7893ccfSSadaf Ebrahimi return skip;
4781*b7893ccfSSadaf Ebrahimi }
4782*b7893ccfSSadaf Ebrahimi
PreCallValidateGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties)4783*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetMemoryHostPointerPropertiesEXT(
4784*b7893ccfSSadaf Ebrahimi VkDevice device,
4785*b7893ccfSSadaf Ebrahimi VkExternalMemoryHandleTypeFlagBits handleType,
4786*b7893ccfSSadaf Ebrahimi const void* pHostPointer,
4787*b7893ccfSSadaf Ebrahimi VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
4788*b7893ccfSSadaf Ebrahimi bool skip = false;
4789*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter", kVUIDUndefined);
4790*b7893ccfSSadaf Ebrahimi
4791*b7893ccfSSadaf Ebrahimi return skip;
4792*b7893ccfSSadaf Ebrahimi }
4793*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)4794*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdWriteBufferMarkerAMD(
4795*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4796*b7893ccfSSadaf Ebrahimi VkPipelineStageFlagBits pipelineStage,
4797*b7893ccfSSadaf Ebrahimi VkBuffer dstBuffer,
4798*b7893ccfSSadaf Ebrahimi VkDeviceSize dstOffset,
4799*b7893ccfSSadaf Ebrahimi uint32_t marker) {
4800*b7893ccfSSadaf Ebrahimi bool skip = false;
4801*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter", "VUID-vkCmdWriteBufferMarkerAMD-commonparent");
4802*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, dstBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameter", "VUID-vkCmdWriteBufferMarkerAMD-commonparent");
4803*b7893ccfSSadaf Ebrahimi
4804*b7893ccfSSadaf Ebrahimi return skip;
4805*b7893ccfSSadaf Ebrahimi }
4806*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains)4807*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceCalibrateableTimeDomainsEXT(
4808*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
4809*b7893ccfSSadaf Ebrahimi uint32_t* pTimeDomainCount,
4810*b7893ccfSSadaf Ebrahimi VkTimeDomainEXT* pTimeDomains) {
4811*b7893ccfSSadaf Ebrahimi bool skip = false;
4812*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter", kVUIDUndefined);
4813*b7893ccfSSadaf Ebrahimi
4814*b7893ccfSSadaf Ebrahimi return skip;
4815*b7893ccfSSadaf Ebrahimi }
4816*b7893ccfSSadaf Ebrahimi
PreCallValidateGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation)4817*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetCalibratedTimestampsEXT(
4818*b7893ccfSSadaf Ebrahimi VkDevice device,
4819*b7893ccfSSadaf Ebrahimi uint32_t timestampCount,
4820*b7893ccfSSadaf Ebrahimi const VkCalibratedTimestampInfoEXT* pTimestampInfos,
4821*b7893ccfSSadaf Ebrahimi uint64_t* pTimestamps,
4822*b7893ccfSSadaf Ebrahimi uint64_t* pMaxDeviation) {
4823*b7893ccfSSadaf Ebrahimi bool skip = false;
4824*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetCalibratedTimestampsEXT-device-parameter", kVUIDUndefined);
4825*b7893ccfSSadaf Ebrahimi
4826*b7893ccfSSadaf Ebrahimi return skip;
4827*b7893ccfSSadaf Ebrahimi }
4828*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask)4829*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawMeshTasksNV(
4830*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4831*b7893ccfSSadaf Ebrahimi uint32_t taskCount,
4832*b7893ccfSSadaf Ebrahimi uint32_t firstTask) {
4833*b7893ccfSSadaf Ebrahimi bool skip = false;
4834*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter", kVUIDUndefined);
4835*b7893ccfSSadaf Ebrahimi
4836*b7893ccfSSadaf Ebrahimi return skip;
4837*b7893ccfSSadaf Ebrahimi }
4838*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)4839*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawMeshTasksIndirectNV(
4840*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4841*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
4842*b7893ccfSSadaf Ebrahimi VkDeviceSize offset,
4843*b7893ccfSSadaf Ebrahimi uint32_t drawCount,
4844*b7893ccfSSadaf Ebrahimi uint32_t stride) {
4845*b7893ccfSSadaf Ebrahimi bool skip = false;
4846*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter", "VUID-vkCmdDrawMeshTasksIndirectNV-commonparent");
4847*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter", "VUID-vkCmdDrawMeshTasksIndirectNV-commonparent");
4848*b7893ccfSSadaf Ebrahimi
4849*b7893ccfSSadaf Ebrahimi return skip;
4850*b7893ccfSSadaf Ebrahimi }
4851*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4852*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdDrawMeshTasksIndirectCountNV(
4853*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4854*b7893ccfSSadaf Ebrahimi VkBuffer buffer,
4855*b7893ccfSSadaf Ebrahimi VkDeviceSize offset,
4856*b7893ccfSSadaf Ebrahimi VkBuffer countBuffer,
4857*b7893ccfSSadaf Ebrahimi VkDeviceSize countBufferOffset,
4858*b7893ccfSSadaf Ebrahimi uint32_t maxDrawCount,
4859*b7893ccfSSadaf Ebrahimi uint32_t stride) {
4860*b7893ccfSSadaf Ebrahimi bool skip = false;
4861*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter", "VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent");
4862*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, buffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter", "VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent");
4863*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, countBuffer, kVulkanObjectTypeBuffer, false, "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter", "VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent");
4864*b7893ccfSSadaf Ebrahimi
4865*b7893ccfSSadaf Ebrahimi return skip;
4866*b7893ccfSSadaf Ebrahimi }
4867*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors)4868*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetExclusiveScissorNV(
4869*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4870*b7893ccfSSadaf Ebrahimi uint32_t firstExclusiveScissor,
4871*b7893ccfSSadaf Ebrahimi uint32_t exclusiveScissorCount,
4872*b7893ccfSSadaf Ebrahimi const VkRect2D* pExclusiveScissors) {
4873*b7893ccfSSadaf Ebrahimi bool skip = false;
4874*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter", kVUIDUndefined);
4875*b7893ccfSSadaf Ebrahimi
4876*b7893ccfSSadaf Ebrahimi return skip;
4877*b7893ccfSSadaf Ebrahimi }
4878*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker)4879*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetCheckpointNV(
4880*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4881*b7893ccfSSadaf Ebrahimi const void* pCheckpointMarker) {
4882*b7893ccfSSadaf Ebrahimi bool skip = false;
4883*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetCheckpointNV-commandBuffer-parameter", kVUIDUndefined);
4884*b7893ccfSSadaf Ebrahimi
4885*b7893ccfSSadaf Ebrahimi return skip;
4886*b7893ccfSSadaf Ebrahimi }
4887*b7893ccfSSadaf Ebrahimi
PreCallValidateGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData)4888*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetQueueCheckpointDataNV(
4889*b7893ccfSSadaf Ebrahimi VkQueue queue,
4890*b7893ccfSSadaf Ebrahimi uint32_t* pCheckpointDataCount,
4891*b7893ccfSSadaf Ebrahimi VkCheckpointDataNV* pCheckpointData) {
4892*b7893ccfSSadaf Ebrahimi bool skip = false;
4893*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(queue, queue, kVulkanObjectTypeQueue, false, "VUID-vkGetQueueCheckpointDataNV-queue-parameter", kVUIDUndefined);
4894*b7893ccfSSadaf Ebrahimi
4895*b7893ccfSSadaf Ebrahimi return skip;
4896*b7893ccfSSadaf Ebrahimi }
4897*b7893ccfSSadaf Ebrahimi
PreCallValidateInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo)4898*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateInitializePerformanceApiINTEL(
4899*b7893ccfSSadaf Ebrahimi VkDevice device,
4900*b7893ccfSSadaf Ebrahimi const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) {
4901*b7893ccfSSadaf Ebrahimi bool skip = false;
4902*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkInitializePerformanceApiINTEL-device-parameter", kVUIDUndefined);
4903*b7893ccfSSadaf Ebrahimi
4904*b7893ccfSSadaf Ebrahimi return skip;
4905*b7893ccfSSadaf Ebrahimi }
4906*b7893ccfSSadaf Ebrahimi
PreCallValidateUninitializePerformanceApiINTEL(VkDevice device)4907*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateUninitializePerformanceApiINTEL(
4908*b7893ccfSSadaf Ebrahimi VkDevice device) {
4909*b7893ccfSSadaf Ebrahimi bool skip = false;
4910*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkUninitializePerformanceApiINTEL-device-parameter", kVUIDUndefined);
4911*b7893ccfSSadaf Ebrahimi
4912*b7893ccfSSadaf Ebrahimi return skip;
4913*b7893ccfSSadaf Ebrahimi }
4914*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo)4915*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetPerformanceMarkerINTEL(
4916*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4917*b7893ccfSSadaf Ebrahimi const VkPerformanceMarkerInfoINTEL* pMarkerInfo) {
4918*b7893ccfSSadaf Ebrahimi bool skip = false;
4919*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter", kVUIDUndefined);
4920*b7893ccfSSadaf Ebrahimi
4921*b7893ccfSSadaf Ebrahimi return skip;
4922*b7893ccfSSadaf Ebrahimi }
4923*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo)4924*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetPerformanceStreamMarkerINTEL(
4925*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4926*b7893ccfSSadaf Ebrahimi const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo) {
4927*b7893ccfSSadaf Ebrahimi bool skip = false;
4928*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter", kVUIDUndefined);
4929*b7893ccfSSadaf Ebrahimi
4930*b7893ccfSSadaf Ebrahimi return skip;
4931*b7893ccfSSadaf Ebrahimi }
4932*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo)4933*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetPerformanceOverrideINTEL(
4934*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
4935*b7893ccfSSadaf Ebrahimi const VkPerformanceOverrideInfoINTEL* pOverrideInfo) {
4936*b7893ccfSSadaf Ebrahimi bool skip = false;
4937*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter", kVUIDUndefined);
4938*b7893ccfSSadaf Ebrahimi
4939*b7893ccfSSadaf Ebrahimi return skip;
4940*b7893ccfSSadaf Ebrahimi }
4941*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue)4942*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPerformanceParameterINTEL(
4943*b7893ccfSSadaf Ebrahimi VkDevice device,
4944*b7893ccfSSadaf Ebrahimi VkPerformanceParameterTypeINTEL parameter,
4945*b7893ccfSSadaf Ebrahimi VkPerformanceValueINTEL* pValue) {
4946*b7893ccfSSadaf Ebrahimi bool skip = false;
4947*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetPerformanceParameterINTEL-device-parameter", kVUIDUndefined);
4948*b7893ccfSSadaf Ebrahimi
4949*b7893ccfSSadaf Ebrahimi return skip;
4950*b7893ccfSSadaf Ebrahimi }
4951*b7893ccfSSadaf Ebrahimi
PreCallValidateSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable)4952*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateSetLocalDimmingAMD(
4953*b7893ccfSSadaf Ebrahimi VkDevice device,
4954*b7893ccfSSadaf Ebrahimi VkSwapchainKHR swapChain,
4955*b7893ccfSSadaf Ebrahimi VkBool32 localDimmingEnable) {
4956*b7893ccfSSadaf Ebrahimi bool skip = false;
4957*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkSetLocalDimmingAMD-device-parameter", "VUID-vkSetLocalDimmingAMD-commonparent");
4958*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, swapChain, kVulkanObjectTypeSwapchainKHR, false, "VUID-vkSetLocalDimmingAMD-swapChain-parameter", "VUID-vkSetLocalDimmingAMD-commonparent");
4959*b7893ccfSSadaf Ebrahimi
4960*b7893ccfSSadaf Ebrahimi return skip;
4961*b7893ccfSSadaf Ebrahimi }
4962*b7893ccfSSadaf Ebrahimi
4963*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_FUCHSIA
4964*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)4965*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateImagePipeSurfaceFUCHSIA(
4966*b7893ccfSSadaf Ebrahimi VkInstance instance,
4967*b7893ccfSSadaf Ebrahimi const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
4968*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4969*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
4970*b7893ccfSSadaf Ebrahimi bool skip = false;
4971*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateImagePipeSurfaceFUCHSIA-instance-parameter", kVUIDUndefined);
4972*b7893ccfSSadaf Ebrahimi
4973*b7893ccfSSadaf Ebrahimi return skip;
4974*b7893ccfSSadaf Ebrahimi }
4975*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)4976*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateImagePipeSurfaceFUCHSIA(
4977*b7893ccfSSadaf Ebrahimi VkInstance instance,
4978*b7893ccfSSadaf Ebrahimi const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
4979*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4980*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
4981*b7893ccfSSadaf Ebrahimi VkResult result) {
4982*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
4983*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
4984*b7893ccfSSadaf Ebrahimi
4985*b7893ccfSSadaf Ebrahimi }
4986*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_FUCHSIA
4987*b7893ccfSSadaf Ebrahimi
4988*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_METAL_EXT
4989*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)4990*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateMetalSurfaceEXT(
4991*b7893ccfSSadaf Ebrahimi VkInstance instance,
4992*b7893ccfSSadaf Ebrahimi const VkMetalSurfaceCreateInfoEXT* pCreateInfo,
4993*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
4994*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
4995*b7893ccfSSadaf Ebrahimi bool skip = false;
4996*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateMetalSurfaceEXT-instance-parameter", kVUIDUndefined);
4997*b7893ccfSSadaf Ebrahimi
4998*b7893ccfSSadaf Ebrahimi return skip;
4999*b7893ccfSSadaf Ebrahimi }
5000*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)5001*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateMetalSurfaceEXT(
5002*b7893ccfSSadaf Ebrahimi VkInstance instance,
5003*b7893ccfSSadaf Ebrahimi const VkMetalSurfaceCreateInfoEXT* pCreateInfo,
5004*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
5005*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
5006*b7893ccfSSadaf Ebrahimi VkResult result) {
5007*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
5008*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
5009*b7893ccfSSadaf Ebrahimi
5010*b7893ccfSSadaf Ebrahimi }
5011*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_METAL_EXT
5012*b7893ccfSSadaf Ebrahimi
PreCallValidateGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfoEXT * pInfo)5013*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetBufferDeviceAddressEXT(
5014*b7893ccfSSadaf Ebrahimi VkDevice device,
5015*b7893ccfSSadaf Ebrahimi const VkBufferDeviceAddressInfoEXT* pInfo) {
5016*b7893ccfSSadaf Ebrahimi bool skip = false;
5017*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetBufferDeviceAddressEXT-device-parameter", kVUIDUndefined);
5018*b7893ccfSSadaf Ebrahimi
5019*b7893ccfSSadaf Ebrahimi return skip;
5020*b7893ccfSSadaf Ebrahimi }
5021*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties)5022*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceCooperativeMatrixPropertiesNV(
5023*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
5024*b7893ccfSSadaf Ebrahimi uint32_t* pPropertyCount,
5025*b7893ccfSSadaf Ebrahimi VkCooperativeMatrixPropertiesNV* pProperties) {
5026*b7893ccfSSadaf Ebrahimi bool skip = false;
5027*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter", kVUIDUndefined);
5028*b7893ccfSSadaf Ebrahimi
5029*b7893ccfSSadaf Ebrahimi return skip;
5030*b7893ccfSSadaf Ebrahimi }
5031*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations)5032*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
5033*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
5034*b7893ccfSSadaf Ebrahimi uint32_t* pCombinationCount,
5035*b7893ccfSSadaf Ebrahimi VkFramebufferMixedSamplesCombinationNV* pCombinations) {
5036*b7893ccfSSadaf Ebrahimi bool skip = false;
5037*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter", kVUIDUndefined);
5038*b7893ccfSSadaf Ebrahimi
5039*b7893ccfSSadaf Ebrahimi return skip;
5040*b7893ccfSSadaf Ebrahimi }
5041*b7893ccfSSadaf Ebrahimi
5042*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
5043*b7893ccfSSadaf Ebrahimi
PreCallValidateGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes)5044*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetPhysicalDeviceSurfacePresentModes2EXT(
5045*b7893ccfSSadaf Ebrahimi VkPhysicalDevice physicalDevice,
5046*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
5047*b7893ccfSSadaf Ebrahimi uint32_t* pPresentModeCount,
5048*b7893ccfSSadaf Ebrahimi VkPresentModeKHR* pPresentModes) {
5049*b7893ccfSSadaf Ebrahimi bool skip = false;
5050*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, physicalDevice, kVulkanObjectTypePhysicalDevice, false, "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameter", kVUIDUndefined);
5051*b7893ccfSSadaf Ebrahimi if (pSurfaceInfo) {
5052*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(physicalDevice, pSurfaceInfo->surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter", kVUIDUndefined);
5053*b7893ccfSSadaf Ebrahimi }
5054*b7893ccfSSadaf Ebrahimi
5055*b7893ccfSSadaf Ebrahimi return skip;
5056*b7893ccfSSadaf Ebrahimi }
5057*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
5058*b7893ccfSSadaf Ebrahimi
5059*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
5060*b7893ccfSSadaf Ebrahimi
PreCallValidateAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain)5061*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateAcquireFullScreenExclusiveModeEXT(
5062*b7893ccfSSadaf Ebrahimi VkDevice device,
5063*b7893ccfSSadaf Ebrahimi VkSwapchainKHR swapchain) {
5064*b7893ccfSSadaf Ebrahimi bool skip = false;
5065*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter", "VUID-vkAcquireFullScreenExclusiveModeEXT-commonparent");
5066*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parameter", "VUID-vkAcquireFullScreenExclusiveModeEXT-commonparent");
5067*b7893ccfSSadaf Ebrahimi
5068*b7893ccfSSadaf Ebrahimi return skip;
5069*b7893ccfSSadaf Ebrahimi }
5070*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
5071*b7893ccfSSadaf Ebrahimi
5072*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
5073*b7893ccfSSadaf Ebrahimi
PreCallValidateReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain)5074*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateReleaseFullScreenExclusiveModeEXT(
5075*b7893ccfSSadaf Ebrahimi VkDevice device,
5076*b7893ccfSSadaf Ebrahimi VkSwapchainKHR swapchain) {
5077*b7893ccfSSadaf Ebrahimi bool skip = false;
5078*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, kVUIDUndefined, kVUIDUndefined);
5079*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, swapchain, kVulkanObjectTypeSwapchainKHR, false, kVUIDUndefined, kVUIDUndefined);
5080*b7893ccfSSadaf Ebrahimi
5081*b7893ccfSSadaf Ebrahimi return skip;
5082*b7893ccfSSadaf Ebrahimi }
5083*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
5084*b7893ccfSSadaf Ebrahimi
5085*b7893ccfSSadaf Ebrahimi #ifdef VK_USE_PLATFORM_WIN32_KHR
5086*b7893ccfSSadaf Ebrahimi
PreCallValidateGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes)5087*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateGetDeviceGroupSurfacePresentModes2EXT(
5088*b7893ccfSSadaf Ebrahimi VkDevice device,
5089*b7893ccfSSadaf Ebrahimi const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
5090*b7893ccfSSadaf Ebrahimi VkDeviceGroupPresentModeFlagsKHR* pModes) {
5091*b7893ccfSSadaf Ebrahimi bool skip = false;
5092*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameter", kVUIDUndefined);
5093*b7893ccfSSadaf Ebrahimi if (pSurfaceInfo) {
5094*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, pSurfaceInfo->surface, kVulkanObjectTypeSurfaceKHR, false, "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter", kVUIDUndefined);
5095*b7893ccfSSadaf Ebrahimi }
5096*b7893ccfSSadaf Ebrahimi
5097*b7893ccfSSadaf Ebrahimi return skip;
5098*b7893ccfSSadaf Ebrahimi }
5099*b7893ccfSSadaf Ebrahimi #endif // VK_USE_PLATFORM_WIN32_KHR
5100*b7893ccfSSadaf Ebrahimi
PreCallValidateCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)5101*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCreateHeadlessSurfaceEXT(
5102*b7893ccfSSadaf Ebrahimi VkInstance instance,
5103*b7893ccfSSadaf Ebrahimi const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
5104*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
5105*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface) {
5106*b7893ccfSSadaf Ebrahimi bool skip = false;
5107*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(instance, instance, kVulkanObjectTypeInstance, false, "VUID-vkCreateHeadlessSurfaceEXT-instance-parameter", kVUIDUndefined);
5108*b7893ccfSSadaf Ebrahimi
5109*b7893ccfSSadaf Ebrahimi return skip;
5110*b7893ccfSSadaf Ebrahimi }
5111*b7893ccfSSadaf Ebrahimi
PostCallRecordCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)5112*b7893ccfSSadaf Ebrahimi void ObjectLifetimes::PostCallRecordCreateHeadlessSurfaceEXT(
5113*b7893ccfSSadaf Ebrahimi VkInstance instance,
5114*b7893ccfSSadaf Ebrahimi const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
5115*b7893ccfSSadaf Ebrahimi const VkAllocationCallbacks* pAllocator,
5116*b7893ccfSSadaf Ebrahimi VkSurfaceKHR* pSurface,
5117*b7893ccfSSadaf Ebrahimi VkResult result) {
5118*b7893ccfSSadaf Ebrahimi if (result != VK_SUCCESS) return;
5119*b7893ccfSSadaf Ebrahimi CreateObject(instance, *pSurface, kVulkanObjectTypeSurfaceKHR, pAllocator);
5120*b7893ccfSSadaf Ebrahimi
5121*b7893ccfSSadaf Ebrahimi }
5122*b7893ccfSSadaf Ebrahimi
PreCallValidateCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)5123*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateCmdSetLineStippleEXT(
5124*b7893ccfSSadaf Ebrahimi VkCommandBuffer commandBuffer,
5125*b7893ccfSSadaf Ebrahimi uint32_t lineStippleFactor,
5126*b7893ccfSSadaf Ebrahimi uint16_t lineStipplePattern) {
5127*b7893ccfSSadaf Ebrahimi bool skip = false;
5128*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(commandBuffer, commandBuffer, kVulkanObjectTypeCommandBuffer, false, "VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter", kVUIDUndefined);
5129*b7893ccfSSadaf Ebrahimi
5130*b7893ccfSSadaf Ebrahimi return skip;
5131*b7893ccfSSadaf Ebrahimi }
5132*b7893ccfSSadaf Ebrahimi
PreCallValidateResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)5133*b7893ccfSSadaf Ebrahimi bool ObjectLifetimes::PreCallValidateResetQueryPoolEXT(
5134*b7893ccfSSadaf Ebrahimi VkDevice device,
5135*b7893ccfSSadaf Ebrahimi VkQueryPool queryPool,
5136*b7893ccfSSadaf Ebrahimi uint32_t firstQuery,
5137*b7893ccfSSadaf Ebrahimi uint32_t queryCount) {
5138*b7893ccfSSadaf Ebrahimi bool skip = false;
5139*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, device, kVulkanObjectTypeDevice, false, "VUID-vkResetQueryPoolEXT-device-parameter", kVUIDUndefined);
5140*b7893ccfSSadaf Ebrahimi skip |= ValidateObject(device, queryPool, kVulkanObjectTypeQueryPool, false, "VUID-vkResetQueryPoolEXT-queryPool-parameter", "VUID-vkResetQueryPoolEXT-queryPool-parent");
5141*b7893ccfSSadaf Ebrahimi
5142*b7893ccfSSadaf Ebrahimi return skip;
5143*b7893ccfSSadaf Ebrahimi }
5144*b7893ccfSSadaf Ebrahimi
5145*b7893ccfSSadaf Ebrahimi
5146