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