1
2 // This file is ***GENERATED***. Do Not Edit.
3 // See thread_safety_generator.py for modifications.
4
5 /* Copyright (c) 2015-2019 The Khronos Group Inc.
6 * Copyright (c) 2015-2019 Valve Corporation
7 * Copyright (c) 2015-2019 LunarG, Inc.
8 * Copyright (c) 2015-2019 Google Inc.
9 *
10 * Licensed under the Apache License, Version 2.0 (the "License");
11 * you may not use this file except in compliance with the License.
12 * You may obtain a copy of the License at
13 *
14 * http://www.apache.org/licenses/LICENSE-2.0
15 *
16 * Unless required by applicable law or agreed to in writing, software
17 * distributed under the License is distributed on an "AS IS" BASIS,
18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 * See the License for the specific language governing permissions and
20 * limitations under the License.
21 *
22 * Author: Mark Lobodzinski <mark@lunarg.com>
23 */
24 #include "chassis.h"
25 #include "thread_safety.h"
26
27
PreCallRecordAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers)28 void ThreadSafety::PreCallRecordAllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo *pAllocateInfo,
29 VkCommandBuffer *pCommandBuffers) {
30 StartReadObject(device);
31 StartWriteObject(pAllocateInfo->commandPool);
32 }
33
PostCallRecordAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers,VkResult result)34 void ThreadSafety::PostCallRecordAllocateCommandBuffers(VkDevice device, const VkCommandBufferAllocateInfo *pAllocateInfo,
35 VkCommandBuffer *pCommandBuffers, VkResult result) {
36 FinishReadObject(device);
37 FinishWriteObject(pAllocateInfo->commandPool);
38
39 // Record mapping from command buffer to command pool
40 if(pCommandBuffers) {
41 for (uint32_t index = 0; index < pAllocateInfo->commandBufferCount; index++) {
42 auto &bucket = GetBucket(pCommandBuffers[index]);
43 std::lock_guard<std::mutex> lock(bucket.command_pool_lock);
44 bucket.command_pool_map[pCommandBuffers[index]] = pAllocateInfo->commandPool;
45 }
46 }
47 }
48
PreCallRecordAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets)49 void ThreadSafety::PreCallRecordAllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo *pAllocateInfo,
50 VkDescriptorSet *pDescriptorSets) {
51 StartReadObject(device);
52 StartWriteObject(pAllocateInfo->descriptorPool);
53 // Host access to pAllocateInfo::descriptorPool must be externally synchronized
54 }
55
PostCallRecordAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets,VkResult result)56 void ThreadSafety::PostCallRecordAllocateDescriptorSets(VkDevice device, const VkDescriptorSetAllocateInfo *pAllocateInfo,
57 VkDescriptorSet *pDescriptorSets, VkResult result) {
58 FinishReadObject(device);
59 FinishWriteObject(pAllocateInfo->descriptorPool);
60 // Host access to pAllocateInfo::descriptorPool must be externally synchronized
61 }
62
PreCallRecordFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)63 void ThreadSafety::PreCallRecordFreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount,
64 const VkCommandBuffer *pCommandBuffers) {
65 const bool lockCommandPool = false; // pool is already directly locked
66 StartReadObject(device);
67 StartWriteObject(commandPool);
68 if(pCommandBuffers) {
69 // Even though we're immediately "finishing" below, we still are testing for concurrency with any call in process
70 // so this isn't a no-op
71 for (uint32_t index = 0; index < commandBufferCount; index++) {
72 StartWriteObject(pCommandBuffers[index], lockCommandPool);
73 }
74 // The driver may immediately reuse command buffers in another thread.
75 // These updates need to be done before calling down to the driver.
76 for (uint32_t index = 0; index < commandBufferCount; index++) {
77 FinishWriteObject(pCommandBuffers[index], lockCommandPool);
78 }
79 // Holding the lock for the shortest time while we update the map
80 for (uint32_t index = 0; index < commandBufferCount; index++) {
81 auto &bucket = GetBucket(pCommandBuffers[index]);
82 std::lock_guard<std::mutex> lock(bucket.command_pool_lock);
83 bucket.command_pool_map.erase(pCommandBuffers[index]);
84 }
85 }
86 }
87
PostCallRecordFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)88 void ThreadSafety::PostCallRecordFreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount,
89 const VkCommandBuffer *pCommandBuffers) {
90 FinishReadObject(device);
91 FinishWriteObject(commandPool);
92 }
93
PreCallRecordResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)94 void ThreadSafety::PreCallRecordResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) {
95 StartReadObject(device);
96 StartWriteObject(commandPool);
97 // Check for any uses of non-externally sync'd command buffers (for example from vkCmdExecuteCommands)
98 c_VkCommandPoolContents.StartWrite(commandPool);
99 // Host access to commandPool must be externally synchronized
100 }
101
PostCallRecordResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags,VkResult result)102 void ThreadSafety::PostCallRecordResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags, VkResult result) {
103 FinishReadObject(device);
104 FinishWriteObject(commandPool);
105 c_VkCommandPoolContents.FinishWrite(commandPool);
106 // Host access to commandPool must be externally synchronized
107 }
108
PreCallRecordDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)109 void ThreadSafety::PreCallRecordDestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks *pAllocator) {
110 StartReadObject(device);
111 StartWriteObject(commandPool);
112 // Check for any uses of non-externally sync'd command buffers (for example from vkCmdExecuteCommands)
113 c_VkCommandPoolContents.StartWrite(commandPool);
114 // Host access to commandPool must be externally synchronized
115 }
116
PostCallRecordDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)117 void ThreadSafety::PostCallRecordDestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks *pAllocator) {
118 FinishReadObject(device);
119 FinishWriteObject(commandPool);
120 c_VkCommandPoolContents.FinishWrite(commandPool);
121 }
122
123 // GetSwapchainImages can return a non-zero count with a NULL pSwapchainImages pointer. Let's avoid crashes by ignoring
124 // pSwapchainImages.
PreCallRecordGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages)125 void ThreadSafety::PreCallRecordGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pSwapchainImageCount,
126 VkImage *pSwapchainImages) {
127 StartReadObject(device);
128 StartReadObject(swapchain);
129 }
130
PostCallRecordGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages,VkResult result)131 void ThreadSafety::PostCallRecordGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pSwapchainImageCount,
132 VkImage *pSwapchainImages, VkResult result) {
133 FinishReadObject(device);
134 FinishReadObject(swapchain);
135 }
136
137
138
PreCallRecordDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator)139 void ThreadSafety::PreCallRecordDestroyInstance(
140 VkInstance instance,
141 const VkAllocationCallbacks* pAllocator) {
142 StartWriteObject(instance);
143 // Host access to instance must be externally synchronized
144 }
145
PostCallRecordDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator)146 void ThreadSafety::PostCallRecordDestroyInstance(
147 VkInstance instance,
148 const VkAllocationCallbacks* pAllocator) {
149 FinishWriteObject(instance);
150 // Host access to instance must be externally synchronized
151 }
152
PreCallRecordEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices)153 void ThreadSafety::PreCallRecordEnumeratePhysicalDevices(
154 VkInstance instance,
155 uint32_t* pPhysicalDeviceCount,
156 VkPhysicalDevice* pPhysicalDevices) {
157 StartReadObject(instance);
158 }
159
PostCallRecordEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices,VkResult result)160 void ThreadSafety::PostCallRecordEnumeratePhysicalDevices(
161 VkInstance instance,
162 uint32_t* pPhysicalDeviceCount,
163 VkPhysicalDevice* pPhysicalDevices,
164 VkResult result) {
165 FinishReadObject(instance);
166 }
167
PreCallRecordGetInstanceProcAddr(VkInstance instance,const char * pName)168 void ThreadSafety::PreCallRecordGetInstanceProcAddr(
169 VkInstance instance,
170 const char* pName) {
171 StartReadObject(instance);
172 }
173
PostCallRecordGetInstanceProcAddr(VkInstance instance,const char * pName)174 void ThreadSafety::PostCallRecordGetInstanceProcAddr(
175 VkInstance instance,
176 const char* pName) {
177 FinishReadObject(instance);
178 }
179
PreCallRecordGetDeviceProcAddr(VkDevice device,const char * pName)180 void ThreadSafety::PreCallRecordGetDeviceProcAddr(
181 VkDevice device,
182 const char* pName) {
183 StartReadObject(device);
184 }
185
PostCallRecordGetDeviceProcAddr(VkDevice device,const char * pName)186 void ThreadSafety::PostCallRecordGetDeviceProcAddr(
187 VkDevice device,
188 const char* pName) {
189 FinishReadObject(device);
190 }
191
PreCallRecordDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator)192 void ThreadSafety::PreCallRecordDestroyDevice(
193 VkDevice device,
194 const VkAllocationCallbacks* pAllocator) {
195 StartWriteObject(device);
196 // Host access to device must be externally synchronized
197 }
198
PostCallRecordDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator)199 void ThreadSafety::PostCallRecordDestroyDevice(
200 VkDevice device,
201 const VkAllocationCallbacks* pAllocator) {
202 FinishWriteObject(device);
203 // Host access to device must be externally synchronized
204 }
205
PreCallRecordGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue)206 void ThreadSafety::PreCallRecordGetDeviceQueue(
207 VkDevice device,
208 uint32_t queueFamilyIndex,
209 uint32_t queueIndex,
210 VkQueue* pQueue) {
211 StartReadObject(device);
212 }
213
PostCallRecordGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue)214 void ThreadSafety::PostCallRecordGetDeviceQueue(
215 VkDevice device,
216 uint32_t queueFamilyIndex,
217 uint32_t queueIndex,
218 VkQueue* pQueue) {
219 FinishReadObject(device);
220 }
221
PreCallRecordQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)222 void ThreadSafety::PreCallRecordQueueSubmit(
223 VkQueue queue,
224 uint32_t submitCount,
225 const VkSubmitInfo* pSubmits,
226 VkFence fence) {
227 StartWriteObject(queue);
228 StartWriteObject(fence);
229 // Host access to queue must be externally synchronized
230 // Host access to fence must be externally synchronized
231 }
232
PostCallRecordQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence,VkResult result)233 void ThreadSafety::PostCallRecordQueueSubmit(
234 VkQueue queue,
235 uint32_t submitCount,
236 const VkSubmitInfo* pSubmits,
237 VkFence fence,
238 VkResult result) {
239 FinishWriteObject(queue);
240 FinishWriteObject(fence);
241 // Host access to queue must be externally synchronized
242 // Host access to fence must be externally synchronized
243 }
244
PreCallRecordQueueWaitIdle(VkQueue queue)245 void ThreadSafety::PreCallRecordQueueWaitIdle(
246 VkQueue queue) {
247 StartWriteObject(queue);
248 // Host access to queue must be externally synchronized
249 }
250
PostCallRecordQueueWaitIdle(VkQueue queue,VkResult result)251 void ThreadSafety::PostCallRecordQueueWaitIdle(
252 VkQueue queue,
253 VkResult result) {
254 FinishWriteObject(queue);
255 // Host access to queue must be externally synchronized
256 }
257
PreCallRecordDeviceWaitIdle(VkDevice device)258 void ThreadSafety::PreCallRecordDeviceWaitIdle(
259 VkDevice device) {
260 StartReadObject(device);
261 // all sname:VkQueue objects created from pname:device must be externally synchronized between host accesses
262 }
263
PostCallRecordDeviceWaitIdle(VkDevice device,VkResult result)264 void ThreadSafety::PostCallRecordDeviceWaitIdle(
265 VkDevice device,
266 VkResult result) {
267 FinishReadObject(device);
268 // all sname:VkQueue objects created from pname:device must be externally synchronized between host accesses
269 }
270
PreCallRecordAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory)271 void ThreadSafety::PreCallRecordAllocateMemory(
272 VkDevice device,
273 const VkMemoryAllocateInfo* pAllocateInfo,
274 const VkAllocationCallbacks* pAllocator,
275 VkDeviceMemory* pMemory) {
276 StartReadObject(device);
277 }
278
PostCallRecordAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory,VkResult result)279 void ThreadSafety::PostCallRecordAllocateMemory(
280 VkDevice device,
281 const VkMemoryAllocateInfo* pAllocateInfo,
282 const VkAllocationCallbacks* pAllocator,
283 VkDeviceMemory* pMemory,
284 VkResult result) {
285 FinishReadObject(device);
286 }
287
PreCallRecordFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)288 void ThreadSafety::PreCallRecordFreeMemory(
289 VkDevice device,
290 VkDeviceMemory memory,
291 const VkAllocationCallbacks* pAllocator) {
292 StartReadObject(device);
293 StartWriteObject(memory);
294 // Host access to memory must be externally synchronized
295 }
296
PostCallRecordFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)297 void ThreadSafety::PostCallRecordFreeMemory(
298 VkDevice device,
299 VkDeviceMemory memory,
300 const VkAllocationCallbacks* pAllocator) {
301 FinishReadObject(device);
302 FinishWriteObject(memory);
303 // Host access to memory must be externally synchronized
304 }
305
PreCallRecordMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData)306 void ThreadSafety::PreCallRecordMapMemory(
307 VkDevice device,
308 VkDeviceMemory memory,
309 VkDeviceSize offset,
310 VkDeviceSize size,
311 VkMemoryMapFlags flags,
312 void** ppData) {
313 StartReadObject(device);
314 StartWriteObject(memory);
315 // Host access to memory must be externally synchronized
316 }
317
PostCallRecordMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData,VkResult result)318 void ThreadSafety::PostCallRecordMapMemory(
319 VkDevice device,
320 VkDeviceMemory memory,
321 VkDeviceSize offset,
322 VkDeviceSize size,
323 VkMemoryMapFlags flags,
324 void** ppData,
325 VkResult result) {
326 FinishReadObject(device);
327 FinishWriteObject(memory);
328 // Host access to memory must be externally synchronized
329 }
330
PreCallRecordUnmapMemory(VkDevice device,VkDeviceMemory memory)331 void ThreadSafety::PreCallRecordUnmapMemory(
332 VkDevice device,
333 VkDeviceMemory memory) {
334 StartReadObject(device);
335 StartWriteObject(memory);
336 // Host access to memory must be externally synchronized
337 }
338
PostCallRecordUnmapMemory(VkDevice device,VkDeviceMemory memory)339 void ThreadSafety::PostCallRecordUnmapMemory(
340 VkDevice device,
341 VkDeviceMemory memory) {
342 FinishReadObject(device);
343 FinishWriteObject(memory);
344 // Host access to memory must be externally synchronized
345 }
346
PreCallRecordFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)347 void ThreadSafety::PreCallRecordFlushMappedMemoryRanges(
348 VkDevice device,
349 uint32_t memoryRangeCount,
350 const VkMappedMemoryRange* pMemoryRanges) {
351 StartReadObject(device);
352 }
353
PostCallRecordFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges,VkResult result)354 void ThreadSafety::PostCallRecordFlushMappedMemoryRanges(
355 VkDevice device,
356 uint32_t memoryRangeCount,
357 const VkMappedMemoryRange* pMemoryRanges,
358 VkResult result) {
359 FinishReadObject(device);
360 }
361
PreCallRecordInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)362 void ThreadSafety::PreCallRecordInvalidateMappedMemoryRanges(
363 VkDevice device,
364 uint32_t memoryRangeCount,
365 const VkMappedMemoryRange* pMemoryRanges) {
366 StartReadObject(device);
367 }
368
PostCallRecordInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges,VkResult result)369 void ThreadSafety::PostCallRecordInvalidateMappedMemoryRanges(
370 VkDevice device,
371 uint32_t memoryRangeCount,
372 const VkMappedMemoryRange* pMemoryRanges,
373 VkResult result) {
374 FinishReadObject(device);
375 }
376
PreCallRecordGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)377 void ThreadSafety::PreCallRecordGetDeviceMemoryCommitment(
378 VkDevice device,
379 VkDeviceMemory memory,
380 VkDeviceSize* pCommittedMemoryInBytes) {
381 StartReadObject(device);
382 StartReadObject(memory);
383 }
384
PostCallRecordGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)385 void ThreadSafety::PostCallRecordGetDeviceMemoryCommitment(
386 VkDevice device,
387 VkDeviceMemory memory,
388 VkDeviceSize* pCommittedMemoryInBytes) {
389 FinishReadObject(device);
390 FinishReadObject(memory);
391 }
392
PreCallRecordBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)393 void ThreadSafety::PreCallRecordBindBufferMemory(
394 VkDevice device,
395 VkBuffer buffer,
396 VkDeviceMemory memory,
397 VkDeviceSize memoryOffset) {
398 StartReadObject(device);
399 StartWriteObject(buffer);
400 StartReadObject(memory);
401 // Host access to buffer must be externally synchronized
402 }
403
PostCallRecordBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset,VkResult result)404 void ThreadSafety::PostCallRecordBindBufferMemory(
405 VkDevice device,
406 VkBuffer buffer,
407 VkDeviceMemory memory,
408 VkDeviceSize memoryOffset,
409 VkResult result) {
410 FinishReadObject(device);
411 FinishWriteObject(buffer);
412 FinishReadObject(memory);
413 // Host access to buffer must be externally synchronized
414 }
415
PreCallRecordBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset)416 void ThreadSafety::PreCallRecordBindImageMemory(
417 VkDevice device,
418 VkImage image,
419 VkDeviceMemory memory,
420 VkDeviceSize memoryOffset) {
421 StartReadObject(device);
422 StartWriteObject(image);
423 StartReadObject(memory);
424 // Host access to image must be externally synchronized
425 }
426
PostCallRecordBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset,VkResult result)427 void ThreadSafety::PostCallRecordBindImageMemory(
428 VkDevice device,
429 VkImage image,
430 VkDeviceMemory memory,
431 VkDeviceSize memoryOffset,
432 VkResult result) {
433 FinishReadObject(device);
434 FinishWriteObject(image);
435 FinishReadObject(memory);
436 // Host access to image must be externally synchronized
437 }
438
PreCallRecordGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)439 void ThreadSafety::PreCallRecordGetBufferMemoryRequirements(
440 VkDevice device,
441 VkBuffer buffer,
442 VkMemoryRequirements* pMemoryRequirements) {
443 StartReadObject(device);
444 StartReadObject(buffer);
445 }
446
PostCallRecordGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)447 void ThreadSafety::PostCallRecordGetBufferMemoryRequirements(
448 VkDevice device,
449 VkBuffer buffer,
450 VkMemoryRequirements* pMemoryRequirements) {
451 FinishReadObject(device);
452 FinishReadObject(buffer);
453 }
454
PreCallRecordGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements)455 void ThreadSafety::PreCallRecordGetImageMemoryRequirements(
456 VkDevice device,
457 VkImage image,
458 VkMemoryRequirements* pMemoryRequirements) {
459 StartReadObject(device);
460 StartReadObject(image);
461 }
462
PostCallRecordGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements)463 void ThreadSafety::PostCallRecordGetImageMemoryRequirements(
464 VkDevice device,
465 VkImage image,
466 VkMemoryRequirements* pMemoryRequirements) {
467 FinishReadObject(device);
468 FinishReadObject(image);
469 }
470
PreCallRecordGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)471 void ThreadSafety::PreCallRecordGetImageSparseMemoryRequirements(
472 VkDevice device,
473 VkImage image,
474 uint32_t* pSparseMemoryRequirementCount,
475 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
476 StartReadObject(device);
477 StartReadObject(image);
478 }
479
PostCallRecordGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)480 void ThreadSafety::PostCallRecordGetImageSparseMemoryRequirements(
481 VkDevice device,
482 VkImage image,
483 uint32_t* pSparseMemoryRequirementCount,
484 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
485 FinishReadObject(device);
486 FinishReadObject(image);
487 }
488
PreCallRecordQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)489 void ThreadSafety::PreCallRecordQueueBindSparse(
490 VkQueue queue,
491 uint32_t bindInfoCount,
492 const VkBindSparseInfo* pBindInfo,
493 VkFence fence) {
494 StartWriteObject(queue);
495 if (pBindInfo) {
496 for (uint32_t index=0; index < bindInfoCount; index++) {
497 if (pBindInfo[index].pBufferBinds) {
498 for (uint32_t index2=0; index2 < pBindInfo[index].bufferBindCount; index2++) {
499 StartWriteObject(pBindInfo[index].pBufferBinds[index2].buffer);
500 }
501 }
502 if (pBindInfo[index].pImageOpaqueBinds) {
503 for (uint32_t index2=0; index2 < pBindInfo[index].imageOpaqueBindCount; index2++) {
504 StartWriteObject(pBindInfo[index].pImageOpaqueBinds[index2].image);
505 }
506 }
507 if (pBindInfo[index].pImageBinds) {
508 for (uint32_t index2=0; index2 < pBindInfo[index].imageBindCount; index2++) {
509 StartWriteObject(pBindInfo[index].pImageBinds[index2].image);
510 }
511 }
512 }
513 }
514 StartWriteObject(fence);
515 // Host access to queue must be externally synchronized
516 // Host access to pBindInfo[].pBufferBinds[].buffer,pBindInfo[].pImageOpaqueBinds[].image,pBindInfo[].pImageBinds[].image must be externally synchronized
517 // Host access to fence must be externally synchronized
518 }
519
PostCallRecordQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence,VkResult result)520 void ThreadSafety::PostCallRecordQueueBindSparse(
521 VkQueue queue,
522 uint32_t bindInfoCount,
523 const VkBindSparseInfo* pBindInfo,
524 VkFence fence,
525 VkResult result) {
526 FinishWriteObject(queue);
527 if (pBindInfo) {
528 for (uint32_t index=0; index < bindInfoCount; index++) {
529 if (pBindInfo[index].pBufferBinds) {
530 for (uint32_t index2=0; index2 < pBindInfo[index].bufferBindCount; index2++) {
531 FinishWriteObject(pBindInfo[index].pBufferBinds[index2].buffer);
532 }
533 }
534 if (pBindInfo[index].pImageOpaqueBinds) {
535 for (uint32_t index2=0; index2 < pBindInfo[index].imageOpaqueBindCount; index2++) {
536 FinishWriteObject(pBindInfo[index].pImageOpaqueBinds[index2].image);
537 }
538 }
539 if (pBindInfo[index].pImageBinds) {
540 for (uint32_t index2=0; index2 < pBindInfo[index].imageBindCount; index2++) {
541 FinishWriteObject(pBindInfo[index].pImageBinds[index2].image);
542 }
543 }
544 }
545 }
546 FinishWriteObject(fence);
547 // Host access to queue must be externally synchronized
548 // Host access to pBindInfo[].pBufferBinds[].buffer,pBindInfo[].pImageOpaqueBinds[].image,pBindInfo[].pImageBinds[].image must be externally synchronized
549 // Host access to fence must be externally synchronized
550 }
551
PreCallRecordCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)552 void ThreadSafety::PreCallRecordCreateFence(
553 VkDevice device,
554 const VkFenceCreateInfo* pCreateInfo,
555 const VkAllocationCallbacks* pAllocator,
556 VkFence* pFence) {
557 StartReadObject(device);
558 }
559
PostCallRecordCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence,VkResult result)560 void ThreadSafety::PostCallRecordCreateFence(
561 VkDevice device,
562 const VkFenceCreateInfo* pCreateInfo,
563 const VkAllocationCallbacks* pAllocator,
564 VkFence* pFence,
565 VkResult result) {
566 FinishReadObject(device);
567 }
568
PreCallRecordDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)569 void ThreadSafety::PreCallRecordDestroyFence(
570 VkDevice device,
571 VkFence fence,
572 const VkAllocationCallbacks* pAllocator) {
573 StartReadObject(device);
574 StartWriteObject(fence);
575 // Host access to fence must be externally synchronized
576 }
577
PostCallRecordDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)578 void ThreadSafety::PostCallRecordDestroyFence(
579 VkDevice device,
580 VkFence fence,
581 const VkAllocationCallbacks* pAllocator) {
582 FinishReadObject(device);
583 FinishWriteObject(fence);
584 // Host access to fence must be externally synchronized
585 }
586
PreCallRecordResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences)587 void ThreadSafety::PreCallRecordResetFences(
588 VkDevice device,
589 uint32_t fenceCount,
590 const VkFence* pFences) {
591 StartReadObject(device);
592 if (pFences) {
593 for (uint32_t index=0; index < fenceCount; index++) {
594 StartWriteObject(pFences[index]);
595 }
596 }
597 // Host access to each member of pFences must be externally synchronized
598 }
599
PostCallRecordResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkResult result)600 void ThreadSafety::PostCallRecordResetFences(
601 VkDevice device,
602 uint32_t fenceCount,
603 const VkFence* pFences,
604 VkResult result) {
605 FinishReadObject(device);
606 if (pFences) {
607 for (uint32_t index=0; index < fenceCount; index++) {
608 FinishWriteObject(pFences[index]);
609 }
610 }
611 // Host access to each member of pFences must be externally synchronized
612 }
613
PreCallRecordGetFenceStatus(VkDevice device,VkFence fence)614 void ThreadSafety::PreCallRecordGetFenceStatus(
615 VkDevice device,
616 VkFence fence) {
617 StartReadObject(device);
618 StartReadObject(fence);
619 }
620
PostCallRecordGetFenceStatus(VkDevice device,VkFence fence,VkResult result)621 void ThreadSafety::PostCallRecordGetFenceStatus(
622 VkDevice device,
623 VkFence fence,
624 VkResult result) {
625 FinishReadObject(device);
626 FinishReadObject(fence);
627 }
628
PreCallRecordWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout)629 void ThreadSafety::PreCallRecordWaitForFences(
630 VkDevice device,
631 uint32_t fenceCount,
632 const VkFence* pFences,
633 VkBool32 waitAll,
634 uint64_t timeout) {
635 StartReadObject(device);
636 if (pFences) {
637 for (uint32_t index = 0; index < fenceCount; index++) {
638 StartReadObject(pFences[index]);
639 }
640 }
641 }
642
PostCallRecordWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout,VkResult result)643 void ThreadSafety::PostCallRecordWaitForFences(
644 VkDevice device,
645 uint32_t fenceCount,
646 const VkFence* pFences,
647 VkBool32 waitAll,
648 uint64_t timeout,
649 VkResult result) {
650 FinishReadObject(device);
651 if (pFences) {
652 for (uint32_t index = 0; index < fenceCount; index++) {
653 FinishReadObject(pFences[index]);
654 }
655 }
656 }
657
PreCallRecordCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)658 void ThreadSafety::PreCallRecordCreateSemaphore(
659 VkDevice device,
660 const VkSemaphoreCreateInfo* pCreateInfo,
661 const VkAllocationCallbacks* pAllocator,
662 VkSemaphore* pSemaphore) {
663 StartReadObject(device);
664 }
665
PostCallRecordCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore,VkResult result)666 void ThreadSafety::PostCallRecordCreateSemaphore(
667 VkDevice device,
668 const VkSemaphoreCreateInfo* pCreateInfo,
669 const VkAllocationCallbacks* pAllocator,
670 VkSemaphore* pSemaphore,
671 VkResult result) {
672 FinishReadObject(device);
673 }
674
PreCallRecordDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)675 void ThreadSafety::PreCallRecordDestroySemaphore(
676 VkDevice device,
677 VkSemaphore semaphore,
678 const VkAllocationCallbacks* pAllocator) {
679 StartReadObject(device);
680 StartWriteObject(semaphore);
681 // Host access to semaphore must be externally synchronized
682 }
683
PostCallRecordDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)684 void ThreadSafety::PostCallRecordDestroySemaphore(
685 VkDevice device,
686 VkSemaphore semaphore,
687 const VkAllocationCallbacks* pAllocator) {
688 FinishReadObject(device);
689 FinishWriteObject(semaphore);
690 // Host access to semaphore must be externally synchronized
691 }
692
PreCallRecordCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent)693 void ThreadSafety::PreCallRecordCreateEvent(
694 VkDevice device,
695 const VkEventCreateInfo* pCreateInfo,
696 const VkAllocationCallbacks* pAllocator,
697 VkEvent* pEvent) {
698 StartReadObject(device);
699 }
700
PostCallRecordCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent,VkResult result)701 void ThreadSafety::PostCallRecordCreateEvent(
702 VkDevice device,
703 const VkEventCreateInfo* pCreateInfo,
704 const VkAllocationCallbacks* pAllocator,
705 VkEvent* pEvent,
706 VkResult result) {
707 FinishReadObject(device);
708 }
709
PreCallRecordDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)710 void ThreadSafety::PreCallRecordDestroyEvent(
711 VkDevice device,
712 VkEvent event,
713 const VkAllocationCallbacks* pAllocator) {
714 StartReadObject(device);
715 StartWriteObject(event);
716 // Host access to event must be externally synchronized
717 }
718
PostCallRecordDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)719 void ThreadSafety::PostCallRecordDestroyEvent(
720 VkDevice device,
721 VkEvent event,
722 const VkAllocationCallbacks* pAllocator) {
723 FinishReadObject(device);
724 FinishWriteObject(event);
725 // Host access to event must be externally synchronized
726 }
727
PreCallRecordGetEventStatus(VkDevice device,VkEvent event)728 void ThreadSafety::PreCallRecordGetEventStatus(
729 VkDevice device,
730 VkEvent event) {
731 StartReadObject(device);
732 StartReadObject(event);
733 }
734
PostCallRecordGetEventStatus(VkDevice device,VkEvent event,VkResult result)735 void ThreadSafety::PostCallRecordGetEventStatus(
736 VkDevice device,
737 VkEvent event,
738 VkResult result) {
739 FinishReadObject(device);
740 FinishReadObject(event);
741 }
742
PreCallRecordSetEvent(VkDevice device,VkEvent event)743 void ThreadSafety::PreCallRecordSetEvent(
744 VkDevice device,
745 VkEvent event) {
746 StartReadObject(device);
747 StartWriteObject(event);
748 // Host access to event must be externally synchronized
749 }
750
PostCallRecordSetEvent(VkDevice device,VkEvent event,VkResult result)751 void ThreadSafety::PostCallRecordSetEvent(
752 VkDevice device,
753 VkEvent event,
754 VkResult result) {
755 FinishReadObject(device);
756 FinishWriteObject(event);
757 // Host access to event must be externally synchronized
758 }
759
PreCallRecordResetEvent(VkDevice device,VkEvent event)760 void ThreadSafety::PreCallRecordResetEvent(
761 VkDevice device,
762 VkEvent event) {
763 StartReadObject(device);
764 StartWriteObject(event);
765 // Host access to event must be externally synchronized
766 }
767
PostCallRecordResetEvent(VkDevice device,VkEvent event,VkResult result)768 void ThreadSafety::PostCallRecordResetEvent(
769 VkDevice device,
770 VkEvent event,
771 VkResult result) {
772 FinishReadObject(device);
773 FinishWriteObject(event);
774 // Host access to event must be externally synchronized
775 }
776
PreCallRecordCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool)777 void ThreadSafety::PreCallRecordCreateQueryPool(
778 VkDevice device,
779 const VkQueryPoolCreateInfo* pCreateInfo,
780 const VkAllocationCallbacks* pAllocator,
781 VkQueryPool* pQueryPool) {
782 StartReadObject(device);
783 }
784
PostCallRecordCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool,VkResult result)785 void ThreadSafety::PostCallRecordCreateQueryPool(
786 VkDevice device,
787 const VkQueryPoolCreateInfo* pCreateInfo,
788 const VkAllocationCallbacks* pAllocator,
789 VkQueryPool* pQueryPool,
790 VkResult result) {
791 FinishReadObject(device);
792 }
793
PreCallRecordDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)794 void ThreadSafety::PreCallRecordDestroyQueryPool(
795 VkDevice device,
796 VkQueryPool queryPool,
797 const VkAllocationCallbacks* pAllocator) {
798 StartReadObject(device);
799 StartWriteObject(queryPool);
800 // Host access to queryPool must be externally synchronized
801 }
802
PostCallRecordDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)803 void ThreadSafety::PostCallRecordDestroyQueryPool(
804 VkDevice device,
805 VkQueryPool queryPool,
806 const VkAllocationCallbacks* pAllocator) {
807 FinishReadObject(device);
808 FinishWriteObject(queryPool);
809 // Host access to queryPool must be externally synchronized
810 }
811
PreCallRecordGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags)812 void ThreadSafety::PreCallRecordGetQueryPoolResults(
813 VkDevice device,
814 VkQueryPool queryPool,
815 uint32_t firstQuery,
816 uint32_t queryCount,
817 size_t dataSize,
818 void* pData,
819 VkDeviceSize stride,
820 VkQueryResultFlags flags) {
821 StartReadObject(device);
822 StartReadObject(queryPool);
823 }
824
PostCallRecordGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags,VkResult result)825 void ThreadSafety::PostCallRecordGetQueryPoolResults(
826 VkDevice device,
827 VkQueryPool queryPool,
828 uint32_t firstQuery,
829 uint32_t queryCount,
830 size_t dataSize,
831 void* pData,
832 VkDeviceSize stride,
833 VkQueryResultFlags flags,
834 VkResult result) {
835 FinishReadObject(device);
836 FinishReadObject(queryPool);
837 }
838
PreCallRecordCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)839 void ThreadSafety::PreCallRecordCreateBuffer(
840 VkDevice device,
841 const VkBufferCreateInfo* pCreateInfo,
842 const VkAllocationCallbacks* pAllocator,
843 VkBuffer* pBuffer) {
844 StartReadObject(device);
845 }
846
PostCallRecordCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer,VkResult result)847 void ThreadSafety::PostCallRecordCreateBuffer(
848 VkDevice device,
849 const VkBufferCreateInfo* pCreateInfo,
850 const VkAllocationCallbacks* pAllocator,
851 VkBuffer* pBuffer,
852 VkResult result) {
853 FinishReadObject(device);
854 }
855
PreCallRecordDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)856 void ThreadSafety::PreCallRecordDestroyBuffer(
857 VkDevice device,
858 VkBuffer buffer,
859 const VkAllocationCallbacks* pAllocator) {
860 StartReadObject(device);
861 StartWriteObject(buffer);
862 // Host access to buffer must be externally synchronized
863 }
864
PostCallRecordDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)865 void ThreadSafety::PostCallRecordDestroyBuffer(
866 VkDevice device,
867 VkBuffer buffer,
868 const VkAllocationCallbacks* pAllocator) {
869 FinishReadObject(device);
870 FinishWriteObject(buffer);
871 // Host access to buffer must be externally synchronized
872 }
873
PreCallRecordCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)874 void ThreadSafety::PreCallRecordCreateBufferView(
875 VkDevice device,
876 const VkBufferViewCreateInfo* pCreateInfo,
877 const VkAllocationCallbacks* pAllocator,
878 VkBufferView* pView) {
879 StartReadObject(device);
880 }
881
PostCallRecordCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView,VkResult result)882 void ThreadSafety::PostCallRecordCreateBufferView(
883 VkDevice device,
884 const VkBufferViewCreateInfo* pCreateInfo,
885 const VkAllocationCallbacks* pAllocator,
886 VkBufferView* pView,
887 VkResult result) {
888 FinishReadObject(device);
889 }
890
PreCallRecordDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)891 void ThreadSafety::PreCallRecordDestroyBufferView(
892 VkDevice device,
893 VkBufferView bufferView,
894 const VkAllocationCallbacks* pAllocator) {
895 StartReadObject(device);
896 StartWriteObject(bufferView);
897 // Host access to bufferView must be externally synchronized
898 }
899
PostCallRecordDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)900 void ThreadSafety::PostCallRecordDestroyBufferView(
901 VkDevice device,
902 VkBufferView bufferView,
903 const VkAllocationCallbacks* pAllocator) {
904 FinishReadObject(device);
905 FinishWriteObject(bufferView);
906 // Host access to bufferView must be externally synchronized
907 }
908
PreCallRecordCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage)909 void ThreadSafety::PreCallRecordCreateImage(
910 VkDevice device,
911 const VkImageCreateInfo* pCreateInfo,
912 const VkAllocationCallbacks* pAllocator,
913 VkImage* pImage) {
914 StartReadObject(device);
915 }
916
PostCallRecordCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage,VkResult result)917 void ThreadSafety::PostCallRecordCreateImage(
918 VkDevice device,
919 const VkImageCreateInfo* pCreateInfo,
920 const VkAllocationCallbacks* pAllocator,
921 VkImage* pImage,
922 VkResult result) {
923 FinishReadObject(device);
924 }
925
PreCallRecordDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)926 void ThreadSafety::PreCallRecordDestroyImage(
927 VkDevice device,
928 VkImage image,
929 const VkAllocationCallbacks* pAllocator) {
930 StartReadObject(device);
931 StartWriteObject(image);
932 // Host access to image must be externally synchronized
933 }
934
PostCallRecordDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)935 void ThreadSafety::PostCallRecordDestroyImage(
936 VkDevice device,
937 VkImage image,
938 const VkAllocationCallbacks* pAllocator) {
939 FinishReadObject(device);
940 FinishWriteObject(image);
941 // Host access to image must be externally synchronized
942 }
943
PreCallRecordGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)944 void ThreadSafety::PreCallRecordGetImageSubresourceLayout(
945 VkDevice device,
946 VkImage image,
947 const VkImageSubresource* pSubresource,
948 VkSubresourceLayout* pLayout) {
949 StartReadObject(device);
950 StartReadObject(image);
951 }
952
PostCallRecordGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)953 void ThreadSafety::PostCallRecordGetImageSubresourceLayout(
954 VkDevice device,
955 VkImage image,
956 const VkImageSubresource* pSubresource,
957 VkSubresourceLayout* pLayout) {
958 FinishReadObject(device);
959 FinishReadObject(image);
960 }
961
PreCallRecordCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView)962 void ThreadSafety::PreCallRecordCreateImageView(
963 VkDevice device,
964 const VkImageViewCreateInfo* pCreateInfo,
965 const VkAllocationCallbacks* pAllocator,
966 VkImageView* pView) {
967 StartReadObject(device);
968 }
969
PostCallRecordCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView,VkResult result)970 void ThreadSafety::PostCallRecordCreateImageView(
971 VkDevice device,
972 const VkImageViewCreateInfo* pCreateInfo,
973 const VkAllocationCallbacks* pAllocator,
974 VkImageView* pView,
975 VkResult result) {
976 FinishReadObject(device);
977 }
978
PreCallRecordDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)979 void ThreadSafety::PreCallRecordDestroyImageView(
980 VkDevice device,
981 VkImageView imageView,
982 const VkAllocationCallbacks* pAllocator) {
983 StartReadObject(device);
984 StartWriteObject(imageView);
985 // Host access to imageView must be externally synchronized
986 }
987
PostCallRecordDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)988 void ThreadSafety::PostCallRecordDestroyImageView(
989 VkDevice device,
990 VkImageView imageView,
991 const VkAllocationCallbacks* pAllocator) {
992 FinishReadObject(device);
993 FinishWriteObject(imageView);
994 // Host access to imageView must be externally synchronized
995 }
996
PreCallRecordCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)997 void ThreadSafety::PreCallRecordCreateShaderModule(
998 VkDevice device,
999 const VkShaderModuleCreateInfo* pCreateInfo,
1000 const VkAllocationCallbacks* pAllocator,
1001 VkShaderModule* pShaderModule) {
1002 StartReadObject(device);
1003 }
1004
PostCallRecordCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule,VkResult result)1005 void ThreadSafety::PostCallRecordCreateShaderModule(
1006 VkDevice device,
1007 const VkShaderModuleCreateInfo* pCreateInfo,
1008 const VkAllocationCallbacks* pAllocator,
1009 VkShaderModule* pShaderModule,
1010 VkResult result) {
1011 FinishReadObject(device);
1012 }
1013
PreCallRecordDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)1014 void ThreadSafety::PreCallRecordDestroyShaderModule(
1015 VkDevice device,
1016 VkShaderModule shaderModule,
1017 const VkAllocationCallbacks* pAllocator) {
1018 StartReadObject(device);
1019 StartWriteObject(shaderModule);
1020 // Host access to shaderModule must be externally synchronized
1021 }
1022
PostCallRecordDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)1023 void ThreadSafety::PostCallRecordDestroyShaderModule(
1024 VkDevice device,
1025 VkShaderModule shaderModule,
1026 const VkAllocationCallbacks* pAllocator) {
1027 FinishReadObject(device);
1028 FinishWriteObject(shaderModule);
1029 // Host access to shaderModule must be externally synchronized
1030 }
1031
PreCallRecordCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache)1032 void ThreadSafety::PreCallRecordCreatePipelineCache(
1033 VkDevice device,
1034 const VkPipelineCacheCreateInfo* pCreateInfo,
1035 const VkAllocationCallbacks* pAllocator,
1036 VkPipelineCache* pPipelineCache) {
1037 StartReadObject(device);
1038 }
1039
PostCallRecordCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache,VkResult result)1040 void ThreadSafety::PostCallRecordCreatePipelineCache(
1041 VkDevice device,
1042 const VkPipelineCacheCreateInfo* pCreateInfo,
1043 const VkAllocationCallbacks* pAllocator,
1044 VkPipelineCache* pPipelineCache,
1045 VkResult result) {
1046 FinishReadObject(device);
1047 }
1048
PreCallRecordDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)1049 void ThreadSafety::PreCallRecordDestroyPipelineCache(
1050 VkDevice device,
1051 VkPipelineCache pipelineCache,
1052 const VkAllocationCallbacks* pAllocator) {
1053 StartReadObject(device);
1054 StartWriteObject(pipelineCache);
1055 // Host access to pipelineCache must be externally synchronized
1056 }
1057
PostCallRecordDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)1058 void ThreadSafety::PostCallRecordDestroyPipelineCache(
1059 VkDevice device,
1060 VkPipelineCache pipelineCache,
1061 const VkAllocationCallbacks* pAllocator) {
1062 FinishReadObject(device);
1063 FinishWriteObject(pipelineCache);
1064 // Host access to pipelineCache must be externally synchronized
1065 }
1066
PreCallRecordGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData)1067 void ThreadSafety::PreCallRecordGetPipelineCacheData(
1068 VkDevice device,
1069 VkPipelineCache pipelineCache,
1070 size_t* pDataSize,
1071 void* pData) {
1072 StartReadObject(device);
1073 StartReadObject(pipelineCache);
1074 }
1075
PostCallRecordGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData,VkResult result)1076 void ThreadSafety::PostCallRecordGetPipelineCacheData(
1077 VkDevice device,
1078 VkPipelineCache pipelineCache,
1079 size_t* pDataSize,
1080 void* pData,
1081 VkResult result) {
1082 FinishReadObject(device);
1083 FinishReadObject(pipelineCache);
1084 }
1085
PreCallRecordMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches)1086 void ThreadSafety::PreCallRecordMergePipelineCaches(
1087 VkDevice device,
1088 VkPipelineCache dstCache,
1089 uint32_t srcCacheCount,
1090 const VkPipelineCache* pSrcCaches) {
1091 StartReadObject(device);
1092 StartWriteObject(dstCache);
1093 if (pSrcCaches) {
1094 for (uint32_t index = 0; index < srcCacheCount; index++) {
1095 StartReadObject(pSrcCaches[index]);
1096 }
1097 }
1098 // Host access to dstCache must be externally synchronized
1099 }
1100
PostCallRecordMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches,VkResult result)1101 void ThreadSafety::PostCallRecordMergePipelineCaches(
1102 VkDevice device,
1103 VkPipelineCache dstCache,
1104 uint32_t srcCacheCount,
1105 const VkPipelineCache* pSrcCaches,
1106 VkResult result) {
1107 FinishReadObject(device);
1108 FinishWriteObject(dstCache);
1109 if (pSrcCaches) {
1110 for (uint32_t index = 0; index < srcCacheCount; index++) {
1111 FinishReadObject(pSrcCaches[index]);
1112 }
1113 }
1114 // Host access to dstCache must be externally synchronized
1115 }
1116
PreCallRecordCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)1117 void ThreadSafety::PreCallRecordCreateGraphicsPipelines(
1118 VkDevice device,
1119 VkPipelineCache pipelineCache,
1120 uint32_t createInfoCount,
1121 const VkGraphicsPipelineCreateInfo* pCreateInfos,
1122 const VkAllocationCallbacks* pAllocator,
1123 VkPipeline* pPipelines) {
1124 StartReadObject(device);
1125 StartReadObject(pipelineCache);
1126 }
1127
PostCallRecordCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines,VkResult result)1128 void ThreadSafety::PostCallRecordCreateGraphicsPipelines(
1129 VkDevice device,
1130 VkPipelineCache pipelineCache,
1131 uint32_t createInfoCount,
1132 const VkGraphicsPipelineCreateInfo* pCreateInfos,
1133 const VkAllocationCallbacks* pAllocator,
1134 VkPipeline* pPipelines,
1135 VkResult result) {
1136 FinishReadObject(device);
1137 FinishReadObject(pipelineCache);
1138 }
1139
PreCallRecordCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)1140 void ThreadSafety::PreCallRecordCreateComputePipelines(
1141 VkDevice device,
1142 VkPipelineCache pipelineCache,
1143 uint32_t createInfoCount,
1144 const VkComputePipelineCreateInfo* pCreateInfos,
1145 const VkAllocationCallbacks* pAllocator,
1146 VkPipeline* pPipelines) {
1147 StartReadObject(device);
1148 StartReadObject(pipelineCache);
1149 }
1150
PostCallRecordCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines,VkResult result)1151 void ThreadSafety::PostCallRecordCreateComputePipelines(
1152 VkDevice device,
1153 VkPipelineCache pipelineCache,
1154 uint32_t createInfoCount,
1155 const VkComputePipelineCreateInfo* pCreateInfos,
1156 const VkAllocationCallbacks* pAllocator,
1157 VkPipeline* pPipelines,
1158 VkResult result) {
1159 FinishReadObject(device);
1160 FinishReadObject(pipelineCache);
1161 }
1162
PreCallRecordDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)1163 void ThreadSafety::PreCallRecordDestroyPipeline(
1164 VkDevice device,
1165 VkPipeline pipeline,
1166 const VkAllocationCallbacks* pAllocator) {
1167 StartReadObject(device);
1168 StartWriteObject(pipeline);
1169 // Host access to pipeline must be externally synchronized
1170 }
1171
PostCallRecordDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)1172 void ThreadSafety::PostCallRecordDestroyPipeline(
1173 VkDevice device,
1174 VkPipeline pipeline,
1175 const VkAllocationCallbacks* pAllocator) {
1176 FinishReadObject(device);
1177 FinishWriteObject(pipeline);
1178 // Host access to pipeline must be externally synchronized
1179 }
1180
PreCallRecordCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout)1181 void ThreadSafety::PreCallRecordCreatePipelineLayout(
1182 VkDevice device,
1183 const VkPipelineLayoutCreateInfo* pCreateInfo,
1184 const VkAllocationCallbacks* pAllocator,
1185 VkPipelineLayout* pPipelineLayout) {
1186 StartReadObject(device);
1187 }
1188
PostCallRecordCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout,VkResult result)1189 void ThreadSafety::PostCallRecordCreatePipelineLayout(
1190 VkDevice device,
1191 const VkPipelineLayoutCreateInfo* pCreateInfo,
1192 const VkAllocationCallbacks* pAllocator,
1193 VkPipelineLayout* pPipelineLayout,
1194 VkResult result) {
1195 FinishReadObject(device);
1196 }
1197
PreCallRecordDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)1198 void ThreadSafety::PreCallRecordDestroyPipelineLayout(
1199 VkDevice device,
1200 VkPipelineLayout pipelineLayout,
1201 const VkAllocationCallbacks* pAllocator) {
1202 StartReadObject(device);
1203 StartWriteObject(pipelineLayout);
1204 // Host access to pipelineLayout must be externally synchronized
1205 }
1206
PostCallRecordDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)1207 void ThreadSafety::PostCallRecordDestroyPipelineLayout(
1208 VkDevice device,
1209 VkPipelineLayout pipelineLayout,
1210 const VkAllocationCallbacks* pAllocator) {
1211 FinishReadObject(device);
1212 FinishWriteObject(pipelineLayout);
1213 // Host access to pipelineLayout must be externally synchronized
1214 }
1215
PreCallRecordCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler)1216 void ThreadSafety::PreCallRecordCreateSampler(
1217 VkDevice device,
1218 const VkSamplerCreateInfo* pCreateInfo,
1219 const VkAllocationCallbacks* pAllocator,
1220 VkSampler* pSampler) {
1221 StartReadObject(device);
1222 }
1223
PostCallRecordCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler,VkResult result)1224 void ThreadSafety::PostCallRecordCreateSampler(
1225 VkDevice device,
1226 const VkSamplerCreateInfo* pCreateInfo,
1227 const VkAllocationCallbacks* pAllocator,
1228 VkSampler* pSampler,
1229 VkResult result) {
1230 FinishReadObject(device);
1231 }
1232
PreCallRecordDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)1233 void ThreadSafety::PreCallRecordDestroySampler(
1234 VkDevice device,
1235 VkSampler sampler,
1236 const VkAllocationCallbacks* pAllocator) {
1237 StartReadObject(device);
1238 StartWriteObject(sampler);
1239 // Host access to sampler must be externally synchronized
1240 }
1241
PostCallRecordDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)1242 void ThreadSafety::PostCallRecordDestroySampler(
1243 VkDevice device,
1244 VkSampler sampler,
1245 const VkAllocationCallbacks* pAllocator) {
1246 FinishReadObject(device);
1247 FinishWriteObject(sampler);
1248 // Host access to sampler must be externally synchronized
1249 }
1250
PreCallRecordCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)1251 void ThreadSafety::PreCallRecordCreateDescriptorSetLayout(
1252 VkDevice device,
1253 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1254 const VkAllocationCallbacks* pAllocator,
1255 VkDescriptorSetLayout* pSetLayout) {
1256 StartReadObject(device);
1257 }
1258
PostCallRecordCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout,VkResult result)1259 void ThreadSafety::PostCallRecordCreateDescriptorSetLayout(
1260 VkDevice device,
1261 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1262 const VkAllocationCallbacks* pAllocator,
1263 VkDescriptorSetLayout* pSetLayout,
1264 VkResult result) {
1265 FinishReadObject(device);
1266 }
1267
PreCallRecordDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)1268 void ThreadSafety::PreCallRecordDestroyDescriptorSetLayout(
1269 VkDevice device,
1270 VkDescriptorSetLayout descriptorSetLayout,
1271 const VkAllocationCallbacks* pAllocator) {
1272 StartReadObject(device);
1273 StartWriteObject(descriptorSetLayout);
1274 // Host access to descriptorSetLayout must be externally synchronized
1275 }
1276
PostCallRecordDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)1277 void ThreadSafety::PostCallRecordDestroyDescriptorSetLayout(
1278 VkDevice device,
1279 VkDescriptorSetLayout descriptorSetLayout,
1280 const VkAllocationCallbacks* pAllocator) {
1281 FinishReadObject(device);
1282 FinishWriteObject(descriptorSetLayout);
1283 // Host access to descriptorSetLayout must be externally synchronized
1284 }
1285
PreCallRecordCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)1286 void ThreadSafety::PreCallRecordCreateDescriptorPool(
1287 VkDevice device,
1288 const VkDescriptorPoolCreateInfo* pCreateInfo,
1289 const VkAllocationCallbacks* pAllocator,
1290 VkDescriptorPool* pDescriptorPool) {
1291 StartReadObject(device);
1292 }
1293
PostCallRecordCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool,VkResult result)1294 void ThreadSafety::PostCallRecordCreateDescriptorPool(
1295 VkDevice device,
1296 const VkDescriptorPoolCreateInfo* pCreateInfo,
1297 const VkAllocationCallbacks* pAllocator,
1298 VkDescriptorPool* pDescriptorPool,
1299 VkResult result) {
1300 FinishReadObject(device);
1301 }
1302
PreCallRecordDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)1303 void ThreadSafety::PreCallRecordDestroyDescriptorPool(
1304 VkDevice device,
1305 VkDescriptorPool descriptorPool,
1306 const VkAllocationCallbacks* pAllocator) {
1307 StartReadObject(device);
1308 StartWriteObject(descriptorPool);
1309 // Host access to descriptorPool must be externally synchronized
1310 }
1311
PostCallRecordDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)1312 void ThreadSafety::PostCallRecordDestroyDescriptorPool(
1313 VkDevice device,
1314 VkDescriptorPool descriptorPool,
1315 const VkAllocationCallbacks* pAllocator) {
1316 FinishReadObject(device);
1317 FinishWriteObject(descriptorPool);
1318 // Host access to descriptorPool must be externally synchronized
1319 }
1320
PreCallRecordResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)1321 void ThreadSafety::PreCallRecordResetDescriptorPool(
1322 VkDevice device,
1323 VkDescriptorPool descriptorPool,
1324 VkDescriptorPoolResetFlags flags) {
1325 StartReadObject(device);
1326 StartWriteObject(descriptorPool);
1327 // Host access to descriptorPool must be externally synchronized
1328 // any sname:VkDescriptorSet objects allocated from pname:descriptorPool must be externally synchronized between host accesses
1329 }
1330
PostCallRecordResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags,VkResult result)1331 void ThreadSafety::PostCallRecordResetDescriptorPool(
1332 VkDevice device,
1333 VkDescriptorPool descriptorPool,
1334 VkDescriptorPoolResetFlags flags,
1335 VkResult result) {
1336 FinishReadObject(device);
1337 FinishWriteObject(descriptorPool);
1338 // Host access to descriptorPool must be externally synchronized
1339 // any sname:VkDescriptorSet objects allocated from pname:descriptorPool must be externally synchronized between host accesses
1340 }
1341
PreCallRecordFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets)1342 void ThreadSafety::PreCallRecordFreeDescriptorSets(
1343 VkDevice device,
1344 VkDescriptorPool descriptorPool,
1345 uint32_t descriptorSetCount,
1346 const VkDescriptorSet* pDescriptorSets) {
1347 StartReadObject(device);
1348 StartWriteObject(descriptorPool);
1349 if (pDescriptorSets) {
1350 for (uint32_t index=0; index < descriptorSetCount; index++) {
1351 StartWriteObject(pDescriptorSets[index]);
1352 }
1353 }
1354 // Host access to descriptorPool must be externally synchronized
1355 // Host access to each member of pDescriptorSets must be externally synchronized
1356 }
1357
PostCallRecordFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,VkResult result)1358 void ThreadSafety::PostCallRecordFreeDescriptorSets(
1359 VkDevice device,
1360 VkDescriptorPool descriptorPool,
1361 uint32_t descriptorSetCount,
1362 const VkDescriptorSet* pDescriptorSets,
1363 VkResult result) {
1364 FinishReadObject(device);
1365 FinishWriteObject(descriptorPool);
1366 if (pDescriptorSets) {
1367 for (uint32_t index=0; index < descriptorSetCount; index++) {
1368 FinishWriteObject(pDescriptorSets[index]);
1369 }
1370 }
1371 // Host access to descriptorPool must be externally synchronized
1372 // Host access to each member of pDescriptorSets must be externally synchronized
1373 }
1374
PreCallRecordUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies)1375 void ThreadSafety::PreCallRecordUpdateDescriptorSets(
1376 VkDevice device,
1377 uint32_t descriptorWriteCount,
1378 const VkWriteDescriptorSet* pDescriptorWrites,
1379 uint32_t descriptorCopyCount,
1380 const VkCopyDescriptorSet* pDescriptorCopies) {
1381 StartReadObject(device);
1382 if (pDescriptorWrites) {
1383 for (uint32_t index=0; index < descriptorWriteCount; index++) {
1384 StartWriteObject(pDescriptorWrites[index].dstSet);
1385 }
1386 }
1387 if (pDescriptorCopies) {
1388 for (uint32_t index=0; index < descriptorCopyCount; index++) {
1389 StartWriteObject(pDescriptorCopies[index].dstSet);
1390 }
1391 }
1392 // Host access to pDescriptorWrites[].dstSet must be externally synchronized
1393 // Host access to pDescriptorCopies[].dstSet must be externally synchronized
1394 }
1395
PostCallRecordUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies)1396 void ThreadSafety::PostCallRecordUpdateDescriptorSets(
1397 VkDevice device,
1398 uint32_t descriptorWriteCount,
1399 const VkWriteDescriptorSet* pDescriptorWrites,
1400 uint32_t descriptorCopyCount,
1401 const VkCopyDescriptorSet* pDescriptorCopies) {
1402 FinishReadObject(device);
1403 if (pDescriptorWrites) {
1404 for (uint32_t index=0; index < descriptorWriteCount; index++) {
1405 FinishWriteObject(pDescriptorWrites[index].dstSet);
1406 }
1407 }
1408 if (pDescriptorCopies) {
1409 for (uint32_t index=0; index < descriptorCopyCount; index++) {
1410 FinishWriteObject(pDescriptorCopies[index].dstSet);
1411 }
1412 }
1413 // Host access to pDescriptorWrites[].dstSet must be externally synchronized
1414 // Host access to pDescriptorCopies[].dstSet must be externally synchronized
1415 }
1416
PreCallRecordCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer)1417 void ThreadSafety::PreCallRecordCreateFramebuffer(
1418 VkDevice device,
1419 const VkFramebufferCreateInfo* pCreateInfo,
1420 const VkAllocationCallbacks* pAllocator,
1421 VkFramebuffer* pFramebuffer) {
1422 StartReadObject(device);
1423 }
1424
PostCallRecordCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer,VkResult result)1425 void ThreadSafety::PostCallRecordCreateFramebuffer(
1426 VkDevice device,
1427 const VkFramebufferCreateInfo* pCreateInfo,
1428 const VkAllocationCallbacks* pAllocator,
1429 VkFramebuffer* pFramebuffer,
1430 VkResult result) {
1431 FinishReadObject(device);
1432 }
1433
PreCallRecordDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)1434 void ThreadSafety::PreCallRecordDestroyFramebuffer(
1435 VkDevice device,
1436 VkFramebuffer framebuffer,
1437 const VkAllocationCallbacks* pAllocator) {
1438 StartReadObject(device);
1439 StartWriteObject(framebuffer);
1440 // Host access to framebuffer must be externally synchronized
1441 }
1442
PostCallRecordDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)1443 void ThreadSafety::PostCallRecordDestroyFramebuffer(
1444 VkDevice device,
1445 VkFramebuffer framebuffer,
1446 const VkAllocationCallbacks* pAllocator) {
1447 FinishReadObject(device);
1448 FinishWriteObject(framebuffer);
1449 // Host access to framebuffer must be externally synchronized
1450 }
1451
PreCallRecordCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)1452 void ThreadSafety::PreCallRecordCreateRenderPass(
1453 VkDevice device,
1454 const VkRenderPassCreateInfo* pCreateInfo,
1455 const VkAllocationCallbacks* pAllocator,
1456 VkRenderPass* pRenderPass) {
1457 StartReadObject(device);
1458 }
1459
PostCallRecordCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass,VkResult result)1460 void ThreadSafety::PostCallRecordCreateRenderPass(
1461 VkDevice device,
1462 const VkRenderPassCreateInfo* pCreateInfo,
1463 const VkAllocationCallbacks* pAllocator,
1464 VkRenderPass* pRenderPass,
1465 VkResult result) {
1466 FinishReadObject(device);
1467 }
1468
PreCallRecordDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)1469 void ThreadSafety::PreCallRecordDestroyRenderPass(
1470 VkDevice device,
1471 VkRenderPass renderPass,
1472 const VkAllocationCallbacks* pAllocator) {
1473 StartReadObject(device);
1474 StartWriteObject(renderPass);
1475 // Host access to renderPass must be externally synchronized
1476 }
1477
PostCallRecordDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)1478 void ThreadSafety::PostCallRecordDestroyRenderPass(
1479 VkDevice device,
1480 VkRenderPass renderPass,
1481 const VkAllocationCallbacks* pAllocator) {
1482 FinishReadObject(device);
1483 FinishWriteObject(renderPass);
1484 // Host access to renderPass must be externally synchronized
1485 }
1486
PreCallRecordGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)1487 void ThreadSafety::PreCallRecordGetRenderAreaGranularity(
1488 VkDevice device,
1489 VkRenderPass renderPass,
1490 VkExtent2D* pGranularity) {
1491 StartReadObject(device);
1492 StartReadObject(renderPass);
1493 }
1494
PostCallRecordGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)1495 void ThreadSafety::PostCallRecordGetRenderAreaGranularity(
1496 VkDevice device,
1497 VkRenderPass renderPass,
1498 VkExtent2D* pGranularity) {
1499 FinishReadObject(device);
1500 FinishReadObject(renderPass);
1501 }
1502
PreCallRecordCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)1503 void ThreadSafety::PreCallRecordCreateCommandPool(
1504 VkDevice device,
1505 const VkCommandPoolCreateInfo* pCreateInfo,
1506 const VkAllocationCallbacks* pAllocator,
1507 VkCommandPool* pCommandPool) {
1508 StartReadObject(device);
1509 }
1510
PostCallRecordCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool,VkResult result)1511 void ThreadSafety::PostCallRecordCreateCommandPool(
1512 VkDevice device,
1513 const VkCommandPoolCreateInfo* pCreateInfo,
1514 const VkAllocationCallbacks* pAllocator,
1515 VkCommandPool* pCommandPool,
1516 VkResult result) {
1517 FinishReadObject(device);
1518 }
1519
PreCallRecordBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)1520 void ThreadSafety::PreCallRecordBeginCommandBuffer(
1521 VkCommandBuffer commandBuffer,
1522 const VkCommandBufferBeginInfo* pBeginInfo) {
1523 StartWriteObject(commandBuffer);
1524 // Host access to commandBuffer must be externally synchronized
1525 // the sname:VkCommandPool that pname:commandBuffer was allocated from must be externally synchronized between host accesses
1526 }
1527
PostCallRecordBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo,VkResult result)1528 void ThreadSafety::PostCallRecordBeginCommandBuffer(
1529 VkCommandBuffer commandBuffer,
1530 const VkCommandBufferBeginInfo* pBeginInfo,
1531 VkResult result) {
1532 FinishWriteObject(commandBuffer);
1533 // Host access to commandBuffer must be externally synchronized
1534 // the sname:VkCommandPool that pname:commandBuffer was allocated from must be externally synchronized between host accesses
1535 }
1536
PreCallRecordEndCommandBuffer(VkCommandBuffer commandBuffer)1537 void ThreadSafety::PreCallRecordEndCommandBuffer(
1538 VkCommandBuffer commandBuffer) {
1539 StartWriteObject(commandBuffer);
1540 // Host access to commandBuffer must be externally synchronized
1541 // the sname:VkCommandPool that pname:commandBuffer was allocated from must be externally synchronized between host accesses
1542 }
1543
PostCallRecordEndCommandBuffer(VkCommandBuffer commandBuffer,VkResult result)1544 void ThreadSafety::PostCallRecordEndCommandBuffer(
1545 VkCommandBuffer commandBuffer,
1546 VkResult result) {
1547 FinishWriteObject(commandBuffer);
1548 // Host access to commandBuffer must be externally synchronized
1549 // the sname:VkCommandPool that pname:commandBuffer was allocated from must be externally synchronized between host accesses
1550 }
1551
PreCallRecordResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)1552 void ThreadSafety::PreCallRecordResetCommandBuffer(
1553 VkCommandBuffer commandBuffer,
1554 VkCommandBufferResetFlags flags) {
1555 StartWriteObject(commandBuffer);
1556 // Host access to commandBuffer must be externally synchronized
1557 }
1558
PostCallRecordResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags,VkResult result)1559 void ThreadSafety::PostCallRecordResetCommandBuffer(
1560 VkCommandBuffer commandBuffer,
1561 VkCommandBufferResetFlags flags,
1562 VkResult result) {
1563 FinishWriteObject(commandBuffer);
1564 // Host access to commandBuffer must be externally synchronized
1565 }
1566
PreCallRecordCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)1567 void ThreadSafety::PreCallRecordCmdBindPipeline(
1568 VkCommandBuffer commandBuffer,
1569 VkPipelineBindPoint pipelineBindPoint,
1570 VkPipeline pipeline) {
1571 StartWriteObject(commandBuffer);
1572 StartReadObject(pipeline);
1573 // Host access to commandBuffer must be externally synchronized
1574 }
1575
PostCallRecordCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)1576 void ThreadSafety::PostCallRecordCmdBindPipeline(
1577 VkCommandBuffer commandBuffer,
1578 VkPipelineBindPoint pipelineBindPoint,
1579 VkPipeline pipeline) {
1580 FinishWriteObject(commandBuffer);
1581 FinishReadObject(pipeline);
1582 // Host access to commandBuffer must be externally synchronized
1583 }
1584
PreCallRecordCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)1585 void ThreadSafety::PreCallRecordCmdSetViewport(
1586 VkCommandBuffer commandBuffer,
1587 uint32_t firstViewport,
1588 uint32_t viewportCount,
1589 const VkViewport* pViewports) {
1590 StartWriteObject(commandBuffer);
1591 // Host access to commandBuffer must be externally synchronized
1592 }
1593
PostCallRecordCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)1594 void ThreadSafety::PostCallRecordCmdSetViewport(
1595 VkCommandBuffer commandBuffer,
1596 uint32_t firstViewport,
1597 uint32_t viewportCount,
1598 const VkViewport* pViewports) {
1599 FinishWriteObject(commandBuffer);
1600 // Host access to commandBuffer must be externally synchronized
1601 }
1602
PreCallRecordCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)1603 void ThreadSafety::PreCallRecordCmdSetScissor(
1604 VkCommandBuffer commandBuffer,
1605 uint32_t firstScissor,
1606 uint32_t scissorCount,
1607 const VkRect2D* pScissors) {
1608 StartWriteObject(commandBuffer);
1609 // Host access to commandBuffer must be externally synchronized
1610 }
1611
PostCallRecordCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)1612 void ThreadSafety::PostCallRecordCmdSetScissor(
1613 VkCommandBuffer commandBuffer,
1614 uint32_t firstScissor,
1615 uint32_t scissorCount,
1616 const VkRect2D* pScissors) {
1617 FinishWriteObject(commandBuffer);
1618 // Host access to commandBuffer must be externally synchronized
1619 }
1620
PreCallRecordCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth)1621 void ThreadSafety::PreCallRecordCmdSetLineWidth(
1622 VkCommandBuffer commandBuffer,
1623 float lineWidth) {
1624 StartWriteObject(commandBuffer);
1625 // Host access to commandBuffer must be externally synchronized
1626 }
1627
PostCallRecordCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth)1628 void ThreadSafety::PostCallRecordCmdSetLineWidth(
1629 VkCommandBuffer commandBuffer,
1630 float lineWidth) {
1631 FinishWriteObject(commandBuffer);
1632 // Host access to commandBuffer must be externally synchronized
1633 }
1634
PreCallRecordCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor)1635 void ThreadSafety::PreCallRecordCmdSetDepthBias(
1636 VkCommandBuffer commandBuffer,
1637 float depthBiasConstantFactor,
1638 float depthBiasClamp,
1639 float depthBiasSlopeFactor) {
1640 StartWriteObject(commandBuffer);
1641 // Host access to commandBuffer must be externally synchronized
1642 }
1643
PostCallRecordCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor)1644 void ThreadSafety::PostCallRecordCmdSetDepthBias(
1645 VkCommandBuffer commandBuffer,
1646 float depthBiasConstantFactor,
1647 float depthBiasClamp,
1648 float depthBiasSlopeFactor) {
1649 FinishWriteObject(commandBuffer);
1650 // Host access to commandBuffer must be externally synchronized
1651 }
1652
PreCallRecordCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4])1653 void ThreadSafety::PreCallRecordCmdSetBlendConstants(
1654 VkCommandBuffer commandBuffer,
1655 const float blendConstants[4]) {
1656 StartWriteObject(commandBuffer);
1657 // Host access to commandBuffer must be externally synchronized
1658 }
1659
PostCallRecordCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4])1660 void ThreadSafety::PostCallRecordCmdSetBlendConstants(
1661 VkCommandBuffer commandBuffer,
1662 const float blendConstants[4]) {
1663 FinishWriteObject(commandBuffer);
1664 // Host access to commandBuffer must be externally synchronized
1665 }
1666
PreCallRecordCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds)1667 void ThreadSafety::PreCallRecordCmdSetDepthBounds(
1668 VkCommandBuffer commandBuffer,
1669 float minDepthBounds,
1670 float maxDepthBounds) {
1671 StartWriteObject(commandBuffer);
1672 // Host access to commandBuffer must be externally synchronized
1673 }
1674
PostCallRecordCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds)1675 void ThreadSafety::PostCallRecordCmdSetDepthBounds(
1676 VkCommandBuffer commandBuffer,
1677 float minDepthBounds,
1678 float maxDepthBounds) {
1679 FinishWriteObject(commandBuffer);
1680 // Host access to commandBuffer must be externally synchronized
1681 }
1682
PreCallRecordCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask)1683 void ThreadSafety::PreCallRecordCmdSetStencilCompareMask(
1684 VkCommandBuffer commandBuffer,
1685 VkStencilFaceFlags faceMask,
1686 uint32_t compareMask) {
1687 StartWriteObject(commandBuffer);
1688 // Host access to commandBuffer must be externally synchronized
1689 }
1690
PostCallRecordCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask)1691 void ThreadSafety::PostCallRecordCmdSetStencilCompareMask(
1692 VkCommandBuffer commandBuffer,
1693 VkStencilFaceFlags faceMask,
1694 uint32_t compareMask) {
1695 FinishWriteObject(commandBuffer);
1696 // Host access to commandBuffer must be externally synchronized
1697 }
1698
PreCallRecordCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask)1699 void ThreadSafety::PreCallRecordCmdSetStencilWriteMask(
1700 VkCommandBuffer commandBuffer,
1701 VkStencilFaceFlags faceMask,
1702 uint32_t writeMask) {
1703 StartWriteObject(commandBuffer);
1704 // Host access to commandBuffer must be externally synchronized
1705 }
1706
PostCallRecordCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask)1707 void ThreadSafety::PostCallRecordCmdSetStencilWriteMask(
1708 VkCommandBuffer commandBuffer,
1709 VkStencilFaceFlags faceMask,
1710 uint32_t writeMask) {
1711 FinishWriteObject(commandBuffer);
1712 // Host access to commandBuffer must be externally synchronized
1713 }
1714
PreCallRecordCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference)1715 void ThreadSafety::PreCallRecordCmdSetStencilReference(
1716 VkCommandBuffer commandBuffer,
1717 VkStencilFaceFlags faceMask,
1718 uint32_t reference) {
1719 StartWriteObject(commandBuffer);
1720 // Host access to commandBuffer must be externally synchronized
1721 }
1722
PostCallRecordCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference)1723 void ThreadSafety::PostCallRecordCmdSetStencilReference(
1724 VkCommandBuffer commandBuffer,
1725 VkStencilFaceFlags faceMask,
1726 uint32_t reference) {
1727 FinishWriteObject(commandBuffer);
1728 // Host access to commandBuffer must be externally synchronized
1729 }
1730
PreCallRecordCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)1731 void ThreadSafety::PreCallRecordCmdBindDescriptorSets(
1732 VkCommandBuffer commandBuffer,
1733 VkPipelineBindPoint pipelineBindPoint,
1734 VkPipelineLayout layout,
1735 uint32_t firstSet,
1736 uint32_t descriptorSetCount,
1737 const VkDescriptorSet* pDescriptorSets,
1738 uint32_t dynamicOffsetCount,
1739 const uint32_t* pDynamicOffsets) {
1740 StartWriteObject(commandBuffer);
1741 StartReadObject(layout);
1742 if (pDescriptorSets) {
1743 for (uint32_t index = 0; index < descriptorSetCount; index++) {
1744 StartReadObject(pDescriptorSets[index]);
1745 }
1746 }
1747 // Host access to commandBuffer must be externally synchronized
1748 }
1749
PostCallRecordCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)1750 void ThreadSafety::PostCallRecordCmdBindDescriptorSets(
1751 VkCommandBuffer commandBuffer,
1752 VkPipelineBindPoint pipelineBindPoint,
1753 VkPipelineLayout layout,
1754 uint32_t firstSet,
1755 uint32_t descriptorSetCount,
1756 const VkDescriptorSet* pDescriptorSets,
1757 uint32_t dynamicOffsetCount,
1758 const uint32_t* pDynamicOffsets) {
1759 FinishWriteObject(commandBuffer);
1760 FinishReadObject(layout);
1761 if (pDescriptorSets) {
1762 for (uint32_t index = 0; index < descriptorSetCount; index++) {
1763 FinishReadObject(pDescriptorSets[index]);
1764 }
1765 }
1766 // Host access to commandBuffer must be externally synchronized
1767 }
1768
PreCallRecordCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)1769 void ThreadSafety::PreCallRecordCmdBindIndexBuffer(
1770 VkCommandBuffer commandBuffer,
1771 VkBuffer buffer,
1772 VkDeviceSize offset,
1773 VkIndexType indexType) {
1774 StartWriteObject(commandBuffer);
1775 StartReadObject(buffer);
1776 // Host access to commandBuffer must be externally synchronized
1777 }
1778
PostCallRecordCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)1779 void ThreadSafety::PostCallRecordCmdBindIndexBuffer(
1780 VkCommandBuffer commandBuffer,
1781 VkBuffer buffer,
1782 VkDeviceSize offset,
1783 VkIndexType indexType) {
1784 FinishWriteObject(commandBuffer);
1785 FinishReadObject(buffer);
1786 // Host access to commandBuffer must be externally synchronized
1787 }
1788
PreCallRecordCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)1789 void ThreadSafety::PreCallRecordCmdBindVertexBuffers(
1790 VkCommandBuffer commandBuffer,
1791 uint32_t firstBinding,
1792 uint32_t bindingCount,
1793 const VkBuffer* pBuffers,
1794 const VkDeviceSize* pOffsets) {
1795 StartWriteObject(commandBuffer);
1796 if (pBuffers) {
1797 for (uint32_t index = 0; index < bindingCount; index++) {
1798 StartReadObject(pBuffers[index]);
1799 }
1800 }
1801 // Host access to commandBuffer must be externally synchronized
1802 }
1803
PostCallRecordCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)1804 void ThreadSafety::PostCallRecordCmdBindVertexBuffers(
1805 VkCommandBuffer commandBuffer,
1806 uint32_t firstBinding,
1807 uint32_t bindingCount,
1808 const VkBuffer* pBuffers,
1809 const VkDeviceSize* pOffsets) {
1810 FinishWriteObject(commandBuffer);
1811 if (pBuffers) {
1812 for (uint32_t index = 0; index < bindingCount; index++) {
1813 FinishReadObject(pBuffers[index]);
1814 }
1815 }
1816 // Host access to commandBuffer must be externally synchronized
1817 }
1818
PreCallRecordCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)1819 void ThreadSafety::PreCallRecordCmdDraw(
1820 VkCommandBuffer commandBuffer,
1821 uint32_t vertexCount,
1822 uint32_t instanceCount,
1823 uint32_t firstVertex,
1824 uint32_t firstInstance) {
1825 StartWriteObject(commandBuffer);
1826 // Host access to commandBuffer must be externally synchronized
1827 }
1828
PostCallRecordCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)1829 void ThreadSafety::PostCallRecordCmdDraw(
1830 VkCommandBuffer commandBuffer,
1831 uint32_t vertexCount,
1832 uint32_t instanceCount,
1833 uint32_t firstVertex,
1834 uint32_t firstInstance) {
1835 FinishWriteObject(commandBuffer);
1836 // Host access to commandBuffer must be externally synchronized
1837 }
1838
PreCallRecordCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)1839 void ThreadSafety::PreCallRecordCmdDrawIndexed(
1840 VkCommandBuffer commandBuffer,
1841 uint32_t indexCount,
1842 uint32_t instanceCount,
1843 uint32_t firstIndex,
1844 int32_t vertexOffset,
1845 uint32_t firstInstance) {
1846 StartWriteObject(commandBuffer);
1847 // Host access to commandBuffer must be externally synchronized
1848 }
1849
PostCallRecordCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)1850 void ThreadSafety::PostCallRecordCmdDrawIndexed(
1851 VkCommandBuffer commandBuffer,
1852 uint32_t indexCount,
1853 uint32_t instanceCount,
1854 uint32_t firstIndex,
1855 int32_t vertexOffset,
1856 uint32_t firstInstance) {
1857 FinishWriteObject(commandBuffer);
1858 // Host access to commandBuffer must be externally synchronized
1859 }
1860
PreCallRecordCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1861 void ThreadSafety::PreCallRecordCmdDrawIndirect(
1862 VkCommandBuffer commandBuffer,
1863 VkBuffer buffer,
1864 VkDeviceSize offset,
1865 uint32_t drawCount,
1866 uint32_t stride) {
1867 StartWriteObject(commandBuffer);
1868 StartReadObject(buffer);
1869 // Host access to commandBuffer must be externally synchronized
1870 }
1871
PostCallRecordCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1872 void ThreadSafety::PostCallRecordCmdDrawIndirect(
1873 VkCommandBuffer commandBuffer,
1874 VkBuffer buffer,
1875 VkDeviceSize offset,
1876 uint32_t drawCount,
1877 uint32_t stride) {
1878 FinishWriteObject(commandBuffer);
1879 FinishReadObject(buffer);
1880 // Host access to commandBuffer must be externally synchronized
1881 }
1882
PreCallRecordCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1883 void ThreadSafety::PreCallRecordCmdDrawIndexedIndirect(
1884 VkCommandBuffer commandBuffer,
1885 VkBuffer buffer,
1886 VkDeviceSize offset,
1887 uint32_t drawCount,
1888 uint32_t stride) {
1889 StartWriteObject(commandBuffer);
1890 StartReadObject(buffer);
1891 // Host access to commandBuffer must be externally synchronized
1892 }
1893
PostCallRecordCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1894 void ThreadSafety::PostCallRecordCmdDrawIndexedIndirect(
1895 VkCommandBuffer commandBuffer,
1896 VkBuffer buffer,
1897 VkDeviceSize offset,
1898 uint32_t drawCount,
1899 uint32_t stride) {
1900 FinishWriteObject(commandBuffer);
1901 FinishReadObject(buffer);
1902 // Host access to commandBuffer must be externally synchronized
1903 }
1904
PreCallRecordCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1905 void ThreadSafety::PreCallRecordCmdDispatch(
1906 VkCommandBuffer commandBuffer,
1907 uint32_t groupCountX,
1908 uint32_t groupCountY,
1909 uint32_t groupCountZ) {
1910 StartWriteObject(commandBuffer);
1911 // Host access to commandBuffer must be externally synchronized
1912 }
1913
PostCallRecordCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1914 void ThreadSafety::PostCallRecordCmdDispatch(
1915 VkCommandBuffer commandBuffer,
1916 uint32_t groupCountX,
1917 uint32_t groupCountY,
1918 uint32_t groupCountZ) {
1919 FinishWriteObject(commandBuffer);
1920 // Host access to commandBuffer must be externally synchronized
1921 }
1922
PreCallRecordCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)1923 void ThreadSafety::PreCallRecordCmdDispatchIndirect(
1924 VkCommandBuffer commandBuffer,
1925 VkBuffer buffer,
1926 VkDeviceSize offset) {
1927 StartWriteObject(commandBuffer);
1928 StartReadObject(buffer);
1929 // Host access to commandBuffer must be externally synchronized
1930 }
1931
PostCallRecordCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)1932 void ThreadSafety::PostCallRecordCmdDispatchIndirect(
1933 VkCommandBuffer commandBuffer,
1934 VkBuffer buffer,
1935 VkDeviceSize offset) {
1936 FinishWriteObject(commandBuffer);
1937 FinishReadObject(buffer);
1938 // Host access to commandBuffer must be externally synchronized
1939 }
1940
PreCallRecordCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)1941 void ThreadSafety::PreCallRecordCmdCopyBuffer(
1942 VkCommandBuffer commandBuffer,
1943 VkBuffer srcBuffer,
1944 VkBuffer dstBuffer,
1945 uint32_t regionCount,
1946 const VkBufferCopy* pRegions) {
1947 StartWriteObject(commandBuffer);
1948 StartReadObject(srcBuffer);
1949 StartReadObject(dstBuffer);
1950 // Host access to commandBuffer must be externally synchronized
1951 }
1952
PostCallRecordCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)1953 void ThreadSafety::PostCallRecordCmdCopyBuffer(
1954 VkCommandBuffer commandBuffer,
1955 VkBuffer srcBuffer,
1956 VkBuffer dstBuffer,
1957 uint32_t regionCount,
1958 const VkBufferCopy* pRegions) {
1959 FinishWriteObject(commandBuffer);
1960 FinishReadObject(srcBuffer);
1961 FinishReadObject(dstBuffer);
1962 // Host access to commandBuffer must be externally synchronized
1963 }
1964
PreCallRecordCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)1965 void ThreadSafety::PreCallRecordCmdCopyImage(
1966 VkCommandBuffer commandBuffer,
1967 VkImage srcImage,
1968 VkImageLayout srcImageLayout,
1969 VkImage dstImage,
1970 VkImageLayout dstImageLayout,
1971 uint32_t regionCount,
1972 const VkImageCopy* pRegions) {
1973 StartWriteObject(commandBuffer);
1974 StartReadObject(srcImage);
1975 StartReadObject(dstImage);
1976 // Host access to commandBuffer must be externally synchronized
1977 }
1978
PostCallRecordCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)1979 void ThreadSafety::PostCallRecordCmdCopyImage(
1980 VkCommandBuffer commandBuffer,
1981 VkImage srcImage,
1982 VkImageLayout srcImageLayout,
1983 VkImage dstImage,
1984 VkImageLayout dstImageLayout,
1985 uint32_t regionCount,
1986 const VkImageCopy* pRegions) {
1987 FinishWriteObject(commandBuffer);
1988 FinishReadObject(srcImage);
1989 FinishReadObject(dstImage);
1990 // Host access to commandBuffer must be externally synchronized
1991 }
1992
PreCallRecordCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)1993 void ThreadSafety::PreCallRecordCmdBlitImage(
1994 VkCommandBuffer commandBuffer,
1995 VkImage srcImage,
1996 VkImageLayout srcImageLayout,
1997 VkImage dstImage,
1998 VkImageLayout dstImageLayout,
1999 uint32_t regionCount,
2000 const VkImageBlit* pRegions,
2001 VkFilter filter) {
2002 StartWriteObject(commandBuffer);
2003 StartReadObject(srcImage);
2004 StartReadObject(dstImage);
2005 // Host access to commandBuffer must be externally synchronized
2006 }
2007
PostCallRecordCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)2008 void ThreadSafety::PostCallRecordCmdBlitImage(
2009 VkCommandBuffer commandBuffer,
2010 VkImage srcImage,
2011 VkImageLayout srcImageLayout,
2012 VkImage dstImage,
2013 VkImageLayout dstImageLayout,
2014 uint32_t regionCount,
2015 const VkImageBlit* pRegions,
2016 VkFilter filter) {
2017 FinishWriteObject(commandBuffer);
2018 FinishReadObject(srcImage);
2019 FinishReadObject(dstImage);
2020 // Host access to commandBuffer must be externally synchronized
2021 }
2022
PreCallRecordCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)2023 void ThreadSafety::PreCallRecordCmdCopyBufferToImage(
2024 VkCommandBuffer commandBuffer,
2025 VkBuffer srcBuffer,
2026 VkImage dstImage,
2027 VkImageLayout dstImageLayout,
2028 uint32_t regionCount,
2029 const VkBufferImageCopy* pRegions) {
2030 StartWriteObject(commandBuffer);
2031 StartReadObject(srcBuffer);
2032 StartReadObject(dstImage);
2033 // Host access to commandBuffer must be externally synchronized
2034 }
2035
PostCallRecordCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)2036 void ThreadSafety::PostCallRecordCmdCopyBufferToImage(
2037 VkCommandBuffer commandBuffer,
2038 VkBuffer srcBuffer,
2039 VkImage dstImage,
2040 VkImageLayout dstImageLayout,
2041 uint32_t regionCount,
2042 const VkBufferImageCopy* pRegions) {
2043 FinishWriteObject(commandBuffer);
2044 FinishReadObject(srcBuffer);
2045 FinishReadObject(dstImage);
2046 // Host access to commandBuffer must be externally synchronized
2047 }
2048
PreCallRecordCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)2049 void ThreadSafety::PreCallRecordCmdCopyImageToBuffer(
2050 VkCommandBuffer commandBuffer,
2051 VkImage srcImage,
2052 VkImageLayout srcImageLayout,
2053 VkBuffer dstBuffer,
2054 uint32_t regionCount,
2055 const VkBufferImageCopy* pRegions) {
2056 StartWriteObject(commandBuffer);
2057 StartReadObject(srcImage);
2058 StartReadObject(dstBuffer);
2059 // Host access to commandBuffer must be externally synchronized
2060 }
2061
PostCallRecordCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)2062 void ThreadSafety::PostCallRecordCmdCopyImageToBuffer(
2063 VkCommandBuffer commandBuffer,
2064 VkImage srcImage,
2065 VkImageLayout srcImageLayout,
2066 VkBuffer dstBuffer,
2067 uint32_t regionCount,
2068 const VkBufferImageCopy* pRegions) {
2069 FinishWriteObject(commandBuffer);
2070 FinishReadObject(srcImage);
2071 FinishReadObject(dstBuffer);
2072 // Host access to commandBuffer must be externally synchronized
2073 }
2074
PreCallRecordCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData)2075 void ThreadSafety::PreCallRecordCmdUpdateBuffer(
2076 VkCommandBuffer commandBuffer,
2077 VkBuffer dstBuffer,
2078 VkDeviceSize dstOffset,
2079 VkDeviceSize dataSize,
2080 const void* pData) {
2081 StartWriteObject(commandBuffer);
2082 StartReadObject(dstBuffer);
2083 // Host access to commandBuffer must be externally synchronized
2084 }
2085
PostCallRecordCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData)2086 void ThreadSafety::PostCallRecordCmdUpdateBuffer(
2087 VkCommandBuffer commandBuffer,
2088 VkBuffer dstBuffer,
2089 VkDeviceSize dstOffset,
2090 VkDeviceSize dataSize,
2091 const void* pData) {
2092 FinishWriteObject(commandBuffer);
2093 FinishReadObject(dstBuffer);
2094 // Host access to commandBuffer must be externally synchronized
2095 }
2096
PreCallRecordCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data)2097 void ThreadSafety::PreCallRecordCmdFillBuffer(
2098 VkCommandBuffer commandBuffer,
2099 VkBuffer dstBuffer,
2100 VkDeviceSize dstOffset,
2101 VkDeviceSize size,
2102 uint32_t data) {
2103 StartWriteObject(commandBuffer);
2104 StartReadObject(dstBuffer);
2105 // Host access to commandBuffer must be externally synchronized
2106 }
2107
PostCallRecordCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data)2108 void ThreadSafety::PostCallRecordCmdFillBuffer(
2109 VkCommandBuffer commandBuffer,
2110 VkBuffer dstBuffer,
2111 VkDeviceSize dstOffset,
2112 VkDeviceSize size,
2113 uint32_t data) {
2114 FinishWriteObject(commandBuffer);
2115 FinishReadObject(dstBuffer);
2116 // Host access to commandBuffer must be externally synchronized
2117 }
2118
PreCallRecordCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)2119 void ThreadSafety::PreCallRecordCmdClearColorImage(
2120 VkCommandBuffer commandBuffer,
2121 VkImage image,
2122 VkImageLayout imageLayout,
2123 const VkClearColorValue* pColor,
2124 uint32_t rangeCount,
2125 const VkImageSubresourceRange* pRanges) {
2126 StartWriteObject(commandBuffer);
2127 StartReadObject(image);
2128 // Host access to commandBuffer must be externally synchronized
2129 }
2130
PostCallRecordCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)2131 void ThreadSafety::PostCallRecordCmdClearColorImage(
2132 VkCommandBuffer commandBuffer,
2133 VkImage image,
2134 VkImageLayout imageLayout,
2135 const VkClearColorValue* pColor,
2136 uint32_t rangeCount,
2137 const VkImageSubresourceRange* pRanges) {
2138 FinishWriteObject(commandBuffer);
2139 FinishReadObject(image);
2140 // Host access to commandBuffer must be externally synchronized
2141 }
2142
PreCallRecordCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)2143 void ThreadSafety::PreCallRecordCmdClearDepthStencilImage(
2144 VkCommandBuffer commandBuffer,
2145 VkImage image,
2146 VkImageLayout imageLayout,
2147 const VkClearDepthStencilValue* pDepthStencil,
2148 uint32_t rangeCount,
2149 const VkImageSubresourceRange* pRanges) {
2150 StartWriteObject(commandBuffer);
2151 StartReadObject(image);
2152 // Host access to commandBuffer must be externally synchronized
2153 }
2154
PostCallRecordCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)2155 void ThreadSafety::PostCallRecordCmdClearDepthStencilImage(
2156 VkCommandBuffer commandBuffer,
2157 VkImage image,
2158 VkImageLayout imageLayout,
2159 const VkClearDepthStencilValue* pDepthStencil,
2160 uint32_t rangeCount,
2161 const VkImageSubresourceRange* pRanges) {
2162 FinishWriteObject(commandBuffer);
2163 FinishReadObject(image);
2164 // Host access to commandBuffer must be externally synchronized
2165 }
2166
PreCallRecordCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)2167 void ThreadSafety::PreCallRecordCmdClearAttachments(
2168 VkCommandBuffer commandBuffer,
2169 uint32_t attachmentCount,
2170 const VkClearAttachment* pAttachments,
2171 uint32_t rectCount,
2172 const VkClearRect* pRects) {
2173 StartWriteObject(commandBuffer);
2174 // Host access to commandBuffer must be externally synchronized
2175 }
2176
PostCallRecordCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)2177 void ThreadSafety::PostCallRecordCmdClearAttachments(
2178 VkCommandBuffer commandBuffer,
2179 uint32_t attachmentCount,
2180 const VkClearAttachment* pAttachments,
2181 uint32_t rectCount,
2182 const VkClearRect* pRects) {
2183 FinishWriteObject(commandBuffer);
2184 // Host access to commandBuffer must be externally synchronized
2185 }
2186
PreCallRecordCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)2187 void ThreadSafety::PreCallRecordCmdResolveImage(
2188 VkCommandBuffer commandBuffer,
2189 VkImage srcImage,
2190 VkImageLayout srcImageLayout,
2191 VkImage dstImage,
2192 VkImageLayout dstImageLayout,
2193 uint32_t regionCount,
2194 const VkImageResolve* pRegions) {
2195 StartWriteObject(commandBuffer);
2196 StartReadObject(srcImage);
2197 StartReadObject(dstImage);
2198 // Host access to commandBuffer must be externally synchronized
2199 }
2200
PostCallRecordCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)2201 void ThreadSafety::PostCallRecordCmdResolveImage(
2202 VkCommandBuffer commandBuffer,
2203 VkImage srcImage,
2204 VkImageLayout srcImageLayout,
2205 VkImage dstImage,
2206 VkImageLayout dstImageLayout,
2207 uint32_t regionCount,
2208 const VkImageResolve* pRegions) {
2209 FinishWriteObject(commandBuffer);
2210 FinishReadObject(srcImage);
2211 FinishReadObject(dstImage);
2212 // Host access to commandBuffer must be externally synchronized
2213 }
2214
PreCallRecordCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)2215 void ThreadSafety::PreCallRecordCmdSetEvent(
2216 VkCommandBuffer commandBuffer,
2217 VkEvent event,
2218 VkPipelineStageFlags stageMask) {
2219 StartWriteObject(commandBuffer);
2220 StartReadObject(event);
2221 // Host access to commandBuffer must be externally synchronized
2222 }
2223
PostCallRecordCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)2224 void ThreadSafety::PostCallRecordCmdSetEvent(
2225 VkCommandBuffer commandBuffer,
2226 VkEvent event,
2227 VkPipelineStageFlags stageMask) {
2228 FinishWriteObject(commandBuffer);
2229 FinishReadObject(event);
2230 // Host access to commandBuffer must be externally synchronized
2231 }
2232
PreCallRecordCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)2233 void ThreadSafety::PreCallRecordCmdResetEvent(
2234 VkCommandBuffer commandBuffer,
2235 VkEvent event,
2236 VkPipelineStageFlags stageMask) {
2237 StartWriteObject(commandBuffer);
2238 StartReadObject(event);
2239 // Host access to commandBuffer must be externally synchronized
2240 }
2241
PostCallRecordCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)2242 void ThreadSafety::PostCallRecordCmdResetEvent(
2243 VkCommandBuffer commandBuffer,
2244 VkEvent event,
2245 VkPipelineStageFlags stageMask) {
2246 FinishWriteObject(commandBuffer);
2247 FinishReadObject(event);
2248 // Host access to commandBuffer must be externally synchronized
2249 }
2250
PreCallRecordCmdWaitEvents(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)2251 void ThreadSafety::PreCallRecordCmdWaitEvents(
2252 VkCommandBuffer commandBuffer,
2253 uint32_t eventCount,
2254 const VkEvent* pEvents,
2255 VkPipelineStageFlags srcStageMask,
2256 VkPipelineStageFlags dstStageMask,
2257 uint32_t memoryBarrierCount,
2258 const VkMemoryBarrier* pMemoryBarriers,
2259 uint32_t bufferMemoryBarrierCount,
2260 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
2261 uint32_t imageMemoryBarrierCount,
2262 const VkImageMemoryBarrier* pImageMemoryBarriers) {
2263 StartWriteObject(commandBuffer);
2264 if (pEvents) {
2265 for (uint32_t index = 0; index < eventCount; index++) {
2266 StartReadObject(pEvents[index]);
2267 }
2268 }
2269 // Host access to commandBuffer must be externally synchronized
2270 }
2271
PostCallRecordCmdWaitEvents(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)2272 void ThreadSafety::PostCallRecordCmdWaitEvents(
2273 VkCommandBuffer commandBuffer,
2274 uint32_t eventCount,
2275 const VkEvent* pEvents,
2276 VkPipelineStageFlags srcStageMask,
2277 VkPipelineStageFlags dstStageMask,
2278 uint32_t memoryBarrierCount,
2279 const VkMemoryBarrier* pMemoryBarriers,
2280 uint32_t bufferMemoryBarrierCount,
2281 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
2282 uint32_t imageMemoryBarrierCount,
2283 const VkImageMemoryBarrier* pImageMemoryBarriers) {
2284 FinishWriteObject(commandBuffer);
2285 if (pEvents) {
2286 for (uint32_t index = 0; index < eventCount; index++) {
2287 FinishReadObject(pEvents[index]);
2288 }
2289 }
2290 // Host access to commandBuffer must be externally synchronized
2291 }
2292
PreCallRecordCmdPipelineBarrier(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)2293 void ThreadSafety::PreCallRecordCmdPipelineBarrier(
2294 VkCommandBuffer commandBuffer,
2295 VkPipelineStageFlags srcStageMask,
2296 VkPipelineStageFlags dstStageMask,
2297 VkDependencyFlags dependencyFlags,
2298 uint32_t memoryBarrierCount,
2299 const VkMemoryBarrier* pMemoryBarriers,
2300 uint32_t bufferMemoryBarrierCount,
2301 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
2302 uint32_t imageMemoryBarrierCount,
2303 const VkImageMemoryBarrier* pImageMemoryBarriers) {
2304 StartWriteObject(commandBuffer);
2305 // Host access to commandBuffer must be externally synchronized
2306 }
2307
PostCallRecordCmdPipelineBarrier(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)2308 void ThreadSafety::PostCallRecordCmdPipelineBarrier(
2309 VkCommandBuffer commandBuffer,
2310 VkPipelineStageFlags srcStageMask,
2311 VkPipelineStageFlags dstStageMask,
2312 VkDependencyFlags dependencyFlags,
2313 uint32_t memoryBarrierCount,
2314 const VkMemoryBarrier* pMemoryBarriers,
2315 uint32_t bufferMemoryBarrierCount,
2316 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
2317 uint32_t imageMemoryBarrierCount,
2318 const VkImageMemoryBarrier* pImageMemoryBarriers) {
2319 FinishWriteObject(commandBuffer);
2320 // Host access to commandBuffer must be externally synchronized
2321 }
2322
PreCallRecordCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags)2323 void ThreadSafety::PreCallRecordCmdBeginQuery(
2324 VkCommandBuffer commandBuffer,
2325 VkQueryPool queryPool,
2326 uint32_t query,
2327 VkQueryControlFlags flags) {
2328 StartWriteObject(commandBuffer);
2329 StartReadObject(queryPool);
2330 // Host access to commandBuffer must be externally synchronized
2331 }
2332
PostCallRecordCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags)2333 void ThreadSafety::PostCallRecordCmdBeginQuery(
2334 VkCommandBuffer commandBuffer,
2335 VkQueryPool queryPool,
2336 uint32_t query,
2337 VkQueryControlFlags flags) {
2338 FinishWriteObject(commandBuffer);
2339 FinishReadObject(queryPool);
2340 // Host access to commandBuffer must be externally synchronized
2341 }
2342
PreCallRecordCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query)2343 void ThreadSafety::PreCallRecordCmdEndQuery(
2344 VkCommandBuffer commandBuffer,
2345 VkQueryPool queryPool,
2346 uint32_t query) {
2347 StartWriteObject(commandBuffer);
2348 StartReadObject(queryPool);
2349 // Host access to commandBuffer must be externally synchronized
2350 }
2351
PostCallRecordCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query)2352 void ThreadSafety::PostCallRecordCmdEndQuery(
2353 VkCommandBuffer commandBuffer,
2354 VkQueryPool queryPool,
2355 uint32_t query) {
2356 FinishWriteObject(commandBuffer);
2357 FinishReadObject(queryPool);
2358 // Host access to commandBuffer must be externally synchronized
2359 }
2360
PreCallRecordCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)2361 void ThreadSafety::PreCallRecordCmdResetQueryPool(
2362 VkCommandBuffer commandBuffer,
2363 VkQueryPool queryPool,
2364 uint32_t firstQuery,
2365 uint32_t queryCount) {
2366 StartWriteObject(commandBuffer);
2367 StartReadObject(queryPool);
2368 // Host access to commandBuffer must be externally synchronized
2369 }
2370
PostCallRecordCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)2371 void ThreadSafety::PostCallRecordCmdResetQueryPool(
2372 VkCommandBuffer commandBuffer,
2373 VkQueryPool queryPool,
2374 uint32_t firstQuery,
2375 uint32_t queryCount) {
2376 FinishWriteObject(commandBuffer);
2377 FinishReadObject(queryPool);
2378 // Host access to commandBuffer must be externally synchronized
2379 }
2380
PreCallRecordCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query)2381 void ThreadSafety::PreCallRecordCmdWriteTimestamp(
2382 VkCommandBuffer commandBuffer,
2383 VkPipelineStageFlagBits pipelineStage,
2384 VkQueryPool queryPool,
2385 uint32_t query) {
2386 StartWriteObject(commandBuffer);
2387 StartReadObject(queryPool);
2388 // Host access to commandBuffer must be externally synchronized
2389 }
2390
PostCallRecordCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query)2391 void ThreadSafety::PostCallRecordCmdWriteTimestamp(
2392 VkCommandBuffer commandBuffer,
2393 VkPipelineStageFlagBits pipelineStage,
2394 VkQueryPool queryPool,
2395 uint32_t query) {
2396 FinishWriteObject(commandBuffer);
2397 FinishReadObject(queryPool);
2398 // Host access to commandBuffer must be externally synchronized
2399 }
2400
PreCallRecordCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags)2401 void ThreadSafety::PreCallRecordCmdCopyQueryPoolResults(
2402 VkCommandBuffer commandBuffer,
2403 VkQueryPool queryPool,
2404 uint32_t firstQuery,
2405 uint32_t queryCount,
2406 VkBuffer dstBuffer,
2407 VkDeviceSize dstOffset,
2408 VkDeviceSize stride,
2409 VkQueryResultFlags flags) {
2410 StartWriteObject(commandBuffer);
2411 StartReadObject(queryPool);
2412 StartReadObject(dstBuffer);
2413 // Host access to commandBuffer must be externally synchronized
2414 }
2415
PostCallRecordCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags)2416 void ThreadSafety::PostCallRecordCmdCopyQueryPoolResults(
2417 VkCommandBuffer commandBuffer,
2418 VkQueryPool queryPool,
2419 uint32_t firstQuery,
2420 uint32_t queryCount,
2421 VkBuffer dstBuffer,
2422 VkDeviceSize dstOffset,
2423 VkDeviceSize stride,
2424 VkQueryResultFlags flags) {
2425 FinishWriteObject(commandBuffer);
2426 FinishReadObject(queryPool);
2427 FinishReadObject(dstBuffer);
2428 // Host access to commandBuffer must be externally synchronized
2429 }
2430
PreCallRecordCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues)2431 void ThreadSafety::PreCallRecordCmdPushConstants(
2432 VkCommandBuffer commandBuffer,
2433 VkPipelineLayout layout,
2434 VkShaderStageFlags stageFlags,
2435 uint32_t offset,
2436 uint32_t size,
2437 const void* pValues) {
2438 StartWriteObject(commandBuffer);
2439 StartReadObject(layout);
2440 // Host access to commandBuffer must be externally synchronized
2441 }
2442
PostCallRecordCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues)2443 void ThreadSafety::PostCallRecordCmdPushConstants(
2444 VkCommandBuffer commandBuffer,
2445 VkPipelineLayout layout,
2446 VkShaderStageFlags stageFlags,
2447 uint32_t offset,
2448 uint32_t size,
2449 const void* pValues) {
2450 FinishWriteObject(commandBuffer);
2451 FinishReadObject(layout);
2452 // Host access to commandBuffer must be externally synchronized
2453 }
2454
PreCallRecordCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)2455 void ThreadSafety::PreCallRecordCmdBeginRenderPass(
2456 VkCommandBuffer commandBuffer,
2457 const VkRenderPassBeginInfo* pRenderPassBegin,
2458 VkSubpassContents contents) {
2459 StartWriteObject(commandBuffer);
2460 // Host access to commandBuffer must be externally synchronized
2461 }
2462
PostCallRecordCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)2463 void ThreadSafety::PostCallRecordCmdBeginRenderPass(
2464 VkCommandBuffer commandBuffer,
2465 const VkRenderPassBeginInfo* pRenderPassBegin,
2466 VkSubpassContents contents) {
2467 FinishWriteObject(commandBuffer);
2468 // Host access to commandBuffer must be externally synchronized
2469 }
2470
PreCallRecordCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents)2471 void ThreadSafety::PreCallRecordCmdNextSubpass(
2472 VkCommandBuffer commandBuffer,
2473 VkSubpassContents contents) {
2474 StartWriteObject(commandBuffer);
2475 // Host access to commandBuffer must be externally synchronized
2476 }
2477
PostCallRecordCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents)2478 void ThreadSafety::PostCallRecordCmdNextSubpass(
2479 VkCommandBuffer commandBuffer,
2480 VkSubpassContents contents) {
2481 FinishWriteObject(commandBuffer);
2482 // Host access to commandBuffer must be externally synchronized
2483 }
2484
PreCallRecordCmdEndRenderPass(VkCommandBuffer commandBuffer)2485 void ThreadSafety::PreCallRecordCmdEndRenderPass(
2486 VkCommandBuffer commandBuffer) {
2487 StartWriteObject(commandBuffer);
2488 // Host access to commandBuffer must be externally synchronized
2489 }
2490
PostCallRecordCmdEndRenderPass(VkCommandBuffer commandBuffer)2491 void ThreadSafety::PostCallRecordCmdEndRenderPass(
2492 VkCommandBuffer commandBuffer) {
2493 FinishWriteObject(commandBuffer);
2494 // Host access to commandBuffer must be externally synchronized
2495 }
2496
PreCallRecordCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)2497 void ThreadSafety::PreCallRecordCmdExecuteCommands(
2498 VkCommandBuffer commandBuffer,
2499 uint32_t commandBufferCount,
2500 const VkCommandBuffer* pCommandBuffers) {
2501 StartWriteObject(commandBuffer);
2502 if (pCommandBuffers) {
2503 for (uint32_t index = 0; index < commandBufferCount; index++) {
2504 StartReadObject(pCommandBuffers[index]);
2505 }
2506 }
2507 // Host access to commandBuffer must be externally synchronized
2508 }
2509
PostCallRecordCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)2510 void ThreadSafety::PostCallRecordCmdExecuteCommands(
2511 VkCommandBuffer commandBuffer,
2512 uint32_t commandBufferCount,
2513 const VkCommandBuffer* pCommandBuffers) {
2514 FinishWriteObject(commandBuffer);
2515 if (pCommandBuffers) {
2516 for (uint32_t index = 0; index < commandBufferCount; index++) {
2517 FinishReadObject(pCommandBuffers[index]);
2518 }
2519 }
2520 // Host access to commandBuffer must be externally synchronized
2521 }
2522
PreCallRecordBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)2523 void ThreadSafety::PreCallRecordBindBufferMemory2(
2524 VkDevice device,
2525 uint32_t bindInfoCount,
2526 const VkBindBufferMemoryInfo* pBindInfos) {
2527 StartReadObject(device);
2528 }
2529
PostCallRecordBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos,VkResult result)2530 void ThreadSafety::PostCallRecordBindBufferMemory2(
2531 VkDevice device,
2532 uint32_t bindInfoCount,
2533 const VkBindBufferMemoryInfo* pBindInfos,
2534 VkResult result) {
2535 FinishReadObject(device);
2536 }
2537
PreCallRecordBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)2538 void ThreadSafety::PreCallRecordBindImageMemory2(
2539 VkDevice device,
2540 uint32_t bindInfoCount,
2541 const VkBindImageMemoryInfo* pBindInfos) {
2542 StartReadObject(device);
2543 }
2544
PostCallRecordBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos,VkResult result)2545 void ThreadSafety::PostCallRecordBindImageMemory2(
2546 VkDevice device,
2547 uint32_t bindInfoCount,
2548 const VkBindImageMemoryInfo* pBindInfos,
2549 VkResult result) {
2550 FinishReadObject(device);
2551 }
2552
PreCallRecordGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)2553 void ThreadSafety::PreCallRecordGetDeviceGroupPeerMemoryFeatures(
2554 VkDevice device,
2555 uint32_t heapIndex,
2556 uint32_t localDeviceIndex,
2557 uint32_t remoteDeviceIndex,
2558 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
2559 StartReadObject(device);
2560 }
2561
PostCallRecordGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)2562 void ThreadSafety::PostCallRecordGetDeviceGroupPeerMemoryFeatures(
2563 VkDevice device,
2564 uint32_t heapIndex,
2565 uint32_t localDeviceIndex,
2566 uint32_t remoteDeviceIndex,
2567 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
2568 FinishReadObject(device);
2569 }
2570
PreCallRecordCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask)2571 void ThreadSafety::PreCallRecordCmdSetDeviceMask(
2572 VkCommandBuffer commandBuffer,
2573 uint32_t deviceMask) {
2574 StartWriteObject(commandBuffer);
2575 // Host access to commandBuffer must be externally synchronized
2576 }
2577
PostCallRecordCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask)2578 void ThreadSafety::PostCallRecordCmdSetDeviceMask(
2579 VkCommandBuffer commandBuffer,
2580 uint32_t deviceMask) {
2581 FinishWriteObject(commandBuffer);
2582 // Host access to commandBuffer must be externally synchronized
2583 }
2584
PreCallRecordCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)2585 void ThreadSafety::PreCallRecordCmdDispatchBase(
2586 VkCommandBuffer commandBuffer,
2587 uint32_t baseGroupX,
2588 uint32_t baseGroupY,
2589 uint32_t baseGroupZ,
2590 uint32_t groupCountX,
2591 uint32_t groupCountY,
2592 uint32_t groupCountZ) {
2593 StartWriteObject(commandBuffer);
2594 // Host access to commandBuffer must be externally synchronized
2595 }
2596
PostCallRecordCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)2597 void ThreadSafety::PostCallRecordCmdDispatchBase(
2598 VkCommandBuffer commandBuffer,
2599 uint32_t baseGroupX,
2600 uint32_t baseGroupY,
2601 uint32_t baseGroupZ,
2602 uint32_t groupCountX,
2603 uint32_t groupCountY,
2604 uint32_t groupCountZ) {
2605 FinishWriteObject(commandBuffer);
2606 // Host access to commandBuffer must be externally synchronized
2607 }
2608
PreCallRecordEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)2609 void ThreadSafety::PreCallRecordEnumeratePhysicalDeviceGroups(
2610 VkInstance instance,
2611 uint32_t* pPhysicalDeviceGroupCount,
2612 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
2613 StartReadObject(instance);
2614 }
2615
PostCallRecordEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,VkResult result)2616 void ThreadSafety::PostCallRecordEnumeratePhysicalDeviceGroups(
2617 VkInstance instance,
2618 uint32_t* pPhysicalDeviceGroupCount,
2619 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties,
2620 VkResult result) {
2621 FinishReadObject(instance);
2622 }
2623
PreCallRecordGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2624 void ThreadSafety::PreCallRecordGetImageMemoryRequirements2(
2625 VkDevice device,
2626 const VkImageMemoryRequirementsInfo2* pInfo,
2627 VkMemoryRequirements2* pMemoryRequirements) {
2628 StartReadObject(device);
2629 }
2630
PostCallRecordGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2631 void ThreadSafety::PostCallRecordGetImageMemoryRequirements2(
2632 VkDevice device,
2633 const VkImageMemoryRequirementsInfo2* pInfo,
2634 VkMemoryRequirements2* pMemoryRequirements) {
2635 FinishReadObject(device);
2636 }
2637
PreCallRecordGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2638 void ThreadSafety::PreCallRecordGetBufferMemoryRequirements2(
2639 VkDevice device,
2640 const VkBufferMemoryRequirementsInfo2* pInfo,
2641 VkMemoryRequirements2* pMemoryRequirements) {
2642 StartReadObject(device);
2643 }
2644
PostCallRecordGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2645 void ThreadSafety::PostCallRecordGetBufferMemoryRequirements2(
2646 VkDevice device,
2647 const VkBufferMemoryRequirementsInfo2* pInfo,
2648 VkMemoryRequirements2* pMemoryRequirements) {
2649 FinishReadObject(device);
2650 }
2651
PreCallRecordGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2652 void ThreadSafety::PreCallRecordGetImageSparseMemoryRequirements2(
2653 VkDevice device,
2654 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2655 uint32_t* pSparseMemoryRequirementCount,
2656 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
2657 StartReadObject(device);
2658 }
2659
PostCallRecordGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2660 void ThreadSafety::PostCallRecordGetImageSparseMemoryRequirements2(
2661 VkDevice device,
2662 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2663 uint32_t* pSparseMemoryRequirementCount,
2664 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
2665 FinishReadObject(device);
2666 }
2667
PreCallRecordTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)2668 void ThreadSafety::PreCallRecordTrimCommandPool(
2669 VkDevice device,
2670 VkCommandPool commandPool,
2671 VkCommandPoolTrimFlags flags) {
2672 StartReadObject(device);
2673 StartWriteObject(commandPool);
2674 // Host access to commandPool must be externally synchronized
2675 }
2676
PostCallRecordTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)2677 void ThreadSafety::PostCallRecordTrimCommandPool(
2678 VkDevice device,
2679 VkCommandPool commandPool,
2680 VkCommandPoolTrimFlags flags) {
2681 FinishReadObject(device);
2682 FinishWriteObject(commandPool);
2683 // Host access to commandPool must be externally synchronized
2684 }
2685
PreCallRecordGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)2686 void ThreadSafety::PreCallRecordGetDeviceQueue2(
2687 VkDevice device,
2688 const VkDeviceQueueInfo2* pQueueInfo,
2689 VkQueue* pQueue) {
2690 StartReadObject(device);
2691 }
2692
PostCallRecordGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)2693 void ThreadSafety::PostCallRecordGetDeviceQueue2(
2694 VkDevice device,
2695 const VkDeviceQueueInfo2* pQueueInfo,
2696 VkQueue* pQueue) {
2697 FinishReadObject(device);
2698 }
2699
PreCallRecordCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)2700 void ThreadSafety::PreCallRecordCreateSamplerYcbcrConversion(
2701 VkDevice device,
2702 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2703 const VkAllocationCallbacks* pAllocator,
2704 VkSamplerYcbcrConversion* pYcbcrConversion) {
2705 StartReadObject(device);
2706 }
2707
PostCallRecordCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion,VkResult result)2708 void ThreadSafety::PostCallRecordCreateSamplerYcbcrConversion(
2709 VkDevice device,
2710 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2711 const VkAllocationCallbacks* pAllocator,
2712 VkSamplerYcbcrConversion* pYcbcrConversion,
2713 VkResult result) {
2714 FinishReadObject(device);
2715 }
2716
PreCallRecordDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)2717 void ThreadSafety::PreCallRecordDestroySamplerYcbcrConversion(
2718 VkDevice device,
2719 VkSamplerYcbcrConversion ycbcrConversion,
2720 const VkAllocationCallbacks* pAllocator) {
2721 StartReadObject(device);
2722 StartWriteObject(ycbcrConversion);
2723 // Host access to ycbcrConversion must be externally synchronized
2724 }
2725
PostCallRecordDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)2726 void ThreadSafety::PostCallRecordDestroySamplerYcbcrConversion(
2727 VkDevice device,
2728 VkSamplerYcbcrConversion ycbcrConversion,
2729 const VkAllocationCallbacks* pAllocator) {
2730 FinishReadObject(device);
2731 FinishWriteObject(ycbcrConversion);
2732 // Host access to ycbcrConversion must be externally synchronized
2733 }
2734
PreCallRecordCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)2735 void ThreadSafety::PreCallRecordCreateDescriptorUpdateTemplate(
2736 VkDevice device,
2737 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2738 const VkAllocationCallbacks* pAllocator,
2739 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
2740 StartReadObject(device);
2741 }
2742
PostCallRecordCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate,VkResult result)2743 void ThreadSafety::PostCallRecordCreateDescriptorUpdateTemplate(
2744 VkDevice device,
2745 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2746 const VkAllocationCallbacks* pAllocator,
2747 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate,
2748 VkResult result) {
2749 FinishReadObject(device);
2750 }
2751
PreCallRecordDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)2752 void ThreadSafety::PreCallRecordDestroyDescriptorUpdateTemplate(
2753 VkDevice device,
2754 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2755 const VkAllocationCallbacks* pAllocator) {
2756 StartReadObject(device);
2757 StartWriteObject(descriptorUpdateTemplate);
2758 // Host access to descriptorUpdateTemplate must be externally synchronized
2759 }
2760
PostCallRecordDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)2761 void ThreadSafety::PostCallRecordDestroyDescriptorUpdateTemplate(
2762 VkDevice device,
2763 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2764 const VkAllocationCallbacks* pAllocator) {
2765 FinishReadObject(device);
2766 FinishWriteObject(descriptorUpdateTemplate);
2767 // Host access to descriptorUpdateTemplate must be externally synchronized
2768 }
2769
PreCallRecordUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)2770 void ThreadSafety::PreCallRecordUpdateDescriptorSetWithTemplate(
2771 VkDevice device,
2772 VkDescriptorSet descriptorSet,
2773 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2774 const void* pData) {
2775 StartReadObject(device);
2776 StartWriteObject(descriptorSet);
2777 StartReadObject(descriptorUpdateTemplate);
2778 // Host access to descriptorSet must be externally synchronized
2779 }
2780
PostCallRecordUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)2781 void ThreadSafety::PostCallRecordUpdateDescriptorSetWithTemplate(
2782 VkDevice device,
2783 VkDescriptorSet descriptorSet,
2784 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2785 const void* pData) {
2786 FinishReadObject(device);
2787 FinishWriteObject(descriptorSet);
2788 FinishReadObject(descriptorUpdateTemplate);
2789 // Host access to descriptorSet must be externally synchronized
2790 }
2791
PreCallRecordGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)2792 void ThreadSafety::PreCallRecordGetDescriptorSetLayoutSupport(
2793 VkDevice device,
2794 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2795 VkDescriptorSetLayoutSupport* pSupport) {
2796 StartReadObject(device);
2797 }
2798
PostCallRecordGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)2799 void ThreadSafety::PostCallRecordGetDescriptorSetLayoutSupport(
2800 VkDevice device,
2801 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2802 VkDescriptorSetLayoutSupport* pSupport) {
2803 FinishReadObject(device);
2804 }
2805
PreCallRecordDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator)2806 void ThreadSafety::PreCallRecordDestroySurfaceKHR(
2807 VkInstance instance,
2808 VkSurfaceKHR surface,
2809 const VkAllocationCallbacks* pAllocator) {
2810 StartReadObject(instance);
2811 StartWriteObject(surface);
2812 // Host access to surface must be externally synchronized
2813 }
2814
PostCallRecordDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator)2815 void ThreadSafety::PostCallRecordDestroySurfaceKHR(
2816 VkInstance instance,
2817 VkSurfaceKHR surface,
2818 const VkAllocationCallbacks* pAllocator) {
2819 FinishReadObject(instance);
2820 FinishWriteObject(surface);
2821 // Host access to surface must be externally synchronized
2822 }
2823
PreCallRecordGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported)2824 void ThreadSafety::PreCallRecordGetPhysicalDeviceSurfaceSupportKHR(
2825 VkPhysicalDevice physicalDevice,
2826 uint32_t queueFamilyIndex,
2827 VkSurfaceKHR surface,
2828 VkBool32* pSupported) {
2829 StartReadObject(surface);
2830 }
2831
PostCallRecordGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported,VkResult result)2832 void ThreadSafety::PostCallRecordGetPhysicalDeviceSurfaceSupportKHR(
2833 VkPhysicalDevice physicalDevice,
2834 uint32_t queueFamilyIndex,
2835 VkSurfaceKHR surface,
2836 VkBool32* pSupported,
2837 VkResult result) {
2838 FinishReadObject(surface);
2839 }
2840
PreCallRecordGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities)2841 void ThreadSafety::PreCallRecordGetPhysicalDeviceSurfaceCapabilitiesKHR(
2842 VkPhysicalDevice physicalDevice,
2843 VkSurfaceKHR surface,
2844 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
2845 StartReadObject(surface);
2846 }
2847
PostCallRecordGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities,VkResult result)2848 void ThreadSafety::PostCallRecordGetPhysicalDeviceSurfaceCapabilitiesKHR(
2849 VkPhysicalDevice physicalDevice,
2850 VkSurfaceKHR surface,
2851 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities,
2852 VkResult result) {
2853 FinishReadObject(surface);
2854 }
2855
PreCallRecordGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats)2856 void ThreadSafety::PreCallRecordGetPhysicalDeviceSurfaceFormatsKHR(
2857 VkPhysicalDevice physicalDevice,
2858 VkSurfaceKHR surface,
2859 uint32_t* pSurfaceFormatCount,
2860 VkSurfaceFormatKHR* pSurfaceFormats) {
2861 StartReadObject(surface);
2862 }
2863
PostCallRecordGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats,VkResult result)2864 void ThreadSafety::PostCallRecordGetPhysicalDeviceSurfaceFormatsKHR(
2865 VkPhysicalDevice physicalDevice,
2866 VkSurfaceKHR surface,
2867 uint32_t* pSurfaceFormatCount,
2868 VkSurfaceFormatKHR* pSurfaceFormats,
2869 VkResult result) {
2870 FinishReadObject(surface);
2871 }
2872
PreCallRecordGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes)2873 void ThreadSafety::PreCallRecordGetPhysicalDeviceSurfacePresentModesKHR(
2874 VkPhysicalDevice physicalDevice,
2875 VkSurfaceKHR surface,
2876 uint32_t* pPresentModeCount,
2877 VkPresentModeKHR* pPresentModes) {
2878 StartReadObject(surface);
2879 }
2880
PostCallRecordGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes,VkResult result)2881 void ThreadSafety::PostCallRecordGetPhysicalDeviceSurfacePresentModesKHR(
2882 VkPhysicalDevice physicalDevice,
2883 VkSurfaceKHR surface,
2884 uint32_t* pPresentModeCount,
2885 VkPresentModeKHR* pPresentModes,
2886 VkResult result) {
2887 FinishReadObject(surface);
2888 }
2889
PreCallRecordCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain)2890 void ThreadSafety::PreCallRecordCreateSwapchainKHR(
2891 VkDevice device,
2892 const VkSwapchainCreateInfoKHR* pCreateInfo,
2893 const VkAllocationCallbacks* pAllocator,
2894 VkSwapchainKHR* pSwapchain) {
2895 StartReadObject(device);
2896 StartWriteObject(pCreateInfo->surface);
2897 StartWriteObject(pCreateInfo->oldSwapchain);
2898 // Host access to pCreateInfo.surface,pCreateInfo.oldSwapchain must be externally synchronized
2899 }
2900
PostCallRecordCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain,VkResult result)2901 void ThreadSafety::PostCallRecordCreateSwapchainKHR(
2902 VkDevice device,
2903 const VkSwapchainCreateInfoKHR* pCreateInfo,
2904 const VkAllocationCallbacks* pAllocator,
2905 VkSwapchainKHR* pSwapchain,
2906 VkResult result) {
2907 FinishReadObject(device);
2908 FinishWriteObject(pCreateInfo->surface);
2909 FinishWriteObject(pCreateInfo->oldSwapchain);
2910 // Host access to pCreateInfo.surface,pCreateInfo.oldSwapchain must be externally synchronized
2911 }
2912
PreCallRecordDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator)2913 void ThreadSafety::PreCallRecordDestroySwapchainKHR(
2914 VkDevice device,
2915 VkSwapchainKHR swapchain,
2916 const VkAllocationCallbacks* pAllocator) {
2917 StartReadObject(device);
2918 StartWriteObject(swapchain);
2919 // Host access to swapchain must be externally synchronized
2920 }
2921
PostCallRecordDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator)2922 void ThreadSafety::PostCallRecordDestroySwapchainKHR(
2923 VkDevice device,
2924 VkSwapchainKHR swapchain,
2925 const VkAllocationCallbacks* pAllocator) {
2926 FinishReadObject(device);
2927 FinishWriteObject(swapchain);
2928 // Host access to swapchain must be externally synchronized
2929 }
2930
PreCallRecordAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex)2931 void ThreadSafety::PreCallRecordAcquireNextImageKHR(
2932 VkDevice device,
2933 VkSwapchainKHR swapchain,
2934 uint64_t timeout,
2935 VkSemaphore semaphore,
2936 VkFence fence,
2937 uint32_t* pImageIndex) {
2938 StartReadObject(device);
2939 StartWriteObject(swapchain);
2940 StartWriteObject(semaphore);
2941 StartWriteObject(fence);
2942 // Host access to swapchain must be externally synchronized
2943 // Host access to semaphore must be externally synchronized
2944 // Host access to fence must be externally synchronized
2945 }
2946
PostCallRecordAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex,VkResult result)2947 void ThreadSafety::PostCallRecordAcquireNextImageKHR(
2948 VkDevice device,
2949 VkSwapchainKHR swapchain,
2950 uint64_t timeout,
2951 VkSemaphore semaphore,
2952 VkFence fence,
2953 uint32_t* pImageIndex,
2954 VkResult result) {
2955 FinishReadObject(device);
2956 FinishWriteObject(swapchain);
2957 FinishWriteObject(semaphore);
2958 FinishWriteObject(fence);
2959 // Host access to swapchain must be externally synchronized
2960 // Host access to semaphore must be externally synchronized
2961 // Host access to fence must be externally synchronized
2962 }
2963
PreCallRecordGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities)2964 void ThreadSafety::PreCallRecordGetDeviceGroupPresentCapabilitiesKHR(
2965 VkDevice device,
2966 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
2967 StartReadObject(device);
2968 }
2969
PostCallRecordGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities,VkResult result)2970 void ThreadSafety::PostCallRecordGetDeviceGroupPresentCapabilitiesKHR(
2971 VkDevice device,
2972 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities,
2973 VkResult result) {
2974 FinishReadObject(device);
2975 }
2976
PreCallRecordGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes)2977 void ThreadSafety::PreCallRecordGetDeviceGroupSurfacePresentModesKHR(
2978 VkDevice device,
2979 VkSurfaceKHR surface,
2980 VkDeviceGroupPresentModeFlagsKHR* pModes) {
2981 StartReadObject(device);
2982 StartWriteObject(surface);
2983 // Host access to surface must be externally synchronized
2984 }
2985
PostCallRecordGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes,VkResult result)2986 void ThreadSafety::PostCallRecordGetDeviceGroupSurfacePresentModesKHR(
2987 VkDevice device,
2988 VkSurfaceKHR surface,
2989 VkDeviceGroupPresentModeFlagsKHR* pModes,
2990 VkResult result) {
2991 FinishReadObject(device);
2992 FinishWriteObject(surface);
2993 // Host access to surface must be externally synchronized
2994 }
2995
PreCallRecordGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects)2996 void ThreadSafety::PreCallRecordGetPhysicalDevicePresentRectanglesKHR(
2997 VkPhysicalDevice physicalDevice,
2998 VkSurfaceKHR surface,
2999 uint32_t* pRectCount,
3000 VkRect2D* pRects) {
3001 StartWriteObject(surface);
3002 // Host access to surface must be externally synchronized
3003 }
3004
PostCallRecordGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects,VkResult result)3005 void ThreadSafety::PostCallRecordGetPhysicalDevicePresentRectanglesKHR(
3006 VkPhysicalDevice physicalDevice,
3007 VkSurfaceKHR surface,
3008 uint32_t* pRectCount,
3009 VkRect2D* pRects,
3010 VkResult result) {
3011 FinishWriteObject(surface);
3012 // Host access to surface must be externally synchronized
3013 }
3014
PreCallRecordAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex)3015 void ThreadSafety::PreCallRecordAcquireNextImage2KHR(
3016 VkDevice device,
3017 const VkAcquireNextImageInfoKHR* pAcquireInfo,
3018 uint32_t* pImageIndex) {
3019 StartReadObject(device);
3020 }
3021
PostCallRecordAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex,VkResult result)3022 void ThreadSafety::PostCallRecordAcquireNextImage2KHR(
3023 VkDevice device,
3024 const VkAcquireNextImageInfoKHR* pAcquireInfo,
3025 uint32_t* pImageIndex,
3026 VkResult result) {
3027 FinishReadObject(device);
3028 }
3029
PreCallRecordGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays)3030 void ThreadSafety::PreCallRecordGetDisplayPlaneSupportedDisplaysKHR(
3031 VkPhysicalDevice physicalDevice,
3032 uint32_t planeIndex,
3033 uint32_t* pDisplayCount,
3034 VkDisplayKHR* pDisplays) {
3035 if (pDisplays) {
3036 for (uint32_t index = 0; index < *pDisplayCount; index++) {
3037 StartReadObject(pDisplays[index]);
3038 }
3039 }
3040 }
3041
PostCallRecordGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays,VkResult result)3042 void ThreadSafety::PostCallRecordGetDisplayPlaneSupportedDisplaysKHR(
3043 VkPhysicalDevice physicalDevice,
3044 uint32_t planeIndex,
3045 uint32_t* pDisplayCount,
3046 VkDisplayKHR* pDisplays,
3047 VkResult result) {
3048 if (pDisplays) {
3049 for (uint32_t index = 0; index < *pDisplayCount; index++) {
3050 FinishReadObject(pDisplays[index]);
3051 }
3052 }
3053 }
3054
PreCallRecordGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties)3055 void ThreadSafety::PreCallRecordGetDisplayModePropertiesKHR(
3056 VkPhysicalDevice physicalDevice,
3057 VkDisplayKHR display,
3058 uint32_t* pPropertyCount,
3059 VkDisplayModePropertiesKHR* pProperties) {
3060 StartReadObject(display);
3061 }
3062
PostCallRecordGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties,VkResult result)3063 void ThreadSafety::PostCallRecordGetDisplayModePropertiesKHR(
3064 VkPhysicalDevice physicalDevice,
3065 VkDisplayKHR display,
3066 uint32_t* pPropertyCount,
3067 VkDisplayModePropertiesKHR* pProperties,
3068 VkResult result) {
3069 FinishReadObject(display);
3070 }
3071
PreCallRecordCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode)3072 void ThreadSafety::PreCallRecordCreateDisplayModeKHR(
3073 VkPhysicalDevice physicalDevice,
3074 VkDisplayKHR display,
3075 const VkDisplayModeCreateInfoKHR* pCreateInfo,
3076 const VkAllocationCallbacks* pAllocator,
3077 VkDisplayModeKHR* pMode) {
3078 StartWriteObject(display);
3079 // Host access to display must be externally synchronized
3080 }
3081
PostCallRecordCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode,VkResult result)3082 void ThreadSafety::PostCallRecordCreateDisplayModeKHR(
3083 VkPhysicalDevice physicalDevice,
3084 VkDisplayKHR display,
3085 const VkDisplayModeCreateInfoKHR* pCreateInfo,
3086 const VkAllocationCallbacks* pAllocator,
3087 VkDisplayModeKHR* pMode,
3088 VkResult result) {
3089 FinishWriteObject(display);
3090 // Host access to display must be externally synchronized
3091 }
3092
PreCallRecordGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities)3093 void ThreadSafety::PreCallRecordGetDisplayPlaneCapabilitiesKHR(
3094 VkPhysicalDevice physicalDevice,
3095 VkDisplayModeKHR mode,
3096 uint32_t planeIndex,
3097 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
3098 StartWriteObject(mode);
3099 // Host access to mode must be externally synchronized
3100 }
3101
PostCallRecordGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities,VkResult result)3102 void ThreadSafety::PostCallRecordGetDisplayPlaneCapabilitiesKHR(
3103 VkPhysicalDevice physicalDevice,
3104 VkDisplayModeKHR mode,
3105 uint32_t planeIndex,
3106 VkDisplayPlaneCapabilitiesKHR* pCapabilities,
3107 VkResult result) {
3108 FinishWriteObject(mode);
3109 // Host access to mode must be externally synchronized
3110 }
3111
PreCallRecordCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)3112 void ThreadSafety::PreCallRecordCreateDisplayPlaneSurfaceKHR(
3113 VkInstance instance,
3114 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
3115 const VkAllocationCallbacks* pAllocator,
3116 VkSurfaceKHR* pSurface) {
3117 StartReadObject(instance);
3118 }
3119
PostCallRecordCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)3120 void ThreadSafety::PostCallRecordCreateDisplayPlaneSurfaceKHR(
3121 VkInstance instance,
3122 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
3123 const VkAllocationCallbacks* pAllocator,
3124 VkSurfaceKHR* pSurface,
3125 VkResult result) {
3126 FinishReadObject(instance);
3127 }
3128
PreCallRecordCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains)3129 void ThreadSafety::PreCallRecordCreateSharedSwapchainsKHR(
3130 VkDevice device,
3131 uint32_t swapchainCount,
3132 const VkSwapchainCreateInfoKHR* pCreateInfos,
3133 const VkAllocationCallbacks* pAllocator,
3134 VkSwapchainKHR* pSwapchains) {
3135 StartReadObject(device);
3136 if (pCreateInfos) {
3137 for (uint32_t index=0; index < swapchainCount; index++) {
3138 StartWriteObject(pCreateInfos[index].surface);
3139 StartWriteObject(pCreateInfos[index].oldSwapchain);
3140 }
3141 }
3142 if (pSwapchains) {
3143 for (uint32_t index = 0; index < swapchainCount; index++) {
3144 StartReadObject(pSwapchains[index]);
3145 }
3146 }
3147 // Host access to pCreateInfos[].surface,pCreateInfos[].oldSwapchain must be externally synchronized
3148 }
3149
PostCallRecordCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains,VkResult result)3150 void ThreadSafety::PostCallRecordCreateSharedSwapchainsKHR(
3151 VkDevice device,
3152 uint32_t swapchainCount,
3153 const VkSwapchainCreateInfoKHR* pCreateInfos,
3154 const VkAllocationCallbacks* pAllocator,
3155 VkSwapchainKHR* pSwapchains,
3156 VkResult result) {
3157 FinishReadObject(device);
3158 if (pCreateInfos) {
3159 for (uint32_t index=0; index < swapchainCount; index++) {
3160 FinishWriteObject(pCreateInfos[index].surface);
3161 FinishWriteObject(pCreateInfos[index].oldSwapchain);
3162 }
3163 }
3164 if (pSwapchains) {
3165 for (uint32_t index = 0; index < swapchainCount; index++) {
3166 FinishReadObject(pSwapchains[index]);
3167 }
3168 }
3169 // Host access to pCreateInfos[].surface,pCreateInfos[].oldSwapchain must be externally synchronized
3170 }
3171
3172 #ifdef VK_USE_PLATFORM_XLIB_KHR
3173
PreCallRecordCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)3174 void ThreadSafety::PreCallRecordCreateXlibSurfaceKHR(
3175 VkInstance instance,
3176 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
3177 const VkAllocationCallbacks* pAllocator,
3178 VkSurfaceKHR* pSurface) {
3179 StartReadObject(instance);
3180 }
3181
PostCallRecordCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)3182 void ThreadSafety::PostCallRecordCreateXlibSurfaceKHR(
3183 VkInstance instance,
3184 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
3185 const VkAllocationCallbacks* pAllocator,
3186 VkSurfaceKHR* pSurface,
3187 VkResult result) {
3188 FinishReadObject(instance);
3189 }
3190 #endif // VK_USE_PLATFORM_XLIB_KHR
3191
3192 #ifdef VK_USE_PLATFORM_XCB_KHR
3193
PreCallRecordCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)3194 void ThreadSafety::PreCallRecordCreateXcbSurfaceKHR(
3195 VkInstance instance,
3196 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
3197 const VkAllocationCallbacks* pAllocator,
3198 VkSurfaceKHR* pSurface) {
3199 StartReadObject(instance);
3200 }
3201
PostCallRecordCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)3202 void ThreadSafety::PostCallRecordCreateXcbSurfaceKHR(
3203 VkInstance instance,
3204 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
3205 const VkAllocationCallbacks* pAllocator,
3206 VkSurfaceKHR* pSurface,
3207 VkResult result) {
3208 FinishReadObject(instance);
3209 }
3210 #endif // VK_USE_PLATFORM_XCB_KHR
3211
3212 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
3213
PreCallRecordCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)3214 void ThreadSafety::PreCallRecordCreateWaylandSurfaceKHR(
3215 VkInstance instance,
3216 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
3217 const VkAllocationCallbacks* pAllocator,
3218 VkSurfaceKHR* pSurface) {
3219 StartReadObject(instance);
3220 }
3221
PostCallRecordCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)3222 void ThreadSafety::PostCallRecordCreateWaylandSurfaceKHR(
3223 VkInstance instance,
3224 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
3225 const VkAllocationCallbacks* pAllocator,
3226 VkSurfaceKHR* pSurface,
3227 VkResult result) {
3228 FinishReadObject(instance);
3229 }
3230 #endif // VK_USE_PLATFORM_WAYLAND_KHR
3231
3232 #ifdef VK_USE_PLATFORM_ANDROID_KHR
3233
PreCallRecordCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)3234 void ThreadSafety::PreCallRecordCreateAndroidSurfaceKHR(
3235 VkInstance instance,
3236 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
3237 const VkAllocationCallbacks* pAllocator,
3238 VkSurfaceKHR* pSurface) {
3239 StartReadObject(instance);
3240 }
3241
PostCallRecordCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)3242 void ThreadSafety::PostCallRecordCreateAndroidSurfaceKHR(
3243 VkInstance instance,
3244 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
3245 const VkAllocationCallbacks* pAllocator,
3246 VkSurfaceKHR* pSurface,
3247 VkResult result) {
3248 FinishReadObject(instance);
3249 }
3250 #endif // VK_USE_PLATFORM_ANDROID_KHR
3251
3252 #ifdef VK_USE_PLATFORM_WIN32_KHR
3253
PreCallRecordCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)3254 void ThreadSafety::PreCallRecordCreateWin32SurfaceKHR(
3255 VkInstance instance,
3256 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
3257 const VkAllocationCallbacks* pAllocator,
3258 VkSurfaceKHR* pSurface) {
3259 StartReadObject(instance);
3260 }
3261
PostCallRecordCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)3262 void ThreadSafety::PostCallRecordCreateWin32SurfaceKHR(
3263 VkInstance instance,
3264 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
3265 const VkAllocationCallbacks* pAllocator,
3266 VkSurfaceKHR* pSurface,
3267 VkResult result) {
3268 FinishReadObject(instance);
3269 }
3270 #endif // VK_USE_PLATFORM_WIN32_KHR
3271
PreCallRecordGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)3272 void ThreadSafety::PreCallRecordGetDeviceGroupPeerMemoryFeaturesKHR(
3273 VkDevice device,
3274 uint32_t heapIndex,
3275 uint32_t localDeviceIndex,
3276 uint32_t remoteDeviceIndex,
3277 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
3278 StartReadObject(device);
3279 }
3280
PostCallRecordGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)3281 void ThreadSafety::PostCallRecordGetDeviceGroupPeerMemoryFeaturesKHR(
3282 VkDevice device,
3283 uint32_t heapIndex,
3284 uint32_t localDeviceIndex,
3285 uint32_t remoteDeviceIndex,
3286 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
3287 FinishReadObject(device);
3288 }
3289
PreCallRecordCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask)3290 void ThreadSafety::PreCallRecordCmdSetDeviceMaskKHR(
3291 VkCommandBuffer commandBuffer,
3292 uint32_t deviceMask) {
3293 StartWriteObject(commandBuffer);
3294 // Host access to commandBuffer must be externally synchronized
3295 }
3296
PostCallRecordCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask)3297 void ThreadSafety::PostCallRecordCmdSetDeviceMaskKHR(
3298 VkCommandBuffer commandBuffer,
3299 uint32_t deviceMask) {
3300 FinishWriteObject(commandBuffer);
3301 // Host access to commandBuffer must be externally synchronized
3302 }
3303
PreCallRecordCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)3304 void ThreadSafety::PreCallRecordCmdDispatchBaseKHR(
3305 VkCommandBuffer commandBuffer,
3306 uint32_t baseGroupX,
3307 uint32_t baseGroupY,
3308 uint32_t baseGroupZ,
3309 uint32_t groupCountX,
3310 uint32_t groupCountY,
3311 uint32_t groupCountZ) {
3312 StartWriteObject(commandBuffer);
3313 // Host access to commandBuffer must be externally synchronized
3314 }
3315
PostCallRecordCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)3316 void ThreadSafety::PostCallRecordCmdDispatchBaseKHR(
3317 VkCommandBuffer commandBuffer,
3318 uint32_t baseGroupX,
3319 uint32_t baseGroupY,
3320 uint32_t baseGroupZ,
3321 uint32_t groupCountX,
3322 uint32_t groupCountY,
3323 uint32_t groupCountZ) {
3324 FinishWriteObject(commandBuffer);
3325 // Host access to commandBuffer must be externally synchronized
3326 }
3327
PreCallRecordTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)3328 void ThreadSafety::PreCallRecordTrimCommandPoolKHR(
3329 VkDevice device,
3330 VkCommandPool commandPool,
3331 VkCommandPoolTrimFlags flags) {
3332 StartReadObject(device);
3333 StartWriteObject(commandPool);
3334 // Host access to commandPool must be externally synchronized
3335 }
3336
PostCallRecordTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)3337 void ThreadSafety::PostCallRecordTrimCommandPoolKHR(
3338 VkDevice device,
3339 VkCommandPool commandPool,
3340 VkCommandPoolTrimFlags flags) {
3341 FinishReadObject(device);
3342 FinishWriteObject(commandPool);
3343 // Host access to commandPool must be externally synchronized
3344 }
3345
PreCallRecordEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)3346 void ThreadSafety::PreCallRecordEnumeratePhysicalDeviceGroupsKHR(
3347 VkInstance instance,
3348 uint32_t* pPhysicalDeviceGroupCount,
3349 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
3350 StartReadObject(instance);
3351 }
3352
PostCallRecordEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,VkResult result)3353 void ThreadSafety::PostCallRecordEnumeratePhysicalDeviceGroupsKHR(
3354 VkInstance instance,
3355 uint32_t* pPhysicalDeviceGroupCount,
3356 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties,
3357 VkResult result) {
3358 FinishReadObject(instance);
3359 }
3360
3361 #ifdef VK_USE_PLATFORM_WIN32_KHR
3362
PreCallRecordGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3363 void ThreadSafety::PreCallRecordGetMemoryWin32HandleKHR(
3364 VkDevice device,
3365 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3366 HANDLE* pHandle) {
3367 StartReadObject(device);
3368 }
3369
PostCallRecordGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,VkResult result)3370 void ThreadSafety::PostCallRecordGetMemoryWin32HandleKHR(
3371 VkDevice device,
3372 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3373 HANDLE* pHandle,
3374 VkResult result) {
3375 FinishReadObject(device);
3376 }
3377
PreCallRecordGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties)3378 void ThreadSafety::PreCallRecordGetMemoryWin32HandlePropertiesKHR(
3379 VkDevice device,
3380 VkExternalMemoryHandleTypeFlagBits handleType,
3381 HANDLE handle,
3382 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
3383 StartReadObject(device);
3384 }
3385
PostCallRecordGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties,VkResult result)3386 void ThreadSafety::PostCallRecordGetMemoryWin32HandlePropertiesKHR(
3387 VkDevice device,
3388 VkExternalMemoryHandleTypeFlagBits handleType,
3389 HANDLE handle,
3390 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties,
3391 VkResult result) {
3392 FinishReadObject(device);
3393 }
3394 #endif // VK_USE_PLATFORM_WIN32_KHR
3395
PreCallRecordGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd)3396 void ThreadSafety::PreCallRecordGetMemoryFdKHR(
3397 VkDevice device,
3398 const VkMemoryGetFdInfoKHR* pGetFdInfo,
3399 int* pFd) {
3400 StartReadObject(device);
3401 }
3402
PostCallRecordGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd,VkResult result)3403 void ThreadSafety::PostCallRecordGetMemoryFdKHR(
3404 VkDevice device,
3405 const VkMemoryGetFdInfoKHR* pGetFdInfo,
3406 int* pFd,
3407 VkResult result) {
3408 FinishReadObject(device);
3409 }
3410
PreCallRecordGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties)3411 void ThreadSafety::PreCallRecordGetMemoryFdPropertiesKHR(
3412 VkDevice device,
3413 VkExternalMemoryHandleTypeFlagBits handleType,
3414 int fd,
3415 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
3416 StartReadObject(device);
3417 }
3418
PostCallRecordGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties,VkResult result)3419 void ThreadSafety::PostCallRecordGetMemoryFdPropertiesKHR(
3420 VkDevice device,
3421 VkExternalMemoryHandleTypeFlagBits handleType,
3422 int fd,
3423 VkMemoryFdPropertiesKHR* pMemoryFdProperties,
3424 VkResult result) {
3425 FinishReadObject(device);
3426 }
3427
3428 #ifdef VK_USE_PLATFORM_WIN32_KHR
3429 #endif // VK_USE_PLATFORM_WIN32_KHR
3430
3431 #ifdef VK_USE_PLATFORM_WIN32_KHR
3432
PreCallRecordImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo)3433 void ThreadSafety::PreCallRecordImportSemaphoreWin32HandleKHR(
3434 VkDevice device,
3435 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
3436 StartReadObject(device);
3437 }
3438
PostCallRecordImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo,VkResult result)3439 void ThreadSafety::PostCallRecordImportSemaphoreWin32HandleKHR(
3440 VkDevice device,
3441 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo,
3442 VkResult result) {
3443 FinishReadObject(device);
3444 }
3445
PreCallRecordGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3446 void ThreadSafety::PreCallRecordGetSemaphoreWin32HandleKHR(
3447 VkDevice device,
3448 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3449 HANDLE* pHandle) {
3450 StartReadObject(device);
3451 }
3452
PostCallRecordGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,VkResult result)3453 void ThreadSafety::PostCallRecordGetSemaphoreWin32HandleKHR(
3454 VkDevice device,
3455 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3456 HANDLE* pHandle,
3457 VkResult result) {
3458 FinishReadObject(device);
3459 }
3460 #endif // VK_USE_PLATFORM_WIN32_KHR
3461
PreCallRecordImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)3462 void ThreadSafety::PreCallRecordImportSemaphoreFdKHR(
3463 VkDevice device,
3464 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
3465 StartReadObject(device);
3466 }
3467
PostCallRecordImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo,VkResult result)3468 void ThreadSafety::PostCallRecordImportSemaphoreFdKHR(
3469 VkDevice device,
3470 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo,
3471 VkResult result) {
3472 FinishReadObject(device);
3473 }
3474
PreCallRecordGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)3475 void ThreadSafety::PreCallRecordGetSemaphoreFdKHR(
3476 VkDevice device,
3477 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
3478 int* pFd) {
3479 StartReadObject(device);
3480 }
3481
PostCallRecordGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd,VkResult result)3482 void ThreadSafety::PostCallRecordGetSemaphoreFdKHR(
3483 VkDevice device,
3484 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
3485 int* pFd,
3486 VkResult result) {
3487 FinishReadObject(device);
3488 }
3489
PreCallRecordCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites)3490 void ThreadSafety::PreCallRecordCmdPushDescriptorSetKHR(
3491 VkCommandBuffer commandBuffer,
3492 VkPipelineBindPoint pipelineBindPoint,
3493 VkPipelineLayout layout,
3494 uint32_t set,
3495 uint32_t descriptorWriteCount,
3496 const VkWriteDescriptorSet* pDescriptorWrites) {
3497 StartWriteObject(commandBuffer);
3498 StartReadObject(layout);
3499 // Host access to commandBuffer must be externally synchronized
3500 }
3501
PostCallRecordCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites)3502 void ThreadSafety::PostCallRecordCmdPushDescriptorSetKHR(
3503 VkCommandBuffer commandBuffer,
3504 VkPipelineBindPoint pipelineBindPoint,
3505 VkPipelineLayout layout,
3506 uint32_t set,
3507 uint32_t descriptorWriteCount,
3508 const VkWriteDescriptorSet* pDescriptorWrites) {
3509 FinishWriteObject(commandBuffer);
3510 FinishReadObject(layout);
3511 // Host access to commandBuffer must be externally synchronized
3512 }
3513
PreCallRecordCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData)3514 void ThreadSafety::PreCallRecordCmdPushDescriptorSetWithTemplateKHR(
3515 VkCommandBuffer commandBuffer,
3516 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3517 VkPipelineLayout layout,
3518 uint32_t set,
3519 const void* pData) {
3520 StartWriteObject(commandBuffer);
3521 StartReadObject(descriptorUpdateTemplate);
3522 StartReadObject(layout);
3523 // Host access to commandBuffer must be externally synchronized
3524 }
3525
PostCallRecordCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData)3526 void ThreadSafety::PostCallRecordCmdPushDescriptorSetWithTemplateKHR(
3527 VkCommandBuffer commandBuffer,
3528 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3529 VkPipelineLayout layout,
3530 uint32_t set,
3531 const void* pData) {
3532 FinishWriteObject(commandBuffer);
3533 FinishReadObject(descriptorUpdateTemplate);
3534 FinishReadObject(layout);
3535 // Host access to commandBuffer must be externally synchronized
3536 }
3537
PreCallRecordCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)3538 void ThreadSafety::PreCallRecordCreateDescriptorUpdateTemplateKHR(
3539 VkDevice device,
3540 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
3541 const VkAllocationCallbacks* pAllocator,
3542 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
3543 StartReadObject(device);
3544 }
3545
PostCallRecordCreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate,VkResult result)3546 void ThreadSafety::PostCallRecordCreateDescriptorUpdateTemplateKHR(
3547 VkDevice device,
3548 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
3549 const VkAllocationCallbacks* pAllocator,
3550 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate,
3551 VkResult result) {
3552 FinishReadObject(device);
3553 }
3554
PreCallRecordDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)3555 void ThreadSafety::PreCallRecordDestroyDescriptorUpdateTemplateKHR(
3556 VkDevice device,
3557 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3558 const VkAllocationCallbacks* pAllocator) {
3559 StartReadObject(device);
3560 StartWriteObject(descriptorUpdateTemplate);
3561 // Host access to descriptorUpdateTemplate must be externally synchronized
3562 }
3563
PostCallRecordDestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)3564 void ThreadSafety::PostCallRecordDestroyDescriptorUpdateTemplateKHR(
3565 VkDevice device,
3566 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3567 const VkAllocationCallbacks* pAllocator) {
3568 FinishReadObject(device);
3569 FinishWriteObject(descriptorUpdateTemplate);
3570 // Host access to descriptorUpdateTemplate must be externally synchronized
3571 }
3572
PreCallRecordUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)3573 void ThreadSafety::PreCallRecordUpdateDescriptorSetWithTemplateKHR(
3574 VkDevice device,
3575 VkDescriptorSet descriptorSet,
3576 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3577 const void* pData) {
3578 StartReadObject(device);
3579 StartWriteObject(descriptorSet);
3580 StartReadObject(descriptorUpdateTemplate);
3581 // Host access to descriptorSet must be externally synchronized
3582 }
3583
PostCallRecordUpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)3584 void ThreadSafety::PostCallRecordUpdateDescriptorSetWithTemplateKHR(
3585 VkDevice device,
3586 VkDescriptorSet descriptorSet,
3587 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3588 const void* pData) {
3589 FinishReadObject(device);
3590 FinishWriteObject(descriptorSet);
3591 FinishReadObject(descriptorUpdateTemplate);
3592 // Host access to descriptorSet must be externally synchronized
3593 }
3594
PreCallRecordCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2KHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)3595 void ThreadSafety::PreCallRecordCreateRenderPass2KHR(
3596 VkDevice device,
3597 const VkRenderPassCreateInfo2KHR* pCreateInfo,
3598 const VkAllocationCallbacks* pAllocator,
3599 VkRenderPass* pRenderPass) {
3600 StartReadObject(device);
3601 }
3602
PostCallRecordCreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2KHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass,VkResult result)3603 void ThreadSafety::PostCallRecordCreateRenderPass2KHR(
3604 VkDevice device,
3605 const VkRenderPassCreateInfo2KHR* pCreateInfo,
3606 const VkAllocationCallbacks* pAllocator,
3607 VkRenderPass* pRenderPass,
3608 VkResult result) {
3609 FinishReadObject(device);
3610 }
3611
PreCallRecordCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfoKHR * pSubpassBeginInfo)3612 void ThreadSafety::PreCallRecordCmdBeginRenderPass2KHR(
3613 VkCommandBuffer commandBuffer,
3614 const VkRenderPassBeginInfo* pRenderPassBegin,
3615 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
3616 StartWriteObject(commandBuffer);
3617 // Host access to commandBuffer must be externally synchronized
3618 }
3619
PostCallRecordCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfoKHR * pSubpassBeginInfo)3620 void ThreadSafety::PostCallRecordCmdBeginRenderPass2KHR(
3621 VkCommandBuffer commandBuffer,
3622 const VkRenderPassBeginInfo* pRenderPassBegin,
3623 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
3624 FinishWriteObject(commandBuffer);
3625 // Host access to commandBuffer must be externally synchronized
3626 }
3627
PreCallRecordCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfoKHR * pSubpassBeginInfo,const VkSubpassEndInfoKHR * pSubpassEndInfo)3628 void ThreadSafety::PreCallRecordCmdNextSubpass2KHR(
3629 VkCommandBuffer commandBuffer,
3630 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
3631 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
3632 StartWriteObject(commandBuffer);
3633 // Host access to commandBuffer must be externally synchronized
3634 }
3635
PostCallRecordCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfoKHR * pSubpassBeginInfo,const VkSubpassEndInfoKHR * pSubpassEndInfo)3636 void ThreadSafety::PostCallRecordCmdNextSubpass2KHR(
3637 VkCommandBuffer commandBuffer,
3638 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
3639 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
3640 FinishWriteObject(commandBuffer);
3641 // Host access to commandBuffer must be externally synchronized
3642 }
3643
PreCallRecordCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfoKHR * pSubpassEndInfo)3644 void ThreadSafety::PreCallRecordCmdEndRenderPass2KHR(
3645 VkCommandBuffer commandBuffer,
3646 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
3647 StartWriteObject(commandBuffer);
3648 // Host access to commandBuffer must be externally synchronized
3649 }
3650
PostCallRecordCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfoKHR * pSubpassEndInfo)3651 void ThreadSafety::PostCallRecordCmdEndRenderPass2KHR(
3652 VkCommandBuffer commandBuffer,
3653 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
3654 FinishWriteObject(commandBuffer);
3655 // Host access to commandBuffer must be externally synchronized
3656 }
3657
PreCallRecordGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain)3658 void ThreadSafety::PreCallRecordGetSwapchainStatusKHR(
3659 VkDevice device,
3660 VkSwapchainKHR swapchain) {
3661 StartReadObject(device);
3662 StartWriteObject(swapchain);
3663 // Host access to swapchain must be externally synchronized
3664 }
3665
PostCallRecordGetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain,VkResult result)3666 void ThreadSafety::PostCallRecordGetSwapchainStatusKHR(
3667 VkDevice device,
3668 VkSwapchainKHR swapchain,
3669 VkResult result) {
3670 FinishReadObject(device);
3671 FinishWriteObject(swapchain);
3672 // Host access to swapchain must be externally synchronized
3673 }
3674
3675 #ifdef VK_USE_PLATFORM_WIN32_KHR
3676
PreCallRecordImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo)3677 void ThreadSafety::PreCallRecordImportFenceWin32HandleKHR(
3678 VkDevice device,
3679 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
3680 StartReadObject(device);
3681 }
3682
PostCallRecordImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo,VkResult result)3683 void ThreadSafety::PostCallRecordImportFenceWin32HandleKHR(
3684 VkDevice device,
3685 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo,
3686 VkResult result) {
3687 FinishReadObject(device);
3688 }
3689
PreCallRecordGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3690 void ThreadSafety::PreCallRecordGetFenceWin32HandleKHR(
3691 VkDevice device,
3692 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3693 HANDLE* pHandle) {
3694 StartReadObject(device);
3695 }
3696
PostCallRecordGetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,VkResult result)3697 void ThreadSafety::PostCallRecordGetFenceWin32HandleKHR(
3698 VkDevice device,
3699 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3700 HANDLE* pHandle,
3701 VkResult result) {
3702 FinishReadObject(device);
3703 }
3704 #endif // VK_USE_PLATFORM_WIN32_KHR
3705
PreCallRecordImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo)3706 void ThreadSafety::PreCallRecordImportFenceFdKHR(
3707 VkDevice device,
3708 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
3709 StartReadObject(device);
3710 }
3711
PostCallRecordImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo,VkResult result)3712 void ThreadSafety::PostCallRecordImportFenceFdKHR(
3713 VkDevice device,
3714 const VkImportFenceFdInfoKHR* pImportFenceFdInfo,
3715 VkResult result) {
3716 FinishReadObject(device);
3717 }
3718
PreCallRecordGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd)3719 void ThreadSafety::PreCallRecordGetFenceFdKHR(
3720 VkDevice device,
3721 const VkFenceGetFdInfoKHR* pGetFdInfo,
3722 int* pFd) {
3723 StartReadObject(device);
3724 }
3725
PostCallRecordGetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd,VkResult result)3726 void ThreadSafety::PostCallRecordGetFenceFdKHR(
3727 VkDevice device,
3728 const VkFenceGetFdInfoKHR* pGetFdInfo,
3729 int* pFd,
3730 VkResult result) {
3731 FinishReadObject(device);
3732 }
3733
PreCallRecordGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties)3734 void ThreadSafety::PreCallRecordGetDisplayModeProperties2KHR(
3735 VkPhysicalDevice physicalDevice,
3736 VkDisplayKHR display,
3737 uint32_t* pPropertyCount,
3738 VkDisplayModeProperties2KHR* pProperties) {
3739 StartReadObject(display);
3740 }
3741
PostCallRecordGetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModeProperties2KHR * pProperties,VkResult result)3742 void ThreadSafety::PostCallRecordGetDisplayModeProperties2KHR(
3743 VkPhysicalDevice physicalDevice,
3744 VkDisplayKHR display,
3745 uint32_t* pPropertyCount,
3746 VkDisplayModeProperties2KHR* pProperties,
3747 VkResult result) {
3748 FinishReadObject(display);
3749 }
3750
PreCallRecordGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3751 void ThreadSafety::PreCallRecordGetImageMemoryRequirements2KHR(
3752 VkDevice device,
3753 const VkImageMemoryRequirementsInfo2* pInfo,
3754 VkMemoryRequirements2* pMemoryRequirements) {
3755 StartReadObject(device);
3756 }
3757
PostCallRecordGetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3758 void ThreadSafety::PostCallRecordGetImageMemoryRequirements2KHR(
3759 VkDevice device,
3760 const VkImageMemoryRequirementsInfo2* pInfo,
3761 VkMemoryRequirements2* pMemoryRequirements) {
3762 FinishReadObject(device);
3763 }
3764
PreCallRecordGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3765 void ThreadSafety::PreCallRecordGetBufferMemoryRequirements2KHR(
3766 VkDevice device,
3767 const VkBufferMemoryRequirementsInfo2* pInfo,
3768 VkMemoryRequirements2* pMemoryRequirements) {
3769 StartReadObject(device);
3770 }
3771
PostCallRecordGetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3772 void ThreadSafety::PostCallRecordGetBufferMemoryRequirements2KHR(
3773 VkDevice device,
3774 const VkBufferMemoryRequirementsInfo2* pInfo,
3775 VkMemoryRequirements2* pMemoryRequirements) {
3776 FinishReadObject(device);
3777 }
3778
PreCallRecordGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)3779 void ThreadSafety::PreCallRecordGetImageSparseMemoryRequirements2KHR(
3780 VkDevice device,
3781 const VkImageSparseMemoryRequirementsInfo2* pInfo,
3782 uint32_t* pSparseMemoryRequirementCount,
3783 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
3784 StartReadObject(device);
3785 }
3786
PostCallRecordGetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)3787 void ThreadSafety::PostCallRecordGetImageSparseMemoryRequirements2KHR(
3788 VkDevice device,
3789 const VkImageSparseMemoryRequirementsInfo2* pInfo,
3790 uint32_t* pSparseMemoryRequirementCount,
3791 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
3792 FinishReadObject(device);
3793 }
3794
PreCallRecordCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)3795 void ThreadSafety::PreCallRecordCreateSamplerYcbcrConversionKHR(
3796 VkDevice device,
3797 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
3798 const VkAllocationCallbacks* pAllocator,
3799 VkSamplerYcbcrConversion* pYcbcrConversion) {
3800 StartReadObject(device);
3801 }
3802
PostCallRecordCreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion,VkResult result)3803 void ThreadSafety::PostCallRecordCreateSamplerYcbcrConversionKHR(
3804 VkDevice device,
3805 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
3806 const VkAllocationCallbacks* pAllocator,
3807 VkSamplerYcbcrConversion* pYcbcrConversion,
3808 VkResult result) {
3809 FinishReadObject(device);
3810 }
3811
PreCallRecordDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)3812 void ThreadSafety::PreCallRecordDestroySamplerYcbcrConversionKHR(
3813 VkDevice device,
3814 VkSamplerYcbcrConversion ycbcrConversion,
3815 const VkAllocationCallbacks* pAllocator) {
3816 StartReadObject(device);
3817 StartWriteObject(ycbcrConversion);
3818 // Host access to ycbcrConversion must be externally synchronized
3819 }
3820
PostCallRecordDestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)3821 void ThreadSafety::PostCallRecordDestroySamplerYcbcrConversionKHR(
3822 VkDevice device,
3823 VkSamplerYcbcrConversion ycbcrConversion,
3824 const VkAllocationCallbacks* pAllocator) {
3825 FinishReadObject(device);
3826 FinishWriteObject(ycbcrConversion);
3827 // Host access to ycbcrConversion must be externally synchronized
3828 }
3829
PreCallRecordBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)3830 void ThreadSafety::PreCallRecordBindBufferMemory2KHR(
3831 VkDevice device,
3832 uint32_t bindInfoCount,
3833 const VkBindBufferMemoryInfo* pBindInfos) {
3834 StartReadObject(device);
3835 }
3836
PostCallRecordBindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos,VkResult result)3837 void ThreadSafety::PostCallRecordBindBufferMemory2KHR(
3838 VkDevice device,
3839 uint32_t bindInfoCount,
3840 const VkBindBufferMemoryInfo* pBindInfos,
3841 VkResult result) {
3842 FinishReadObject(device);
3843 }
3844
PreCallRecordBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)3845 void ThreadSafety::PreCallRecordBindImageMemory2KHR(
3846 VkDevice device,
3847 uint32_t bindInfoCount,
3848 const VkBindImageMemoryInfo* pBindInfos) {
3849 StartReadObject(device);
3850 }
3851
PostCallRecordBindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos,VkResult result)3852 void ThreadSafety::PostCallRecordBindImageMemory2KHR(
3853 VkDevice device,
3854 uint32_t bindInfoCount,
3855 const VkBindImageMemoryInfo* pBindInfos,
3856 VkResult result) {
3857 FinishReadObject(device);
3858 }
3859
PreCallRecordGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)3860 void ThreadSafety::PreCallRecordGetDescriptorSetLayoutSupportKHR(
3861 VkDevice device,
3862 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
3863 VkDescriptorSetLayoutSupport* pSupport) {
3864 StartReadObject(device);
3865 }
3866
PostCallRecordGetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)3867 void ThreadSafety::PostCallRecordGetDescriptorSetLayoutSupportKHR(
3868 VkDevice device,
3869 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
3870 VkDescriptorSetLayoutSupport* pSupport) {
3871 FinishReadObject(device);
3872 }
3873
PreCallRecordCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)3874 void ThreadSafety::PreCallRecordCmdDrawIndirectCountKHR(
3875 VkCommandBuffer commandBuffer,
3876 VkBuffer buffer,
3877 VkDeviceSize offset,
3878 VkBuffer countBuffer,
3879 VkDeviceSize countBufferOffset,
3880 uint32_t maxDrawCount,
3881 uint32_t stride) {
3882 StartWriteObject(commandBuffer);
3883 StartReadObject(buffer);
3884 StartReadObject(countBuffer);
3885 // Host access to commandBuffer must be externally synchronized
3886 }
3887
PostCallRecordCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)3888 void ThreadSafety::PostCallRecordCmdDrawIndirectCountKHR(
3889 VkCommandBuffer commandBuffer,
3890 VkBuffer buffer,
3891 VkDeviceSize offset,
3892 VkBuffer countBuffer,
3893 VkDeviceSize countBufferOffset,
3894 uint32_t maxDrawCount,
3895 uint32_t stride) {
3896 FinishWriteObject(commandBuffer);
3897 FinishReadObject(buffer);
3898 FinishReadObject(countBuffer);
3899 // Host access to commandBuffer must be externally synchronized
3900 }
3901
PreCallRecordCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)3902 void ThreadSafety::PreCallRecordCmdDrawIndexedIndirectCountKHR(
3903 VkCommandBuffer commandBuffer,
3904 VkBuffer buffer,
3905 VkDeviceSize offset,
3906 VkBuffer countBuffer,
3907 VkDeviceSize countBufferOffset,
3908 uint32_t maxDrawCount,
3909 uint32_t stride) {
3910 StartWriteObject(commandBuffer);
3911 StartReadObject(buffer);
3912 StartReadObject(countBuffer);
3913 // Host access to commandBuffer must be externally synchronized
3914 }
3915
PostCallRecordCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)3916 void ThreadSafety::PostCallRecordCmdDrawIndexedIndirectCountKHR(
3917 VkCommandBuffer commandBuffer,
3918 VkBuffer buffer,
3919 VkDeviceSize offset,
3920 VkBuffer countBuffer,
3921 VkDeviceSize countBufferOffset,
3922 uint32_t maxDrawCount,
3923 uint32_t stride) {
3924 FinishWriteObject(commandBuffer);
3925 FinishReadObject(buffer);
3926 FinishReadObject(countBuffer);
3927 // Host access to commandBuffer must be externally synchronized
3928 }
3929
PreCallRecordGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties)3930 void ThreadSafety::PreCallRecordGetPipelineExecutablePropertiesKHR(
3931 VkDevice device,
3932 const VkPipelineInfoKHR* pPipelineInfo,
3933 uint32_t* pExecutableCount,
3934 VkPipelineExecutablePropertiesKHR* pProperties) {
3935 StartReadObject(device);
3936 }
3937
PostCallRecordGetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties,VkResult result)3938 void ThreadSafety::PostCallRecordGetPipelineExecutablePropertiesKHR(
3939 VkDevice device,
3940 const VkPipelineInfoKHR* pPipelineInfo,
3941 uint32_t* pExecutableCount,
3942 VkPipelineExecutablePropertiesKHR* pProperties,
3943 VkResult result) {
3944 FinishReadObject(device);
3945 }
3946
PreCallRecordGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics)3947 void ThreadSafety::PreCallRecordGetPipelineExecutableStatisticsKHR(
3948 VkDevice device,
3949 const VkPipelineExecutableInfoKHR* pExecutableInfo,
3950 uint32_t* pStatisticCount,
3951 VkPipelineExecutableStatisticKHR* pStatistics) {
3952 StartReadObject(device);
3953 }
3954
PostCallRecordGetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics,VkResult result)3955 void ThreadSafety::PostCallRecordGetPipelineExecutableStatisticsKHR(
3956 VkDevice device,
3957 const VkPipelineExecutableInfoKHR* pExecutableInfo,
3958 uint32_t* pStatisticCount,
3959 VkPipelineExecutableStatisticKHR* pStatistics,
3960 VkResult result) {
3961 FinishReadObject(device);
3962 }
3963
PreCallRecordGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations)3964 void ThreadSafety::PreCallRecordGetPipelineExecutableInternalRepresentationsKHR(
3965 VkDevice device,
3966 const VkPipelineExecutableInfoKHR* pExecutableInfo,
3967 uint32_t* pInternalRepresentationCount,
3968 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {
3969 StartReadObject(device);
3970 }
3971
PostCallRecordGetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations,VkResult result)3972 void ThreadSafety::PostCallRecordGetPipelineExecutableInternalRepresentationsKHR(
3973 VkDevice device,
3974 const VkPipelineExecutableInfoKHR* pExecutableInfo,
3975 uint32_t* pInternalRepresentationCount,
3976 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations,
3977 VkResult result) {
3978 FinishReadObject(device);
3979 }
3980
PreCallRecordCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback)3981 void ThreadSafety::PreCallRecordCreateDebugReportCallbackEXT(
3982 VkInstance instance,
3983 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
3984 const VkAllocationCallbacks* pAllocator,
3985 VkDebugReportCallbackEXT* pCallback) {
3986 StartReadObject(instance);
3987 }
3988
PostCallRecordCreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugReportCallbackEXT * pCallback,VkResult result)3989 void ThreadSafety::PostCallRecordCreateDebugReportCallbackEXT(
3990 VkInstance instance,
3991 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
3992 const VkAllocationCallbacks* pAllocator,
3993 VkDebugReportCallbackEXT* pCallback,
3994 VkResult result) {
3995 FinishReadObject(instance);
3996 }
3997
PreCallRecordDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator)3998 void ThreadSafety::PreCallRecordDestroyDebugReportCallbackEXT(
3999 VkInstance instance,
4000 VkDebugReportCallbackEXT callback,
4001 const VkAllocationCallbacks* pAllocator) {
4002 StartReadObject(instance);
4003 StartWriteObject(callback);
4004 // Host access to callback must be externally synchronized
4005 }
4006
PostCallRecordDestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator)4007 void ThreadSafety::PostCallRecordDestroyDebugReportCallbackEXT(
4008 VkInstance instance,
4009 VkDebugReportCallbackEXT callback,
4010 const VkAllocationCallbacks* pAllocator) {
4011 FinishReadObject(instance);
4012 FinishWriteObject(callback);
4013 // Host access to callback must be externally synchronized
4014 }
4015
PreCallRecordDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage)4016 void ThreadSafety::PreCallRecordDebugReportMessageEXT(
4017 VkInstance instance,
4018 VkDebugReportFlagsEXT flags,
4019 VkDebugReportObjectTypeEXT objectType,
4020 uint64_t object,
4021 size_t location,
4022 int32_t messageCode,
4023 const char* pLayerPrefix,
4024 const char* pMessage) {
4025 StartReadObject(instance);
4026 }
4027
PostCallRecordDebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage)4028 void ThreadSafety::PostCallRecordDebugReportMessageEXT(
4029 VkInstance instance,
4030 VkDebugReportFlagsEXT flags,
4031 VkDebugReportObjectTypeEXT objectType,
4032 uint64_t object,
4033 size_t location,
4034 int32_t messageCode,
4035 const char* pLayerPrefix,
4036 const char* pMessage) {
4037 FinishReadObject(instance);
4038 }
4039 // TODO - not wrapping EXT function vkDebugMarkerSetObjectTagEXT
4040 // TODO - not wrapping EXT function vkDebugMarkerSetObjectNameEXT
4041 // TODO - not wrapping EXT function vkCmdDebugMarkerBeginEXT
4042 // TODO - not wrapping EXT function vkCmdDebugMarkerEndEXT
4043 // TODO - not wrapping EXT function vkCmdDebugMarkerInsertEXT
4044
PreCallRecordCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes)4045 void ThreadSafety::PreCallRecordCmdBindTransformFeedbackBuffersEXT(
4046 VkCommandBuffer commandBuffer,
4047 uint32_t firstBinding,
4048 uint32_t bindingCount,
4049 const VkBuffer* pBuffers,
4050 const VkDeviceSize* pOffsets,
4051 const VkDeviceSize* pSizes) {
4052 StartWriteObject(commandBuffer);
4053 if (pBuffers) {
4054 for (uint32_t index = 0; index < bindingCount; index++) {
4055 StartReadObject(pBuffers[index]);
4056 }
4057 }
4058 // Host access to commandBuffer must be externally synchronized
4059 }
4060
PostCallRecordCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes)4061 void ThreadSafety::PostCallRecordCmdBindTransformFeedbackBuffersEXT(
4062 VkCommandBuffer commandBuffer,
4063 uint32_t firstBinding,
4064 uint32_t bindingCount,
4065 const VkBuffer* pBuffers,
4066 const VkDeviceSize* pOffsets,
4067 const VkDeviceSize* pSizes) {
4068 FinishWriteObject(commandBuffer);
4069 if (pBuffers) {
4070 for (uint32_t index = 0; index < bindingCount; index++) {
4071 FinishReadObject(pBuffers[index]);
4072 }
4073 }
4074 // Host access to commandBuffer must be externally synchronized
4075 }
4076
PreCallRecordCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)4077 void ThreadSafety::PreCallRecordCmdBeginTransformFeedbackEXT(
4078 VkCommandBuffer commandBuffer,
4079 uint32_t firstCounterBuffer,
4080 uint32_t counterBufferCount,
4081 const VkBuffer* pCounterBuffers,
4082 const VkDeviceSize* pCounterBufferOffsets) {
4083 StartWriteObject(commandBuffer);
4084 if (pCounterBuffers) {
4085 for (uint32_t index = 0; index < counterBufferCount; index++) {
4086 StartReadObject(pCounterBuffers[index]);
4087 }
4088 }
4089 // Host access to commandBuffer must be externally synchronized
4090 }
4091
PostCallRecordCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)4092 void ThreadSafety::PostCallRecordCmdBeginTransformFeedbackEXT(
4093 VkCommandBuffer commandBuffer,
4094 uint32_t firstCounterBuffer,
4095 uint32_t counterBufferCount,
4096 const VkBuffer* pCounterBuffers,
4097 const VkDeviceSize* pCounterBufferOffsets) {
4098 FinishWriteObject(commandBuffer);
4099 if (pCounterBuffers) {
4100 for (uint32_t index = 0; index < counterBufferCount; index++) {
4101 FinishReadObject(pCounterBuffers[index]);
4102 }
4103 }
4104 // Host access to commandBuffer must be externally synchronized
4105 }
4106
PreCallRecordCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)4107 void ThreadSafety::PreCallRecordCmdEndTransformFeedbackEXT(
4108 VkCommandBuffer commandBuffer,
4109 uint32_t firstCounterBuffer,
4110 uint32_t counterBufferCount,
4111 const VkBuffer* pCounterBuffers,
4112 const VkDeviceSize* pCounterBufferOffsets) {
4113 StartWriteObject(commandBuffer);
4114 if (pCounterBuffers) {
4115 for (uint32_t index = 0; index < counterBufferCount; index++) {
4116 StartReadObject(pCounterBuffers[index]);
4117 }
4118 }
4119 // Host access to commandBuffer must be externally synchronized
4120 }
4121
PostCallRecordCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)4122 void ThreadSafety::PostCallRecordCmdEndTransformFeedbackEXT(
4123 VkCommandBuffer commandBuffer,
4124 uint32_t firstCounterBuffer,
4125 uint32_t counterBufferCount,
4126 const VkBuffer* pCounterBuffers,
4127 const VkDeviceSize* pCounterBufferOffsets) {
4128 FinishWriteObject(commandBuffer);
4129 if (pCounterBuffers) {
4130 for (uint32_t index = 0; index < counterBufferCount; index++) {
4131 FinishReadObject(pCounterBuffers[index]);
4132 }
4133 }
4134 // Host access to commandBuffer must be externally synchronized
4135 }
4136
PreCallRecordCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index)4137 void ThreadSafety::PreCallRecordCmdBeginQueryIndexedEXT(
4138 VkCommandBuffer commandBuffer,
4139 VkQueryPool queryPool,
4140 uint32_t query,
4141 VkQueryControlFlags flags,
4142 uint32_t index) {
4143 StartWriteObject(commandBuffer);
4144 StartReadObject(queryPool);
4145 // Host access to commandBuffer must be externally synchronized
4146 }
4147
PostCallRecordCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index)4148 void ThreadSafety::PostCallRecordCmdBeginQueryIndexedEXT(
4149 VkCommandBuffer commandBuffer,
4150 VkQueryPool queryPool,
4151 uint32_t query,
4152 VkQueryControlFlags flags,
4153 uint32_t index) {
4154 FinishWriteObject(commandBuffer);
4155 FinishReadObject(queryPool);
4156 // Host access to commandBuffer must be externally synchronized
4157 }
4158
PreCallRecordCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index)4159 void ThreadSafety::PreCallRecordCmdEndQueryIndexedEXT(
4160 VkCommandBuffer commandBuffer,
4161 VkQueryPool queryPool,
4162 uint32_t query,
4163 uint32_t index) {
4164 StartWriteObject(commandBuffer);
4165 StartReadObject(queryPool);
4166 // Host access to commandBuffer must be externally synchronized
4167 }
4168
PostCallRecordCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index)4169 void ThreadSafety::PostCallRecordCmdEndQueryIndexedEXT(
4170 VkCommandBuffer commandBuffer,
4171 VkQueryPool queryPool,
4172 uint32_t query,
4173 uint32_t index) {
4174 FinishWriteObject(commandBuffer);
4175 FinishReadObject(queryPool);
4176 // Host access to commandBuffer must be externally synchronized
4177 }
4178
PreCallRecordCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride)4179 void ThreadSafety::PreCallRecordCmdDrawIndirectByteCountEXT(
4180 VkCommandBuffer commandBuffer,
4181 uint32_t instanceCount,
4182 uint32_t firstInstance,
4183 VkBuffer counterBuffer,
4184 VkDeviceSize counterBufferOffset,
4185 uint32_t counterOffset,
4186 uint32_t vertexStride) {
4187 StartWriteObject(commandBuffer);
4188 StartReadObject(counterBuffer);
4189 // Host access to commandBuffer must be externally synchronized
4190 }
4191
PostCallRecordCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride)4192 void ThreadSafety::PostCallRecordCmdDrawIndirectByteCountEXT(
4193 VkCommandBuffer commandBuffer,
4194 uint32_t instanceCount,
4195 uint32_t firstInstance,
4196 VkBuffer counterBuffer,
4197 VkDeviceSize counterBufferOffset,
4198 uint32_t counterOffset,
4199 uint32_t vertexStride) {
4200 FinishWriteObject(commandBuffer);
4201 FinishReadObject(counterBuffer);
4202 // Host access to commandBuffer must be externally synchronized
4203 }
4204
PreCallRecordGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo)4205 void ThreadSafety::PreCallRecordGetImageViewHandleNVX(
4206 VkDevice device,
4207 const VkImageViewHandleInfoNVX* pInfo) {
4208 StartReadObject(device);
4209 }
4210
PostCallRecordGetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo)4211 void ThreadSafety::PostCallRecordGetImageViewHandleNVX(
4212 VkDevice device,
4213 const VkImageViewHandleInfoNVX* pInfo) {
4214 FinishReadObject(device);
4215 }
4216
PreCallRecordCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4217 void ThreadSafety::PreCallRecordCmdDrawIndirectCountAMD(
4218 VkCommandBuffer commandBuffer,
4219 VkBuffer buffer,
4220 VkDeviceSize offset,
4221 VkBuffer countBuffer,
4222 VkDeviceSize countBufferOffset,
4223 uint32_t maxDrawCount,
4224 uint32_t stride) {
4225 StartWriteObject(commandBuffer);
4226 StartReadObject(buffer);
4227 StartReadObject(countBuffer);
4228 // Host access to commandBuffer must be externally synchronized
4229 }
4230
PostCallRecordCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4231 void ThreadSafety::PostCallRecordCmdDrawIndirectCountAMD(
4232 VkCommandBuffer commandBuffer,
4233 VkBuffer buffer,
4234 VkDeviceSize offset,
4235 VkBuffer countBuffer,
4236 VkDeviceSize countBufferOffset,
4237 uint32_t maxDrawCount,
4238 uint32_t stride) {
4239 FinishWriteObject(commandBuffer);
4240 FinishReadObject(buffer);
4241 FinishReadObject(countBuffer);
4242 // Host access to commandBuffer must be externally synchronized
4243 }
4244
PreCallRecordCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4245 void ThreadSafety::PreCallRecordCmdDrawIndexedIndirectCountAMD(
4246 VkCommandBuffer commandBuffer,
4247 VkBuffer buffer,
4248 VkDeviceSize offset,
4249 VkBuffer countBuffer,
4250 VkDeviceSize countBufferOffset,
4251 uint32_t maxDrawCount,
4252 uint32_t stride) {
4253 StartWriteObject(commandBuffer);
4254 StartReadObject(buffer);
4255 StartReadObject(countBuffer);
4256 // Host access to commandBuffer must be externally synchronized
4257 }
4258
PostCallRecordCmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4259 void ThreadSafety::PostCallRecordCmdDrawIndexedIndirectCountAMD(
4260 VkCommandBuffer commandBuffer,
4261 VkBuffer buffer,
4262 VkDeviceSize offset,
4263 VkBuffer countBuffer,
4264 VkDeviceSize countBufferOffset,
4265 uint32_t maxDrawCount,
4266 uint32_t stride) {
4267 FinishWriteObject(commandBuffer);
4268 FinishReadObject(buffer);
4269 FinishReadObject(countBuffer);
4270 // Host access to commandBuffer must be externally synchronized
4271 }
4272
PreCallRecordGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo)4273 void ThreadSafety::PreCallRecordGetShaderInfoAMD(
4274 VkDevice device,
4275 VkPipeline pipeline,
4276 VkShaderStageFlagBits shaderStage,
4277 VkShaderInfoTypeAMD infoType,
4278 size_t* pInfoSize,
4279 void* pInfo) {
4280 StartReadObject(device);
4281 StartReadObject(pipeline);
4282 }
4283
PostCallRecordGetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo,VkResult result)4284 void ThreadSafety::PostCallRecordGetShaderInfoAMD(
4285 VkDevice device,
4286 VkPipeline pipeline,
4287 VkShaderStageFlagBits shaderStage,
4288 VkShaderInfoTypeAMD infoType,
4289 size_t* pInfoSize,
4290 void* pInfo,
4291 VkResult result) {
4292 FinishReadObject(device);
4293 FinishReadObject(pipeline);
4294 }
4295
4296 #ifdef VK_USE_PLATFORM_GGP
4297
PreCallRecordCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)4298 void ThreadSafety::PreCallRecordCreateStreamDescriptorSurfaceGGP(
4299 VkInstance instance,
4300 const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo,
4301 const VkAllocationCallbacks* pAllocator,
4302 VkSurfaceKHR* pSurface) {
4303 StartReadObject(instance);
4304 }
4305
PostCallRecordCreateStreamDescriptorSurfaceGGP(VkInstance instance,const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)4306 void ThreadSafety::PostCallRecordCreateStreamDescriptorSurfaceGGP(
4307 VkInstance instance,
4308 const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo,
4309 const VkAllocationCallbacks* pAllocator,
4310 VkSurfaceKHR* pSurface,
4311 VkResult result) {
4312 FinishReadObject(instance);
4313 }
4314 #endif // VK_USE_PLATFORM_GGP
4315
4316 #ifdef VK_USE_PLATFORM_WIN32_KHR
4317
PreCallRecordGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle)4318 void ThreadSafety::PreCallRecordGetMemoryWin32HandleNV(
4319 VkDevice device,
4320 VkDeviceMemory memory,
4321 VkExternalMemoryHandleTypeFlagsNV handleType,
4322 HANDLE* pHandle) {
4323 StartReadObject(device);
4324 StartReadObject(memory);
4325 }
4326
PostCallRecordGetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle,VkResult result)4327 void ThreadSafety::PostCallRecordGetMemoryWin32HandleNV(
4328 VkDevice device,
4329 VkDeviceMemory memory,
4330 VkExternalMemoryHandleTypeFlagsNV handleType,
4331 HANDLE* pHandle,
4332 VkResult result) {
4333 FinishReadObject(device);
4334 FinishReadObject(memory);
4335 }
4336 #endif // VK_USE_PLATFORM_WIN32_KHR
4337
4338 #ifdef VK_USE_PLATFORM_WIN32_KHR
4339 #endif // VK_USE_PLATFORM_WIN32_KHR
4340
4341 #ifdef VK_USE_PLATFORM_VI_NN
4342
PreCallRecordCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)4343 void ThreadSafety::PreCallRecordCreateViSurfaceNN(
4344 VkInstance instance,
4345 const VkViSurfaceCreateInfoNN* pCreateInfo,
4346 const VkAllocationCallbacks* pAllocator,
4347 VkSurfaceKHR* pSurface) {
4348 StartReadObject(instance);
4349 }
4350
PostCallRecordCreateViSurfaceNN(VkInstance instance,const VkViSurfaceCreateInfoNN * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)4351 void ThreadSafety::PostCallRecordCreateViSurfaceNN(
4352 VkInstance instance,
4353 const VkViSurfaceCreateInfoNN* pCreateInfo,
4354 const VkAllocationCallbacks* pAllocator,
4355 VkSurfaceKHR* pSurface,
4356 VkResult result) {
4357 FinishReadObject(instance);
4358 }
4359 #endif // VK_USE_PLATFORM_VI_NN
4360
PreCallRecordCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin)4361 void ThreadSafety::PreCallRecordCmdBeginConditionalRenderingEXT(
4362 VkCommandBuffer commandBuffer,
4363 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
4364 StartWriteObject(commandBuffer);
4365 // Host access to commandBuffer must be externally synchronized
4366 }
4367
PostCallRecordCmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin)4368 void ThreadSafety::PostCallRecordCmdBeginConditionalRenderingEXT(
4369 VkCommandBuffer commandBuffer,
4370 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
4371 FinishWriteObject(commandBuffer);
4372 // Host access to commandBuffer must be externally synchronized
4373 }
4374
PreCallRecordCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer)4375 void ThreadSafety::PreCallRecordCmdEndConditionalRenderingEXT(
4376 VkCommandBuffer commandBuffer) {
4377 StartWriteObject(commandBuffer);
4378 // Host access to commandBuffer must be externally synchronized
4379 }
4380
PostCallRecordCmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer)4381 void ThreadSafety::PostCallRecordCmdEndConditionalRenderingEXT(
4382 VkCommandBuffer commandBuffer) {
4383 FinishWriteObject(commandBuffer);
4384 // Host access to commandBuffer must be externally synchronized
4385 }
4386
PreCallRecordCmdProcessCommandsNVX(VkCommandBuffer commandBuffer,const VkCmdProcessCommandsInfoNVX * pProcessCommandsInfo)4387 void ThreadSafety::PreCallRecordCmdProcessCommandsNVX(
4388 VkCommandBuffer commandBuffer,
4389 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
4390 StartWriteObject(commandBuffer);
4391 // Host access to commandBuffer must be externally synchronized
4392 }
4393
PostCallRecordCmdProcessCommandsNVX(VkCommandBuffer commandBuffer,const VkCmdProcessCommandsInfoNVX * pProcessCommandsInfo)4394 void ThreadSafety::PostCallRecordCmdProcessCommandsNVX(
4395 VkCommandBuffer commandBuffer,
4396 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
4397 FinishWriteObject(commandBuffer);
4398 // Host access to commandBuffer must be externally synchronized
4399 }
4400
PreCallRecordCmdReserveSpaceForCommandsNVX(VkCommandBuffer commandBuffer,const VkCmdReserveSpaceForCommandsInfoNVX * pReserveSpaceInfo)4401 void ThreadSafety::PreCallRecordCmdReserveSpaceForCommandsNVX(
4402 VkCommandBuffer commandBuffer,
4403 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
4404 StartWriteObject(commandBuffer);
4405 // Host access to commandBuffer must be externally synchronized
4406 }
4407
PostCallRecordCmdReserveSpaceForCommandsNVX(VkCommandBuffer commandBuffer,const VkCmdReserveSpaceForCommandsInfoNVX * pReserveSpaceInfo)4408 void ThreadSafety::PostCallRecordCmdReserveSpaceForCommandsNVX(
4409 VkCommandBuffer commandBuffer,
4410 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
4411 FinishWriteObject(commandBuffer);
4412 // Host access to commandBuffer must be externally synchronized
4413 }
4414
PreCallRecordCreateIndirectCommandsLayoutNVX(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNVX * pIndirectCommandsLayout)4415 void ThreadSafety::PreCallRecordCreateIndirectCommandsLayoutNVX(
4416 VkDevice device,
4417 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
4418 const VkAllocationCallbacks* pAllocator,
4419 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
4420 StartReadObject(device);
4421 }
4422
PostCallRecordCreateIndirectCommandsLayoutNVX(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNVX * pIndirectCommandsLayout,VkResult result)4423 void ThreadSafety::PostCallRecordCreateIndirectCommandsLayoutNVX(
4424 VkDevice device,
4425 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
4426 const VkAllocationCallbacks* pAllocator,
4427 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout,
4428 VkResult result) {
4429 FinishReadObject(device);
4430 }
4431
PreCallRecordDestroyIndirectCommandsLayoutNVX(VkDevice device,VkIndirectCommandsLayoutNVX indirectCommandsLayout,const VkAllocationCallbacks * pAllocator)4432 void ThreadSafety::PreCallRecordDestroyIndirectCommandsLayoutNVX(
4433 VkDevice device,
4434 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
4435 const VkAllocationCallbacks* pAllocator) {
4436 StartReadObject(device);
4437 StartReadObject(indirectCommandsLayout);
4438 }
4439
PostCallRecordDestroyIndirectCommandsLayoutNVX(VkDevice device,VkIndirectCommandsLayoutNVX indirectCommandsLayout,const VkAllocationCallbacks * pAllocator)4440 void ThreadSafety::PostCallRecordDestroyIndirectCommandsLayoutNVX(
4441 VkDevice device,
4442 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
4443 const VkAllocationCallbacks* pAllocator) {
4444 FinishReadObject(device);
4445 FinishReadObject(indirectCommandsLayout);
4446 }
4447
PreCallRecordCreateObjectTableNVX(VkDevice device,const VkObjectTableCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkObjectTableNVX * pObjectTable)4448 void ThreadSafety::PreCallRecordCreateObjectTableNVX(
4449 VkDevice device,
4450 const VkObjectTableCreateInfoNVX* pCreateInfo,
4451 const VkAllocationCallbacks* pAllocator,
4452 VkObjectTableNVX* pObjectTable) {
4453 StartReadObject(device);
4454 }
4455
PostCallRecordCreateObjectTableNVX(VkDevice device,const VkObjectTableCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkObjectTableNVX * pObjectTable,VkResult result)4456 void ThreadSafety::PostCallRecordCreateObjectTableNVX(
4457 VkDevice device,
4458 const VkObjectTableCreateInfoNVX* pCreateInfo,
4459 const VkAllocationCallbacks* pAllocator,
4460 VkObjectTableNVX* pObjectTable,
4461 VkResult result) {
4462 FinishReadObject(device);
4463 }
4464
PreCallRecordDestroyObjectTableNVX(VkDevice device,VkObjectTableNVX objectTable,const VkAllocationCallbacks * pAllocator)4465 void ThreadSafety::PreCallRecordDestroyObjectTableNVX(
4466 VkDevice device,
4467 VkObjectTableNVX objectTable,
4468 const VkAllocationCallbacks* pAllocator) {
4469 StartReadObject(device);
4470 StartWriteObject(objectTable);
4471 // Host access to objectTable must be externally synchronized
4472 }
4473
PostCallRecordDestroyObjectTableNVX(VkDevice device,VkObjectTableNVX objectTable,const VkAllocationCallbacks * pAllocator)4474 void ThreadSafety::PostCallRecordDestroyObjectTableNVX(
4475 VkDevice device,
4476 VkObjectTableNVX objectTable,
4477 const VkAllocationCallbacks* pAllocator) {
4478 FinishReadObject(device);
4479 FinishWriteObject(objectTable);
4480 // Host access to objectTable must be externally synchronized
4481 }
4482
PreCallRecordRegisterObjectsNVX(VkDevice device,VkObjectTableNVX objectTable,uint32_t objectCount,const VkObjectTableEntryNVX * const * ppObjectTableEntries,const uint32_t * pObjectIndices)4483 void ThreadSafety::PreCallRecordRegisterObjectsNVX(
4484 VkDevice device,
4485 VkObjectTableNVX objectTable,
4486 uint32_t objectCount,
4487 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
4488 const uint32_t* pObjectIndices) {
4489 StartReadObject(device);
4490 StartWriteObject(objectTable);
4491 // Host access to objectTable must be externally synchronized
4492 }
4493
PostCallRecordRegisterObjectsNVX(VkDevice device,VkObjectTableNVX objectTable,uint32_t objectCount,const VkObjectTableEntryNVX * const * ppObjectTableEntries,const uint32_t * pObjectIndices,VkResult result)4494 void ThreadSafety::PostCallRecordRegisterObjectsNVX(
4495 VkDevice device,
4496 VkObjectTableNVX objectTable,
4497 uint32_t objectCount,
4498 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
4499 const uint32_t* pObjectIndices,
4500 VkResult result) {
4501 FinishReadObject(device);
4502 FinishWriteObject(objectTable);
4503 // Host access to objectTable must be externally synchronized
4504 }
4505
PreCallRecordUnregisterObjectsNVX(VkDevice device,VkObjectTableNVX objectTable,uint32_t objectCount,const VkObjectEntryTypeNVX * pObjectEntryTypes,const uint32_t * pObjectIndices)4506 void ThreadSafety::PreCallRecordUnregisterObjectsNVX(
4507 VkDevice device,
4508 VkObjectTableNVX objectTable,
4509 uint32_t objectCount,
4510 const VkObjectEntryTypeNVX* pObjectEntryTypes,
4511 const uint32_t* pObjectIndices) {
4512 StartReadObject(device);
4513 StartWriteObject(objectTable);
4514 // Host access to objectTable must be externally synchronized
4515 }
4516
PostCallRecordUnregisterObjectsNVX(VkDevice device,VkObjectTableNVX objectTable,uint32_t objectCount,const VkObjectEntryTypeNVX * pObjectEntryTypes,const uint32_t * pObjectIndices,VkResult result)4517 void ThreadSafety::PostCallRecordUnregisterObjectsNVX(
4518 VkDevice device,
4519 VkObjectTableNVX objectTable,
4520 uint32_t objectCount,
4521 const VkObjectEntryTypeNVX* pObjectEntryTypes,
4522 const uint32_t* pObjectIndices,
4523 VkResult result) {
4524 FinishReadObject(device);
4525 FinishWriteObject(objectTable);
4526 // Host access to objectTable must be externally synchronized
4527 }
4528
PreCallRecordCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings)4529 void ThreadSafety::PreCallRecordCmdSetViewportWScalingNV(
4530 VkCommandBuffer commandBuffer,
4531 uint32_t firstViewport,
4532 uint32_t viewportCount,
4533 const VkViewportWScalingNV* pViewportWScalings) {
4534 StartWriteObject(commandBuffer);
4535 // Host access to commandBuffer must be externally synchronized
4536 }
4537
PostCallRecordCmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings)4538 void ThreadSafety::PostCallRecordCmdSetViewportWScalingNV(
4539 VkCommandBuffer commandBuffer,
4540 uint32_t firstViewport,
4541 uint32_t viewportCount,
4542 const VkViewportWScalingNV* pViewportWScalings) {
4543 FinishWriteObject(commandBuffer);
4544 // Host access to commandBuffer must be externally synchronized
4545 }
4546
PreCallRecordReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display)4547 void ThreadSafety::PreCallRecordReleaseDisplayEXT(
4548 VkPhysicalDevice physicalDevice,
4549 VkDisplayKHR display) {
4550 StartReadObject(display);
4551 }
4552
PostCallRecordReleaseDisplayEXT(VkPhysicalDevice physicalDevice,VkDisplayKHR display,VkResult result)4553 void ThreadSafety::PostCallRecordReleaseDisplayEXT(
4554 VkPhysicalDevice physicalDevice,
4555 VkDisplayKHR display,
4556 VkResult result) {
4557 FinishReadObject(display);
4558 }
4559
4560 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
4561
PreCallRecordAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display)4562 void ThreadSafety::PreCallRecordAcquireXlibDisplayEXT(
4563 VkPhysicalDevice physicalDevice,
4564 Display* dpy,
4565 VkDisplayKHR display) {
4566 StartReadObject(display);
4567 }
4568
PostCallRecordAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,Display * dpy,VkDisplayKHR display,VkResult result)4569 void ThreadSafety::PostCallRecordAcquireXlibDisplayEXT(
4570 VkPhysicalDevice physicalDevice,
4571 Display* dpy,
4572 VkDisplayKHR display,
4573 VkResult result) {
4574 FinishReadObject(display);
4575 }
4576 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
4577
PreCallRecordGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities)4578 void ThreadSafety::PreCallRecordGetPhysicalDeviceSurfaceCapabilities2EXT(
4579 VkPhysicalDevice physicalDevice,
4580 VkSurfaceKHR surface,
4581 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
4582 StartReadObject(surface);
4583 }
4584
PostCallRecordGetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilities2EXT * pSurfaceCapabilities,VkResult result)4585 void ThreadSafety::PostCallRecordGetPhysicalDeviceSurfaceCapabilities2EXT(
4586 VkPhysicalDevice physicalDevice,
4587 VkSurfaceKHR surface,
4588 VkSurfaceCapabilities2EXT* pSurfaceCapabilities,
4589 VkResult result) {
4590 FinishReadObject(surface);
4591 }
4592
PreCallRecordDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo)4593 void ThreadSafety::PreCallRecordDisplayPowerControlEXT(
4594 VkDevice device,
4595 VkDisplayKHR display,
4596 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
4597 StartReadObject(device);
4598 StartReadObject(display);
4599 }
4600
PostCallRecordDisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo,VkResult result)4601 void ThreadSafety::PostCallRecordDisplayPowerControlEXT(
4602 VkDevice device,
4603 VkDisplayKHR display,
4604 const VkDisplayPowerInfoEXT* pDisplayPowerInfo,
4605 VkResult result) {
4606 FinishReadObject(device);
4607 FinishReadObject(display);
4608 }
4609
PreCallRecordRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)4610 void ThreadSafety::PreCallRecordRegisterDeviceEventEXT(
4611 VkDevice device,
4612 const VkDeviceEventInfoEXT* pDeviceEventInfo,
4613 const VkAllocationCallbacks* pAllocator,
4614 VkFence* pFence) {
4615 StartReadObject(device);
4616 }
4617
PostCallRecordRegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence,VkResult result)4618 void ThreadSafety::PostCallRecordRegisterDeviceEventEXT(
4619 VkDevice device,
4620 const VkDeviceEventInfoEXT* pDeviceEventInfo,
4621 const VkAllocationCallbacks* pAllocator,
4622 VkFence* pFence,
4623 VkResult result) {
4624 FinishReadObject(device);
4625 }
4626
PreCallRecordRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)4627 void ThreadSafety::PreCallRecordRegisterDisplayEventEXT(
4628 VkDevice device,
4629 VkDisplayKHR display,
4630 const VkDisplayEventInfoEXT* pDisplayEventInfo,
4631 const VkAllocationCallbacks* pAllocator,
4632 VkFence* pFence) {
4633 StartReadObject(device);
4634 StartReadObject(display);
4635 }
4636
PostCallRecordRegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence,VkResult result)4637 void ThreadSafety::PostCallRecordRegisterDisplayEventEXT(
4638 VkDevice device,
4639 VkDisplayKHR display,
4640 const VkDisplayEventInfoEXT* pDisplayEventInfo,
4641 const VkAllocationCallbacks* pAllocator,
4642 VkFence* pFence,
4643 VkResult result) {
4644 FinishReadObject(device);
4645 FinishReadObject(display);
4646 }
4647
PreCallRecordGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue)4648 void ThreadSafety::PreCallRecordGetSwapchainCounterEXT(
4649 VkDevice device,
4650 VkSwapchainKHR swapchain,
4651 VkSurfaceCounterFlagBitsEXT counter,
4652 uint64_t* pCounterValue) {
4653 StartReadObject(device);
4654 StartReadObject(swapchain);
4655 }
4656
PostCallRecordGetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue,VkResult result)4657 void ThreadSafety::PostCallRecordGetSwapchainCounterEXT(
4658 VkDevice device,
4659 VkSwapchainKHR swapchain,
4660 VkSurfaceCounterFlagBitsEXT counter,
4661 uint64_t* pCounterValue,
4662 VkResult result) {
4663 FinishReadObject(device);
4664 FinishReadObject(swapchain);
4665 }
4666
PreCallRecordGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties)4667 void ThreadSafety::PreCallRecordGetRefreshCycleDurationGOOGLE(
4668 VkDevice device,
4669 VkSwapchainKHR swapchain,
4670 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
4671 StartReadObject(device);
4672 StartWriteObject(swapchain);
4673 // Host access to swapchain must be externally synchronized
4674 }
4675
PostCallRecordGetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties,VkResult result)4676 void ThreadSafety::PostCallRecordGetRefreshCycleDurationGOOGLE(
4677 VkDevice device,
4678 VkSwapchainKHR swapchain,
4679 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties,
4680 VkResult result) {
4681 FinishReadObject(device);
4682 FinishWriteObject(swapchain);
4683 // Host access to swapchain must be externally synchronized
4684 }
4685
PreCallRecordGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings)4686 void ThreadSafety::PreCallRecordGetPastPresentationTimingGOOGLE(
4687 VkDevice device,
4688 VkSwapchainKHR swapchain,
4689 uint32_t* pPresentationTimingCount,
4690 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
4691 StartReadObject(device);
4692 StartWriteObject(swapchain);
4693 // Host access to swapchain must be externally synchronized
4694 }
4695
PostCallRecordGetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings,VkResult result)4696 void ThreadSafety::PostCallRecordGetPastPresentationTimingGOOGLE(
4697 VkDevice device,
4698 VkSwapchainKHR swapchain,
4699 uint32_t* pPresentationTimingCount,
4700 VkPastPresentationTimingGOOGLE* pPresentationTimings,
4701 VkResult result) {
4702 FinishReadObject(device);
4703 FinishWriteObject(swapchain);
4704 // Host access to swapchain must be externally synchronized
4705 }
4706
PreCallRecordCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles)4707 void ThreadSafety::PreCallRecordCmdSetDiscardRectangleEXT(
4708 VkCommandBuffer commandBuffer,
4709 uint32_t firstDiscardRectangle,
4710 uint32_t discardRectangleCount,
4711 const VkRect2D* pDiscardRectangles) {
4712 StartWriteObject(commandBuffer);
4713 // Host access to commandBuffer must be externally synchronized
4714 }
4715
PostCallRecordCmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles)4716 void ThreadSafety::PostCallRecordCmdSetDiscardRectangleEXT(
4717 VkCommandBuffer commandBuffer,
4718 uint32_t firstDiscardRectangle,
4719 uint32_t discardRectangleCount,
4720 const VkRect2D* pDiscardRectangles) {
4721 FinishWriteObject(commandBuffer);
4722 // Host access to commandBuffer must be externally synchronized
4723 }
4724
PreCallRecordSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata)4725 void ThreadSafety::PreCallRecordSetHdrMetadataEXT(
4726 VkDevice device,
4727 uint32_t swapchainCount,
4728 const VkSwapchainKHR* pSwapchains,
4729 const VkHdrMetadataEXT* pMetadata) {
4730 StartReadObject(device);
4731 if (pSwapchains) {
4732 for (uint32_t index = 0; index < swapchainCount; index++) {
4733 StartReadObject(pSwapchains[index]);
4734 }
4735 }
4736 }
4737
PostCallRecordSetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata)4738 void ThreadSafety::PostCallRecordSetHdrMetadataEXT(
4739 VkDevice device,
4740 uint32_t swapchainCount,
4741 const VkSwapchainKHR* pSwapchains,
4742 const VkHdrMetadataEXT* pMetadata) {
4743 FinishReadObject(device);
4744 if (pSwapchains) {
4745 for (uint32_t index = 0; index < swapchainCount; index++) {
4746 FinishReadObject(pSwapchains[index]);
4747 }
4748 }
4749 }
4750
4751 #ifdef VK_USE_PLATFORM_IOS_MVK
4752
PreCallRecordCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)4753 void ThreadSafety::PreCallRecordCreateIOSSurfaceMVK(
4754 VkInstance instance,
4755 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
4756 const VkAllocationCallbacks* pAllocator,
4757 VkSurfaceKHR* pSurface) {
4758 StartReadObject(instance);
4759 }
4760
PostCallRecordCreateIOSSurfaceMVK(VkInstance instance,const VkIOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)4761 void ThreadSafety::PostCallRecordCreateIOSSurfaceMVK(
4762 VkInstance instance,
4763 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
4764 const VkAllocationCallbacks* pAllocator,
4765 VkSurfaceKHR* pSurface,
4766 VkResult result) {
4767 FinishReadObject(instance);
4768 }
4769 #endif // VK_USE_PLATFORM_IOS_MVK
4770
4771 #ifdef VK_USE_PLATFORM_MACOS_MVK
4772
PreCallRecordCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)4773 void ThreadSafety::PreCallRecordCreateMacOSSurfaceMVK(
4774 VkInstance instance,
4775 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
4776 const VkAllocationCallbacks* pAllocator,
4777 VkSurfaceKHR* pSurface) {
4778 StartReadObject(instance);
4779 }
4780
PostCallRecordCreateMacOSSurfaceMVK(VkInstance instance,const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)4781 void ThreadSafety::PostCallRecordCreateMacOSSurfaceMVK(
4782 VkInstance instance,
4783 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
4784 const VkAllocationCallbacks* pAllocator,
4785 VkSurfaceKHR* pSurface,
4786 VkResult result) {
4787 FinishReadObject(instance);
4788 }
4789 #endif // VK_USE_PLATFORM_MACOS_MVK
4790 // TODO - not wrapping EXT function vkSetDebugUtilsObjectNameEXT
4791 // TODO - not wrapping EXT function vkSetDebugUtilsObjectTagEXT
4792
PreCallRecordQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)4793 void ThreadSafety::PreCallRecordQueueBeginDebugUtilsLabelEXT(
4794 VkQueue queue,
4795 const VkDebugUtilsLabelEXT* pLabelInfo) {
4796 StartReadObject(queue);
4797 }
4798
PostCallRecordQueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)4799 void ThreadSafety::PostCallRecordQueueBeginDebugUtilsLabelEXT(
4800 VkQueue queue,
4801 const VkDebugUtilsLabelEXT* pLabelInfo) {
4802 FinishReadObject(queue);
4803 }
4804
PreCallRecordQueueEndDebugUtilsLabelEXT(VkQueue queue)4805 void ThreadSafety::PreCallRecordQueueEndDebugUtilsLabelEXT(
4806 VkQueue queue) {
4807 StartReadObject(queue);
4808 }
4809
PostCallRecordQueueEndDebugUtilsLabelEXT(VkQueue queue)4810 void ThreadSafety::PostCallRecordQueueEndDebugUtilsLabelEXT(
4811 VkQueue queue) {
4812 FinishReadObject(queue);
4813 }
4814
PreCallRecordQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)4815 void ThreadSafety::PreCallRecordQueueInsertDebugUtilsLabelEXT(
4816 VkQueue queue,
4817 const VkDebugUtilsLabelEXT* pLabelInfo) {
4818 StartReadObject(queue);
4819 }
4820
PostCallRecordQueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)4821 void ThreadSafety::PostCallRecordQueueInsertDebugUtilsLabelEXT(
4822 VkQueue queue,
4823 const VkDebugUtilsLabelEXT* pLabelInfo) {
4824 FinishReadObject(queue);
4825 }
4826
PreCallRecordCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)4827 void ThreadSafety::PreCallRecordCmdBeginDebugUtilsLabelEXT(
4828 VkCommandBuffer commandBuffer,
4829 const VkDebugUtilsLabelEXT* pLabelInfo) {
4830 StartReadObject(commandBuffer);
4831 }
4832
PostCallRecordCmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)4833 void ThreadSafety::PostCallRecordCmdBeginDebugUtilsLabelEXT(
4834 VkCommandBuffer commandBuffer,
4835 const VkDebugUtilsLabelEXT* pLabelInfo) {
4836 FinishReadObject(commandBuffer);
4837 }
4838
PreCallRecordCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)4839 void ThreadSafety::PreCallRecordCmdEndDebugUtilsLabelEXT(
4840 VkCommandBuffer commandBuffer) {
4841 StartReadObject(commandBuffer);
4842 }
4843
PostCallRecordCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)4844 void ThreadSafety::PostCallRecordCmdEndDebugUtilsLabelEXT(
4845 VkCommandBuffer commandBuffer) {
4846 FinishReadObject(commandBuffer);
4847 }
4848
PreCallRecordCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)4849 void ThreadSafety::PreCallRecordCmdInsertDebugUtilsLabelEXT(
4850 VkCommandBuffer commandBuffer,
4851 const VkDebugUtilsLabelEXT* pLabelInfo) {
4852 StartReadObject(commandBuffer);
4853 }
4854
PostCallRecordCmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)4855 void ThreadSafety::PostCallRecordCmdInsertDebugUtilsLabelEXT(
4856 VkCommandBuffer commandBuffer,
4857 const VkDebugUtilsLabelEXT* pLabelInfo) {
4858 FinishReadObject(commandBuffer);
4859 }
4860
PreCallRecordCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger)4861 void ThreadSafety::PreCallRecordCreateDebugUtilsMessengerEXT(
4862 VkInstance instance,
4863 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
4864 const VkAllocationCallbacks* pAllocator,
4865 VkDebugUtilsMessengerEXT* pMessenger) {
4866 StartReadObject(instance);
4867 }
4868
PostCallRecordCreateDebugUtilsMessengerEXT(VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger,VkResult result)4869 void ThreadSafety::PostCallRecordCreateDebugUtilsMessengerEXT(
4870 VkInstance instance,
4871 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
4872 const VkAllocationCallbacks* pAllocator,
4873 VkDebugUtilsMessengerEXT* pMessenger,
4874 VkResult result) {
4875 FinishReadObject(instance);
4876 }
4877
PreCallRecordDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator)4878 void ThreadSafety::PreCallRecordDestroyDebugUtilsMessengerEXT(
4879 VkInstance instance,
4880 VkDebugUtilsMessengerEXT messenger,
4881 const VkAllocationCallbacks* pAllocator) {
4882 StartReadObject(instance);
4883 StartWriteObject(messenger);
4884 // Host access to messenger must be externally synchronized
4885 }
4886
PostCallRecordDestroyDebugUtilsMessengerEXT(VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator)4887 void ThreadSafety::PostCallRecordDestroyDebugUtilsMessengerEXT(
4888 VkInstance instance,
4889 VkDebugUtilsMessengerEXT messenger,
4890 const VkAllocationCallbacks* pAllocator) {
4891 FinishReadObject(instance);
4892 FinishWriteObject(messenger);
4893 // Host access to messenger must be externally synchronized
4894 }
4895
PreCallRecordSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData)4896 void ThreadSafety::PreCallRecordSubmitDebugUtilsMessageEXT(
4897 VkInstance instance,
4898 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
4899 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
4900 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
4901 StartReadObject(instance);
4902 }
4903
PostCallRecordSubmitDebugUtilsMessageEXT(VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData)4904 void ThreadSafety::PostCallRecordSubmitDebugUtilsMessageEXT(
4905 VkInstance instance,
4906 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
4907 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
4908 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
4909 FinishReadObject(instance);
4910 }
4911
4912 #ifdef VK_USE_PLATFORM_ANDROID_KHR
4913
PreCallRecordGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties)4914 void ThreadSafety::PreCallRecordGetAndroidHardwareBufferPropertiesANDROID(
4915 VkDevice device,
4916 const struct AHardwareBuffer* buffer,
4917 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
4918 StartReadObject(device);
4919 }
4920
PostCallRecordGetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties,VkResult result)4921 void ThreadSafety::PostCallRecordGetAndroidHardwareBufferPropertiesANDROID(
4922 VkDevice device,
4923 const struct AHardwareBuffer* buffer,
4924 VkAndroidHardwareBufferPropertiesANDROID* pProperties,
4925 VkResult result) {
4926 FinishReadObject(device);
4927 }
4928
PreCallRecordGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer)4929 void ThreadSafety::PreCallRecordGetMemoryAndroidHardwareBufferANDROID(
4930 VkDevice device,
4931 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
4932 struct AHardwareBuffer** pBuffer) {
4933 StartReadObject(device);
4934 }
4935
PostCallRecordGetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer,VkResult result)4936 void ThreadSafety::PostCallRecordGetMemoryAndroidHardwareBufferANDROID(
4937 VkDevice device,
4938 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
4939 struct AHardwareBuffer** pBuffer,
4940 VkResult result) {
4941 FinishReadObject(device);
4942 }
4943 #endif // VK_USE_PLATFORM_ANDROID_KHR
4944
PreCallRecordCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo)4945 void ThreadSafety::PreCallRecordCmdSetSampleLocationsEXT(
4946 VkCommandBuffer commandBuffer,
4947 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
4948 StartWriteObject(commandBuffer);
4949 // Host access to commandBuffer must be externally synchronized
4950 }
4951
PostCallRecordCmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo)4952 void ThreadSafety::PostCallRecordCmdSetSampleLocationsEXT(
4953 VkCommandBuffer commandBuffer,
4954 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
4955 FinishWriteObject(commandBuffer);
4956 // Host access to commandBuffer must be externally synchronized
4957 }
4958
PreCallRecordGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties)4959 void ThreadSafety::PreCallRecordGetImageDrmFormatModifierPropertiesEXT(
4960 VkDevice device,
4961 VkImage image,
4962 VkImageDrmFormatModifierPropertiesEXT* pProperties) {
4963 StartReadObject(device);
4964 StartReadObject(image);
4965 }
4966
PostCallRecordGetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties,VkResult result)4967 void ThreadSafety::PostCallRecordGetImageDrmFormatModifierPropertiesEXT(
4968 VkDevice device,
4969 VkImage image,
4970 VkImageDrmFormatModifierPropertiesEXT* pProperties,
4971 VkResult result) {
4972 FinishReadObject(device);
4973 FinishReadObject(image);
4974 }
4975
PreCallRecordCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache)4976 void ThreadSafety::PreCallRecordCreateValidationCacheEXT(
4977 VkDevice device,
4978 const VkValidationCacheCreateInfoEXT* pCreateInfo,
4979 const VkAllocationCallbacks* pAllocator,
4980 VkValidationCacheEXT* pValidationCache) {
4981 StartReadObject(device);
4982 }
4983
PostCallRecordCreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache,VkResult result)4984 void ThreadSafety::PostCallRecordCreateValidationCacheEXT(
4985 VkDevice device,
4986 const VkValidationCacheCreateInfoEXT* pCreateInfo,
4987 const VkAllocationCallbacks* pAllocator,
4988 VkValidationCacheEXT* pValidationCache,
4989 VkResult result) {
4990 FinishReadObject(device);
4991 }
4992
PreCallRecordDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator)4993 void ThreadSafety::PreCallRecordDestroyValidationCacheEXT(
4994 VkDevice device,
4995 VkValidationCacheEXT validationCache,
4996 const VkAllocationCallbacks* pAllocator) {
4997 StartReadObject(device);
4998 StartWriteObject(validationCache);
4999 // Host access to validationCache must be externally synchronized
5000 }
5001
PostCallRecordDestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator)5002 void ThreadSafety::PostCallRecordDestroyValidationCacheEXT(
5003 VkDevice device,
5004 VkValidationCacheEXT validationCache,
5005 const VkAllocationCallbacks* pAllocator) {
5006 FinishReadObject(device);
5007 FinishWriteObject(validationCache);
5008 // Host access to validationCache must be externally synchronized
5009 }
5010
PreCallRecordMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches)5011 void ThreadSafety::PreCallRecordMergeValidationCachesEXT(
5012 VkDevice device,
5013 VkValidationCacheEXT dstCache,
5014 uint32_t srcCacheCount,
5015 const VkValidationCacheEXT* pSrcCaches) {
5016 StartReadObject(device);
5017 StartWriteObject(dstCache);
5018 if (pSrcCaches) {
5019 for (uint32_t index = 0; index < srcCacheCount; index++) {
5020 StartReadObject(pSrcCaches[index]);
5021 }
5022 }
5023 // Host access to dstCache must be externally synchronized
5024 }
5025
PostCallRecordMergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches,VkResult result)5026 void ThreadSafety::PostCallRecordMergeValidationCachesEXT(
5027 VkDevice device,
5028 VkValidationCacheEXT dstCache,
5029 uint32_t srcCacheCount,
5030 const VkValidationCacheEXT* pSrcCaches,
5031 VkResult result) {
5032 FinishReadObject(device);
5033 FinishWriteObject(dstCache);
5034 if (pSrcCaches) {
5035 for (uint32_t index = 0; index < srcCacheCount; index++) {
5036 FinishReadObject(pSrcCaches[index]);
5037 }
5038 }
5039 // Host access to dstCache must be externally synchronized
5040 }
5041
PreCallRecordGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData)5042 void ThreadSafety::PreCallRecordGetValidationCacheDataEXT(
5043 VkDevice device,
5044 VkValidationCacheEXT validationCache,
5045 size_t* pDataSize,
5046 void* pData) {
5047 StartReadObject(device);
5048 StartReadObject(validationCache);
5049 }
5050
PostCallRecordGetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData,VkResult result)5051 void ThreadSafety::PostCallRecordGetValidationCacheDataEXT(
5052 VkDevice device,
5053 VkValidationCacheEXT validationCache,
5054 size_t* pDataSize,
5055 void* pData,
5056 VkResult result) {
5057 FinishReadObject(device);
5058 FinishReadObject(validationCache);
5059 }
5060
PreCallRecordCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout)5061 void ThreadSafety::PreCallRecordCmdBindShadingRateImageNV(
5062 VkCommandBuffer commandBuffer,
5063 VkImageView imageView,
5064 VkImageLayout imageLayout) {
5065 StartWriteObject(commandBuffer);
5066 StartReadObject(imageView);
5067 // Host access to commandBuffer must be externally synchronized
5068 }
5069
PostCallRecordCmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout)5070 void ThreadSafety::PostCallRecordCmdBindShadingRateImageNV(
5071 VkCommandBuffer commandBuffer,
5072 VkImageView imageView,
5073 VkImageLayout imageLayout) {
5074 FinishWriteObject(commandBuffer);
5075 FinishReadObject(imageView);
5076 // Host access to commandBuffer must be externally synchronized
5077 }
5078
PreCallRecordCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes)5079 void ThreadSafety::PreCallRecordCmdSetViewportShadingRatePaletteNV(
5080 VkCommandBuffer commandBuffer,
5081 uint32_t firstViewport,
5082 uint32_t viewportCount,
5083 const VkShadingRatePaletteNV* pShadingRatePalettes) {
5084 StartWriteObject(commandBuffer);
5085 // Host access to commandBuffer must be externally synchronized
5086 }
5087
PostCallRecordCmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes)5088 void ThreadSafety::PostCallRecordCmdSetViewportShadingRatePaletteNV(
5089 VkCommandBuffer commandBuffer,
5090 uint32_t firstViewport,
5091 uint32_t viewportCount,
5092 const VkShadingRatePaletteNV* pShadingRatePalettes) {
5093 FinishWriteObject(commandBuffer);
5094 // Host access to commandBuffer must be externally synchronized
5095 }
5096
PreCallRecordCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders)5097 void ThreadSafety::PreCallRecordCmdSetCoarseSampleOrderNV(
5098 VkCommandBuffer commandBuffer,
5099 VkCoarseSampleOrderTypeNV sampleOrderType,
5100 uint32_t customSampleOrderCount,
5101 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
5102 StartWriteObject(commandBuffer);
5103 // Host access to commandBuffer must be externally synchronized
5104 }
5105
PostCallRecordCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders)5106 void ThreadSafety::PostCallRecordCmdSetCoarseSampleOrderNV(
5107 VkCommandBuffer commandBuffer,
5108 VkCoarseSampleOrderTypeNV sampleOrderType,
5109 uint32_t customSampleOrderCount,
5110 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
5111 FinishWriteObject(commandBuffer);
5112 // Host access to commandBuffer must be externally synchronized
5113 }
5114
PreCallRecordCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure)5115 void ThreadSafety::PreCallRecordCreateAccelerationStructureNV(
5116 VkDevice device,
5117 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
5118 const VkAllocationCallbacks* pAllocator,
5119 VkAccelerationStructureNV* pAccelerationStructure) {
5120 StartReadObject(device);
5121 }
5122
PostCallRecordCreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure,VkResult result)5123 void ThreadSafety::PostCallRecordCreateAccelerationStructureNV(
5124 VkDevice device,
5125 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
5126 const VkAllocationCallbacks* pAllocator,
5127 VkAccelerationStructureNV* pAccelerationStructure,
5128 VkResult result) {
5129 FinishReadObject(device);
5130 }
5131
PreCallRecordDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator)5132 void ThreadSafety::PreCallRecordDestroyAccelerationStructureNV(
5133 VkDevice device,
5134 VkAccelerationStructureNV accelerationStructure,
5135 const VkAllocationCallbacks* pAllocator) {
5136 StartReadObject(device);
5137 StartReadObject(accelerationStructure);
5138 }
5139
PostCallRecordDestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator)5140 void ThreadSafety::PostCallRecordDestroyAccelerationStructureNV(
5141 VkDevice device,
5142 VkAccelerationStructureNV accelerationStructure,
5143 const VkAllocationCallbacks* pAllocator) {
5144 FinishReadObject(device);
5145 FinishReadObject(accelerationStructure);
5146 }
5147
PreCallRecordGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements)5148 void ThreadSafety::PreCallRecordGetAccelerationStructureMemoryRequirementsNV(
5149 VkDevice device,
5150 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
5151 VkMemoryRequirements2KHR* pMemoryRequirements) {
5152 StartReadObject(device);
5153 }
5154
PostCallRecordGetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements)5155 void ThreadSafety::PostCallRecordGetAccelerationStructureMemoryRequirementsNV(
5156 VkDevice device,
5157 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
5158 VkMemoryRequirements2KHR* pMemoryRequirements) {
5159 FinishReadObject(device);
5160 }
5161
PreCallRecordBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoNV * pBindInfos)5162 void ThreadSafety::PreCallRecordBindAccelerationStructureMemoryNV(
5163 VkDevice device,
5164 uint32_t bindInfoCount,
5165 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
5166 StartReadObject(device);
5167 }
5168
PostCallRecordBindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoNV * pBindInfos,VkResult result)5169 void ThreadSafety::PostCallRecordBindAccelerationStructureMemoryNV(
5170 VkDevice device,
5171 uint32_t bindInfoCount,
5172 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos,
5173 VkResult result) {
5174 FinishReadObject(device);
5175 }
5176
PreCallRecordCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkBuffer scratch,VkDeviceSize scratchOffset)5177 void ThreadSafety::PreCallRecordCmdBuildAccelerationStructureNV(
5178 VkCommandBuffer commandBuffer,
5179 const VkAccelerationStructureInfoNV* pInfo,
5180 VkBuffer instanceData,
5181 VkDeviceSize instanceOffset,
5182 VkBool32 update,
5183 VkAccelerationStructureNV dst,
5184 VkAccelerationStructureNV src,
5185 VkBuffer scratch,
5186 VkDeviceSize scratchOffset) {
5187 StartReadObject(commandBuffer);
5188 StartReadObject(instanceData);
5189 StartReadObject(dst);
5190 StartReadObject(src);
5191 StartReadObject(scratch);
5192 }
5193
PostCallRecordCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkBuffer scratch,VkDeviceSize scratchOffset)5194 void ThreadSafety::PostCallRecordCmdBuildAccelerationStructureNV(
5195 VkCommandBuffer commandBuffer,
5196 const VkAccelerationStructureInfoNV* pInfo,
5197 VkBuffer instanceData,
5198 VkDeviceSize instanceOffset,
5199 VkBool32 update,
5200 VkAccelerationStructureNV dst,
5201 VkAccelerationStructureNV src,
5202 VkBuffer scratch,
5203 VkDeviceSize scratchOffset) {
5204 FinishReadObject(commandBuffer);
5205 FinishReadObject(instanceData);
5206 FinishReadObject(dst);
5207 FinishReadObject(src);
5208 FinishReadObject(scratch);
5209 }
5210
PreCallRecordCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkCopyAccelerationStructureModeNV mode)5211 void ThreadSafety::PreCallRecordCmdCopyAccelerationStructureNV(
5212 VkCommandBuffer commandBuffer,
5213 VkAccelerationStructureNV dst,
5214 VkAccelerationStructureNV src,
5215 VkCopyAccelerationStructureModeNV mode) {
5216 StartReadObject(commandBuffer);
5217 StartReadObject(dst);
5218 StartReadObject(src);
5219 }
5220
PostCallRecordCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkCopyAccelerationStructureModeNV mode)5221 void ThreadSafety::PostCallRecordCmdCopyAccelerationStructureNV(
5222 VkCommandBuffer commandBuffer,
5223 VkAccelerationStructureNV dst,
5224 VkAccelerationStructureNV src,
5225 VkCopyAccelerationStructureModeNV mode) {
5226 FinishReadObject(commandBuffer);
5227 FinishReadObject(dst);
5228 FinishReadObject(src);
5229 }
5230
PreCallRecordCmdTraceRaysNV(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)5231 void ThreadSafety::PreCallRecordCmdTraceRaysNV(
5232 VkCommandBuffer commandBuffer,
5233 VkBuffer raygenShaderBindingTableBuffer,
5234 VkDeviceSize raygenShaderBindingOffset,
5235 VkBuffer missShaderBindingTableBuffer,
5236 VkDeviceSize missShaderBindingOffset,
5237 VkDeviceSize missShaderBindingStride,
5238 VkBuffer hitShaderBindingTableBuffer,
5239 VkDeviceSize hitShaderBindingOffset,
5240 VkDeviceSize hitShaderBindingStride,
5241 VkBuffer callableShaderBindingTableBuffer,
5242 VkDeviceSize callableShaderBindingOffset,
5243 VkDeviceSize callableShaderBindingStride,
5244 uint32_t width,
5245 uint32_t height,
5246 uint32_t depth) {
5247 StartReadObject(commandBuffer);
5248 StartReadObject(raygenShaderBindingTableBuffer);
5249 StartReadObject(missShaderBindingTableBuffer);
5250 StartReadObject(hitShaderBindingTableBuffer);
5251 StartReadObject(callableShaderBindingTableBuffer);
5252 }
5253
PostCallRecordCmdTraceRaysNV(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)5254 void ThreadSafety::PostCallRecordCmdTraceRaysNV(
5255 VkCommandBuffer commandBuffer,
5256 VkBuffer raygenShaderBindingTableBuffer,
5257 VkDeviceSize raygenShaderBindingOffset,
5258 VkBuffer missShaderBindingTableBuffer,
5259 VkDeviceSize missShaderBindingOffset,
5260 VkDeviceSize missShaderBindingStride,
5261 VkBuffer hitShaderBindingTableBuffer,
5262 VkDeviceSize hitShaderBindingOffset,
5263 VkDeviceSize hitShaderBindingStride,
5264 VkBuffer callableShaderBindingTableBuffer,
5265 VkDeviceSize callableShaderBindingOffset,
5266 VkDeviceSize callableShaderBindingStride,
5267 uint32_t width,
5268 uint32_t height,
5269 uint32_t depth) {
5270 FinishReadObject(commandBuffer);
5271 FinishReadObject(raygenShaderBindingTableBuffer);
5272 FinishReadObject(missShaderBindingTableBuffer);
5273 FinishReadObject(hitShaderBindingTableBuffer);
5274 FinishReadObject(callableShaderBindingTableBuffer);
5275 }
5276
PreCallRecordCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)5277 void ThreadSafety::PreCallRecordCreateRayTracingPipelinesNV(
5278 VkDevice device,
5279 VkPipelineCache pipelineCache,
5280 uint32_t createInfoCount,
5281 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
5282 const VkAllocationCallbacks* pAllocator,
5283 VkPipeline* pPipelines) {
5284 StartReadObject(device);
5285 StartReadObject(pipelineCache);
5286 }
5287
PostCallRecordCreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines,VkResult result)5288 void ThreadSafety::PostCallRecordCreateRayTracingPipelinesNV(
5289 VkDevice device,
5290 VkPipelineCache pipelineCache,
5291 uint32_t createInfoCount,
5292 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
5293 const VkAllocationCallbacks* pAllocator,
5294 VkPipeline* pPipelines,
5295 VkResult result) {
5296 FinishReadObject(device);
5297 FinishReadObject(pipelineCache);
5298 }
5299
PreCallRecordGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)5300 void ThreadSafety::PreCallRecordGetRayTracingShaderGroupHandlesNV(
5301 VkDevice device,
5302 VkPipeline pipeline,
5303 uint32_t firstGroup,
5304 uint32_t groupCount,
5305 size_t dataSize,
5306 void* pData) {
5307 StartReadObject(device);
5308 StartReadObject(pipeline);
5309 }
5310
PostCallRecordGetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,VkResult result)5311 void ThreadSafety::PostCallRecordGetRayTracingShaderGroupHandlesNV(
5312 VkDevice device,
5313 VkPipeline pipeline,
5314 uint32_t firstGroup,
5315 uint32_t groupCount,
5316 size_t dataSize,
5317 void* pData,
5318 VkResult result) {
5319 FinishReadObject(device);
5320 FinishReadObject(pipeline);
5321 }
5322
PreCallRecordGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,size_t dataSize,void * pData)5323 void ThreadSafety::PreCallRecordGetAccelerationStructureHandleNV(
5324 VkDevice device,
5325 VkAccelerationStructureNV accelerationStructure,
5326 size_t dataSize,
5327 void* pData) {
5328 StartReadObject(device);
5329 StartReadObject(accelerationStructure);
5330 }
5331
PostCallRecordGetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,size_t dataSize,void * pData,VkResult result)5332 void ThreadSafety::PostCallRecordGetAccelerationStructureHandleNV(
5333 VkDevice device,
5334 VkAccelerationStructureNV accelerationStructure,
5335 size_t dataSize,
5336 void* pData,
5337 VkResult result) {
5338 FinishReadObject(device);
5339 FinishReadObject(accelerationStructure);
5340 }
5341
PreCallRecordCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureNV * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)5342 void ThreadSafety::PreCallRecordCmdWriteAccelerationStructuresPropertiesNV(
5343 VkCommandBuffer commandBuffer,
5344 uint32_t accelerationStructureCount,
5345 const VkAccelerationStructureNV* pAccelerationStructures,
5346 VkQueryType queryType,
5347 VkQueryPool queryPool,
5348 uint32_t firstQuery) {
5349 StartReadObject(commandBuffer);
5350 if (pAccelerationStructures) {
5351 for (uint32_t index = 0; index < accelerationStructureCount; index++) {
5352 StartReadObject(pAccelerationStructures[index]);
5353 }
5354 }
5355 StartReadObject(queryPool);
5356 }
5357
PostCallRecordCmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureNV * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)5358 void ThreadSafety::PostCallRecordCmdWriteAccelerationStructuresPropertiesNV(
5359 VkCommandBuffer commandBuffer,
5360 uint32_t accelerationStructureCount,
5361 const VkAccelerationStructureNV* pAccelerationStructures,
5362 VkQueryType queryType,
5363 VkQueryPool queryPool,
5364 uint32_t firstQuery) {
5365 FinishReadObject(commandBuffer);
5366 if (pAccelerationStructures) {
5367 for (uint32_t index = 0; index < accelerationStructureCount; index++) {
5368 FinishReadObject(pAccelerationStructures[index]);
5369 }
5370 }
5371 FinishReadObject(queryPool);
5372 }
5373
PreCallRecordCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader)5374 void ThreadSafety::PreCallRecordCompileDeferredNV(
5375 VkDevice device,
5376 VkPipeline pipeline,
5377 uint32_t shader) {
5378 StartReadObject(device);
5379 StartReadObject(pipeline);
5380 }
5381
PostCallRecordCompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader,VkResult result)5382 void ThreadSafety::PostCallRecordCompileDeferredNV(
5383 VkDevice device,
5384 VkPipeline pipeline,
5385 uint32_t shader,
5386 VkResult result) {
5387 FinishReadObject(device);
5388 FinishReadObject(pipeline);
5389 }
5390
PreCallRecordGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties)5391 void ThreadSafety::PreCallRecordGetMemoryHostPointerPropertiesEXT(
5392 VkDevice device,
5393 VkExternalMemoryHandleTypeFlagBits handleType,
5394 const void* pHostPointer,
5395 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
5396 StartReadObject(device);
5397 }
5398
PostCallRecordGetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties,VkResult result)5399 void ThreadSafety::PostCallRecordGetMemoryHostPointerPropertiesEXT(
5400 VkDevice device,
5401 VkExternalMemoryHandleTypeFlagBits handleType,
5402 const void* pHostPointer,
5403 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties,
5404 VkResult result) {
5405 FinishReadObject(device);
5406 }
5407
PreCallRecordCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)5408 void ThreadSafety::PreCallRecordCmdWriteBufferMarkerAMD(
5409 VkCommandBuffer commandBuffer,
5410 VkPipelineStageFlagBits pipelineStage,
5411 VkBuffer dstBuffer,
5412 VkDeviceSize dstOffset,
5413 uint32_t marker) {
5414 StartWriteObject(commandBuffer);
5415 StartReadObject(dstBuffer);
5416 // Host access to commandBuffer must be externally synchronized
5417 }
5418
PostCallRecordCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)5419 void ThreadSafety::PostCallRecordCmdWriteBufferMarkerAMD(
5420 VkCommandBuffer commandBuffer,
5421 VkPipelineStageFlagBits pipelineStage,
5422 VkBuffer dstBuffer,
5423 VkDeviceSize dstOffset,
5424 uint32_t marker) {
5425 FinishWriteObject(commandBuffer);
5426 FinishReadObject(dstBuffer);
5427 // Host access to commandBuffer must be externally synchronized
5428 }
5429
PreCallRecordGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation)5430 void ThreadSafety::PreCallRecordGetCalibratedTimestampsEXT(
5431 VkDevice device,
5432 uint32_t timestampCount,
5433 const VkCalibratedTimestampInfoEXT* pTimestampInfos,
5434 uint64_t* pTimestamps,
5435 uint64_t* pMaxDeviation) {
5436 StartReadObject(device);
5437 }
5438
PostCallRecordGetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation,VkResult result)5439 void ThreadSafety::PostCallRecordGetCalibratedTimestampsEXT(
5440 VkDevice device,
5441 uint32_t timestampCount,
5442 const VkCalibratedTimestampInfoEXT* pTimestampInfos,
5443 uint64_t* pTimestamps,
5444 uint64_t* pMaxDeviation,
5445 VkResult result) {
5446 FinishReadObject(device);
5447 }
5448
5449 #ifdef VK_USE_PLATFORM_GGP
5450 #endif // VK_USE_PLATFORM_GGP
5451
PreCallRecordCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask)5452 void ThreadSafety::PreCallRecordCmdDrawMeshTasksNV(
5453 VkCommandBuffer commandBuffer,
5454 uint32_t taskCount,
5455 uint32_t firstTask) {
5456 StartWriteObject(commandBuffer);
5457 // Host access to commandBuffer must be externally synchronized
5458 }
5459
PostCallRecordCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask)5460 void ThreadSafety::PostCallRecordCmdDrawMeshTasksNV(
5461 VkCommandBuffer commandBuffer,
5462 uint32_t taskCount,
5463 uint32_t firstTask) {
5464 FinishWriteObject(commandBuffer);
5465 // Host access to commandBuffer must be externally synchronized
5466 }
5467
PreCallRecordCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)5468 void ThreadSafety::PreCallRecordCmdDrawMeshTasksIndirectNV(
5469 VkCommandBuffer commandBuffer,
5470 VkBuffer buffer,
5471 VkDeviceSize offset,
5472 uint32_t drawCount,
5473 uint32_t stride) {
5474 StartWriteObject(commandBuffer);
5475 StartReadObject(buffer);
5476 // Host access to commandBuffer must be externally synchronized
5477 }
5478
PostCallRecordCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)5479 void ThreadSafety::PostCallRecordCmdDrawMeshTasksIndirectNV(
5480 VkCommandBuffer commandBuffer,
5481 VkBuffer buffer,
5482 VkDeviceSize offset,
5483 uint32_t drawCount,
5484 uint32_t stride) {
5485 FinishWriteObject(commandBuffer);
5486 FinishReadObject(buffer);
5487 // Host access to commandBuffer must be externally synchronized
5488 }
5489
PreCallRecordCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)5490 void ThreadSafety::PreCallRecordCmdDrawMeshTasksIndirectCountNV(
5491 VkCommandBuffer commandBuffer,
5492 VkBuffer buffer,
5493 VkDeviceSize offset,
5494 VkBuffer countBuffer,
5495 VkDeviceSize countBufferOffset,
5496 uint32_t maxDrawCount,
5497 uint32_t stride) {
5498 StartWriteObject(commandBuffer);
5499 StartReadObject(buffer);
5500 StartReadObject(countBuffer);
5501 // Host access to commandBuffer must be externally synchronized
5502 }
5503
PostCallRecordCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)5504 void ThreadSafety::PostCallRecordCmdDrawMeshTasksIndirectCountNV(
5505 VkCommandBuffer commandBuffer,
5506 VkBuffer buffer,
5507 VkDeviceSize offset,
5508 VkBuffer countBuffer,
5509 VkDeviceSize countBufferOffset,
5510 uint32_t maxDrawCount,
5511 uint32_t stride) {
5512 FinishWriteObject(commandBuffer);
5513 FinishReadObject(buffer);
5514 FinishReadObject(countBuffer);
5515 // Host access to commandBuffer must be externally synchronized
5516 }
5517
PreCallRecordCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors)5518 void ThreadSafety::PreCallRecordCmdSetExclusiveScissorNV(
5519 VkCommandBuffer commandBuffer,
5520 uint32_t firstExclusiveScissor,
5521 uint32_t exclusiveScissorCount,
5522 const VkRect2D* pExclusiveScissors) {
5523 StartWriteObject(commandBuffer);
5524 // Host access to commandBuffer must be externally synchronized
5525 }
5526
PostCallRecordCmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors)5527 void ThreadSafety::PostCallRecordCmdSetExclusiveScissorNV(
5528 VkCommandBuffer commandBuffer,
5529 uint32_t firstExclusiveScissor,
5530 uint32_t exclusiveScissorCount,
5531 const VkRect2D* pExclusiveScissors) {
5532 FinishWriteObject(commandBuffer);
5533 // Host access to commandBuffer must be externally synchronized
5534 }
5535
PreCallRecordCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker)5536 void ThreadSafety::PreCallRecordCmdSetCheckpointNV(
5537 VkCommandBuffer commandBuffer,
5538 const void* pCheckpointMarker) {
5539 StartReadObject(commandBuffer);
5540 }
5541
PostCallRecordCmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker)5542 void ThreadSafety::PostCallRecordCmdSetCheckpointNV(
5543 VkCommandBuffer commandBuffer,
5544 const void* pCheckpointMarker) {
5545 FinishReadObject(commandBuffer);
5546 }
5547
PreCallRecordGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData)5548 void ThreadSafety::PreCallRecordGetQueueCheckpointDataNV(
5549 VkQueue queue,
5550 uint32_t* pCheckpointDataCount,
5551 VkCheckpointDataNV* pCheckpointData) {
5552 StartReadObject(queue);
5553 }
5554
PostCallRecordGetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData)5555 void ThreadSafety::PostCallRecordGetQueueCheckpointDataNV(
5556 VkQueue queue,
5557 uint32_t* pCheckpointDataCount,
5558 VkCheckpointDataNV* pCheckpointData) {
5559 FinishReadObject(queue);
5560 }
5561
PreCallRecordInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo)5562 void ThreadSafety::PreCallRecordInitializePerformanceApiINTEL(
5563 VkDevice device,
5564 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) {
5565 StartReadObject(device);
5566 }
5567
PostCallRecordInitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo,VkResult result)5568 void ThreadSafety::PostCallRecordInitializePerformanceApiINTEL(
5569 VkDevice device,
5570 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo,
5571 VkResult result) {
5572 FinishReadObject(device);
5573 }
5574
PreCallRecordUninitializePerformanceApiINTEL(VkDevice device)5575 void ThreadSafety::PreCallRecordUninitializePerformanceApiINTEL(
5576 VkDevice device) {
5577 StartReadObject(device);
5578 }
5579
PostCallRecordUninitializePerformanceApiINTEL(VkDevice device)5580 void ThreadSafety::PostCallRecordUninitializePerformanceApiINTEL(
5581 VkDevice device) {
5582 FinishReadObject(device);
5583 }
5584
PreCallRecordCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo)5585 void ThreadSafety::PreCallRecordCmdSetPerformanceMarkerINTEL(
5586 VkCommandBuffer commandBuffer,
5587 const VkPerformanceMarkerInfoINTEL* pMarkerInfo) {
5588 StartReadObject(commandBuffer);
5589 }
5590
PostCallRecordCmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo,VkResult result)5591 void ThreadSafety::PostCallRecordCmdSetPerformanceMarkerINTEL(
5592 VkCommandBuffer commandBuffer,
5593 const VkPerformanceMarkerInfoINTEL* pMarkerInfo,
5594 VkResult result) {
5595 FinishReadObject(commandBuffer);
5596 }
5597
PreCallRecordCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo)5598 void ThreadSafety::PreCallRecordCmdSetPerformanceStreamMarkerINTEL(
5599 VkCommandBuffer commandBuffer,
5600 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo) {
5601 StartReadObject(commandBuffer);
5602 }
5603
PostCallRecordCmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo,VkResult result)5604 void ThreadSafety::PostCallRecordCmdSetPerformanceStreamMarkerINTEL(
5605 VkCommandBuffer commandBuffer,
5606 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo,
5607 VkResult result) {
5608 FinishReadObject(commandBuffer);
5609 }
5610
PreCallRecordCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo)5611 void ThreadSafety::PreCallRecordCmdSetPerformanceOverrideINTEL(
5612 VkCommandBuffer commandBuffer,
5613 const VkPerformanceOverrideInfoINTEL* pOverrideInfo) {
5614 StartReadObject(commandBuffer);
5615 }
5616
PostCallRecordCmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo,VkResult result)5617 void ThreadSafety::PostCallRecordCmdSetPerformanceOverrideINTEL(
5618 VkCommandBuffer commandBuffer,
5619 const VkPerformanceOverrideInfoINTEL* pOverrideInfo,
5620 VkResult result) {
5621 FinishReadObject(commandBuffer);
5622 }
5623
PreCallRecordAcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration)5624 void ThreadSafety::PreCallRecordAcquirePerformanceConfigurationINTEL(
5625 VkDevice device,
5626 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
5627 VkPerformanceConfigurationINTEL* pConfiguration) {
5628 StartReadObject(device);
5629 }
5630
PostCallRecordAcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration,VkResult result)5631 void ThreadSafety::PostCallRecordAcquirePerformanceConfigurationINTEL(
5632 VkDevice device,
5633 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
5634 VkPerformanceConfigurationINTEL* pConfiguration,
5635 VkResult result) {
5636 FinishReadObject(device);
5637 }
5638
PreCallRecordReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration)5639 void ThreadSafety::PreCallRecordReleasePerformanceConfigurationINTEL(
5640 VkDevice device,
5641 VkPerformanceConfigurationINTEL configuration) {
5642 StartReadObject(device);
5643 StartReadObject(configuration);
5644 }
5645
PostCallRecordReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration,VkResult result)5646 void ThreadSafety::PostCallRecordReleasePerformanceConfigurationINTEL(
5647 VkDevice device,
5648 VkPerformanceConfigurationINTEL configuration,
5649 VkResult result) {
5650 FinishReadObject(device);
5651 FinishReadObject(configuration);
5652 }
5653
PreCallRecordQueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration)5654 void ThreadSafety::PreCallRecordQueueSetPerformanceConfigurationINTEL(
5655 VkQueue queue,
5656 VkPerformanceConfigurationINTEL configuration) {
5657 StartReadObject(queue);
5658 StartReadObject(configuration);
5659 }
5660
PostCallRecordQueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration,VkResult result)5661 void ThreadSafety::PostCallRecordQueueSetPerformanceConfigurationINTEL(
5662 VkQueue queue,
5663 VkPerformanceConfigurationINTEL configuration,
5664 VkResult result) {
5665 FinishReadObject(queue);
5666 FinishReadObject(configuration);
5667 }
5668
PreCallRecordGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue)5669 void ThreadSafety::PreCallRecordGetPerformanceParameterINTEL(
5670 VkDevice device,
5671 VkPerformanceParameterTypeINTEL parameter,
5672 VkPerformanceValueINTEL* pValue) {
5673 StartReadObject(device);
5674 }
5675
PostCallRecordGetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue,VkResult result)5676 void ThreadSafety::PostCallRecordGetPerformanceParameterINTEL(
5677 VkDevice device,
5678 VkPerformanceParameterTypeINTEL parameter,
5679 VkPerformanceValueINTEL* pValue,
5680 VkResult result) {
5681 FinishReadObject(device);
5682 }
5683
PreCallRecordSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable)5684 void ThreadSafety::PreCallRecordSetLocalDimmingAMD(
5685 VkDevice device,
5686 VkSwapchainKHR swapChain,
5687 VkBool32 localDimmingEnable) {
5688 StartReadObject(device);
5689 StartReadObject(swapChain);
5690 }
5691
PostCallRecordSetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable)5692 void ThreadSafety::PostCallRecordSetLocalDimmingAMD(
5693 VkDevice device,
5694 VkSwapchainKHR swapChain,
5695 VkBool32 localDimmingEnable) {
5696 FinishReadObject(device);
5697 FinishReadObject(swapChain);
5698 }
5699
5700 #ifdef VK_USE_PLATFORM_FUCHSIA
5701
PreCallRecordCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)5702 void ThreadSafety::PreCallRecordCreateImagePipeSurfaceFUCHSIA(
5703 VkInstance instance,
5704 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
5705 const VkAllocationCallbacks* pAllocator,
5706 VkSurfaceKHR* pSurface) {
5707 StartReadObject(instance);
5708 }
5709
PostCallRecordCreateImagePipeSurfaceFUCHSIA(VkInstance instance,const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)5710 void ThreadSafety::PostCallRecordCreateImagePipeSurfaceFUCHSIA(
5711 VkInstance instance,
5712 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
5713 const VkAllocationCallbacks* pAllocator,
5714 VkSurfaceKHR* pSurface,
5715 VkResult result) {
5716 FinishReadObject(instance);
5717 }
5718 #endif // VK_USE_PLATFORM_FUCHSIA
5719
5720 #ifdef VK_USE_PLATFORM_METAL_EXT
5721
PreCallRecordCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)5722 void ThreadSafety::PreCallRecordCreateMetalSurfaceEXT(
5723 VkInstance instance,
5724 const VkMetalSurfaceCreateInfoEXT* pCreateInfo,
5725 const VkAllocationCallbacks* pAllocator,
5726 VkSurfaceKHR* pSurface) {
5727 StartReadObject(instance);
5728 }
5729
PostCallRecordCreateMetalSurfaceEXT(VkInstance instance,const VkMetalSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)5730 void ThreadSafety::PostCallRecordCreateMetalSurfaceEXT(
5731 VkInstance instance,
5732 const VkMetalSurfaceCreateInfoEXT* pCreateInfo,
5733 const VkAllocationCallbacks* pAllocator,
5734 VkSurfaceKHR* pSurface,
5735 VkResult result) {
5736 FinishReadObject(instance);
5737 }
5738 #endif // VK_USE_PLATFORM_METAL_EXT
5739
PreCallRecordGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfoEXT * pInfo)5740 void ThreadSafety::PreCallRecordGetBufferDeviceAddressEXT(
5741 VkDevice device,
5742 const VkBufferDeviceAddressInfoEXT* pInfo) {
5743 StartReadObject(device);
5744 }
5745
PostCallRecordGetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfoEXT * pInfo)5746 void ThreadSafety::PostCallRecordGetBufferDeviceAddressEXT(
5747 VkDevice device,
5748 const VkBufferDeviceAddressInfoEXT* pInfo) {
5749 FinishReadObject(device);
5750 }
5751
5752 #ifdef VK_USE_PLATFORM_WIN32_KHR
5753
PreCallRecordAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain)5754 void ThreadSafety::PreCallRecordAcquireFullScreenExclusiveModeEXT(
5755 VkDevice device,
5756 VkSwapchainKHR swapchain) {
5757 StartReadObject(device);
5758 StartReadObject(swapchain);
5759 }
5760
PostCallRecordAcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain,VkResult result)5761 void ThreadSafety::PostCallRecordAcquireFullScreenExclusiveModeEXT(
5762 VkDevice device,
5763 VkSwapchainKHR swapchain,
5764 VkResult result) {
5765 FinishReadObject(device);
5766 FinishReadObject(swapchain);
5767 }
5768
PreCallRecordReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain)5769 void ThreadSafety::PreCallRecordReleaseFullScreenExclusiveModeEXT(
5770 VkDevice device,
5771 VkSwapchainKHR swapchain) {
5772 StartReadObject(device);
5773 StartReadObject(swapchain);
5774 }
5775
PostCallRecordReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain,VkResult result)5776 void ThreadSafety::PostCallRecordReleaseFullScreenExclusiveModeEXT(
5777 VkDevice device,
5778 VkSwapchainKHR swapchain,
5779 VkResult result) {
5780 FinishReadObject(device);
5781 FinishReadObject(swapchain);
5782 }
5783
PreCallRecordGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes)5784 void ThreadSafety::PreCallRecordGetDeviceGroupSurfacePresentModes2EXT(
5785 VkDevice device,
5786 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
5787 VkDeviceGroupPresentModeFlagsKHR* pModes) {
5788 StartReadObject(device);
5789 }
5790
PostCallRecordGetDeviceGroupSurfacePresentModes2EXT(VkDevice device,const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VkDeviceGroupPresentModeFlagsKHR * pModes,VkResult result)5791 void ThreadSafety::PostCallRecordGetDeviceGroupSurfacePresentModes2EXT(
5792 VkDevice device,
5793 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
5794 VkDeviceGroupPresentModeFlagsKHR* pModes,
5795 VkResult result) {
5796 FinishReadObject(device);
5797 }
5798 #endif // VK_USE_PLATFORM_WIN32_KHR
5799
PreCallRecordCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)5800 void ThreadSafety::PreCallRecordCreateHeadlessSurfaceEXT(
5801 VkInstance instance,
5802 const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
5803 const VkAllocationCallbacks* pAllocator,
5804 VkSurfaceKHR* pSurface) {
5805 StartReadObject(instance);
5806 }
5807
PostCallRecordCreateHeadlessSurfaceEXT(VkInstance instance,const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface,VkResult result)5808 void ThreadSafety::PostCallRecordCreateHeadlessSurfaceEXT(
5809 VkInstance instance,
5810 const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
5811 const VkAllocationCallbacks* pAllocator,
5812 VkSurfaceKHR* pSurface,
5813 VkResult result) {
5814 FinishReadObject(instance);
5815 }
5816
PreCallRecordCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)5817 void ThreadSafety::PreCallRecordCmdSetLineStippleEXT(
5818 VkCommandBuffer commandBuffer,
5819 uint32_t lineStippleFactor,
5820 uint16_t lineStipplePattern) {
5821 StartWriteObject(commandBuffer);
5822 // Host access to commandBuffer must be externally synchronized
5823 }
5824
PostCallRecordCmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)5825 void ThreadSafety::PostCallRecordCmdSetLineStippleEXT(
5826 VkCommandBuffer commandBuffer,
5827 uint32_t lineStippleFactor,
5828 uint16_t lineStipplePattern) {
5829 FinishWriteObject(commandBuffer);
5830 // Host access to commandBuffer must be externally synchronized
5831 }
5832
PreCallRecordResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)5833 void ThreadSafety::PreCallRecordResetQueryPoolEXT(
5834 VkDevice device,
5835 VkQueryPool queryPool,
5836 uint32_t firstQuery,
5837 uint32_t queryCount) {
5838 StartReadObject(device);
5839 StartReadObject(queryPool);
5840 }
5841
PostCallRecordResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)5842 void ThreadSafety::PostCallRecordResetQueryPoolEXT(
5843 VkDevice device,
5844 VkQueryPool queryPool,
5845 uint32_t firstQuery,
5846 uint32_t queryCount) {
5847 FinishReadObject(device);
5848 FinishReadObject(queryPool);
5849 }
5850