1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15
16 // Autogenerated module func_table
17 //
18 // (impl) generated by scripts/genvk.py -registry ../../vulkan/registry/vk.xml -registryGfxstream
19 // xml/vk_gfxstream.xml cereal -o /tmp/
20 //
21 // Please do not modify directly;
22 // re-run mesa3d/src/gfxstream/codegen/generate-gfxstream-vulkan.sh,
23 // or directly from Python by defining:
24 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
25 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
26 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
27 //
28 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
29 // $CEREAL_OUTPUT_DIR
30 //
31
32 #include <cstring>
33
34 #include "ResourceTracker.h"
35 #include "VkEncoder.h"
36 #include "gfxstream_vk_entrypoints.h"
37 #include "gfxstream_vk_private.h"
38 #include "goldfish_vk_private_defs.h"
39
40 // Stuff we are not going to use but if included,
41 // will cause compile errors. These are Android Vulkan
42 // required extensions, but the approach will be to
43 // implement them completely on the guest side.
44 #undef VK_KHR_android_surface
45 #if defined(LINUX_GUEST_BUILD) || defined(__Fuchsia__)
46 #undef VK_ANDROID_native_buffer
47 #endif
48 #ifdef VK_VERSION_1_0
gfxstream_vk_GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures)49 void gfxstream_vk_GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,
50 VkPhysicalDeviceFeatures* pFeatures) {
51 MESA_TRACE_SCOPE("vkGetPhysicalDeviceFeatures");
52 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
53 {
54 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
55 vkEnc->vkGetPhysicalDeviceFeatures(gfxstream_physicalDevice->internal_object, pFeatures,
56 true /* do lock */);
57 }
58 }
gfxstream_vk_GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties)59 void gfxstream_vk_GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,
60 VkFormat format,
61 VkFormatProperties* pFormatProperties) {
62 MESA_TRACE_SCOPE("vkGetPhysicalDeviceFormatProperties");
63 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
64 {
65 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
66 vkEnc->vkGetPhysicalDeviceFormatProperties(gfxstream_physicalDevice->internal_object,
67 format, pFormatProperties, true /* do lock */);
68 }
69 }
gfxstream_vk_GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties)70 VkResult gfxstream_vk_GetPhysicalDeviceImageFormatProperties(
71 VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling,
72 VkImageUsageFlags usage, VkImageCreateFlags flags,
73 VkImageFormatProperties* pImageFormatProperties) {
74 MESA_TRACE_SCOPE("vkGetPhysicalDeviceImageFormatProperties");
75 VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
76 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
77 {
78 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
79 vkGetPhysicalDeviceImageFormatProperties_VkResult_return =
80 vkEnc->vkGetPhysicalDeviceImageFormatProperties(
81 gfxstream_physicalDevice->internal_object, format, type, tiling, usage, flags,
82 pImageFormatProperties, true /* do lock */);
83 }
84 return vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
85 }
gfxstream_vk_GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties)86 void gfxstream_vk_GetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,
87 VkPhysicalDeviceProperties* pProperties) {
88 MESA_TRACE_SCOPE("vkGetPhysicalDeviceProperties");
89 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
90 {
91 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
92 vkEnc->vkGetPhysicalDeviceProperties(gfxstream_physicalDevice->internal_object, pProperties,
93 true /* do lock */);
94 }
95 }
gfxstream_vk_GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties)96 void gfxstream_vk_GetPhysicalDeviceQueueFamilyProperties(
97 VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
98 VkQueueFamilyProperties* pQueueFamilyProperties) {
99 MESA_TRACE_SCOPE("vkGetPhysicalDeviceQueueFamilyProperties");
100 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
101 {
102 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
103 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(gfxstream_physicalDevice->internal_object,
104 pQueueFamilyPropertyCount,
105 pQueueFamilyProperties, true /* do lock */);
106 }
107 }
gfxstream_vk_GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties)108 void gfxstream_vk_GetPhysicalDeviceMemoryProperties(
109 VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
110 MESA_TRACE_SCOPE("vkGetPhysicalDeviceMemoryProperties");
111 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
112 {
113 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
114 vkEnc->vkGetPhysicalDeviceMemoryProperties(gfxstream_physicalDevice->internal_object,
115 pMemoryProperties, true /* do lock */);
116 }
117 }
gfxstream_vk_EnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties)118 VkResult gfxstream_vk_EnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,
119 uint32_t* pPropertyCount,
120 VkLayerProperties* pProperties) {
121 MESA_TRACE_SCOPE("vkEnumerateDeviceLayerProperties");
122 VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
123 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
124 {
125 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
126 vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(
127 gfxstream_physicalDevice->internal_object, pPropertyCount, pProperties,
128 true /* do lock */);
129 }
130 return vkEnumerateDeviceLayerProperties_VkResult_return;
131 }
gfxstream_vk_QueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)132 VkResult gfxstream_vk_QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits,
133 VkFence fence) {
134 MESA_TRACE_SCOPE("vkQueueSubmit");
135 VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
136 VK_FROM_HANDLE(gfxstream_vk_queue, gfxstream_queue, queue);
137 VK_FROM_HANDLE(gfxstream_vk_fence, gfxstream_fence, fence);
138 {
139 auto vkEnc =
140 gfxstream::vk::ResourceTracker::getQueueEncoder(gfxstream_queue->internal_object);
141 std::vector<VkSubmitInfo> internal_pSubmits(submitCount);
142 std::vector<std::vector<VkSemaphore>> internal_VkSubmitInfo_pWaitSemaphores;
143 std::vector<std::vector<VkCommandBuffer>> internal_VkSubmitInfo_pCommandBuffers;
144 std::vector<std::vector<VkSemaphore>> internal_VkSubmitInfo_pSignalSemaphores;
145 for (uint32_t i = 0; i < submitCount; ++i) {
146 internal_pSubmits[i] = pSubmits[i];
147 /* VkSubmitInfo::pWaitSemaphores */
148 internal_VkSubmitInfo_pWaitSemaphores.push_back(std::vector<VkSemaphore>());
149 internal_VkSubmitInfo_pWaitSemaphores[i] = transformVkSemaphoreList(
150 internal_pSubmits[i].pWaitSemaphores, internal_pSubmits[i].waitSemaphoreCount);
151 internal_pSubmits[i].pWaitSemaphores = internal_VkSubmitInfo_pWaitSemaphores[i].data();
152 internal_pSubmits[i].waitSemaphoreCount =
153 internal_VkSubmitInfo_pWaitSemaphores[i].size();
154 /* VkSubmitInfo::pCommandBuffers */
155 internal_VkSubmitInfo_pCommandBuffers.push_back(std::vector<VkCommandBuffer>());
156 internal_VkSubmitInfo_pCommandBuffers[i].resize(
157 internal_pSubmits[i].commandBufferCount);
158 for (uint32_t j = 0; j < internal_pSubmits[i].commandBufferCount; ++j) {
159 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_pCommandBuffers,
160 internal_pSubmits[i].pCommandBuffers[j]);
161 internal_VkSubmitInfo_pCommandBuffers[i][j] =
162 gfxstream_pCommandBuffers->internal_object;
163 }
164 internal_pSubmits[i].pCommandBuffers = internal_VkSubmitInfo_pCommandBuffers[i].data();
165 /* VkSubmitInfo::pSignalSemaphores */
166 internal_VkSubmitInfo_pSignalSemaphores.push_back(std::vector<VkSemaphore>());
167 internal_VkSubmitInfo_pSignalSemaphores[i] = transformVkSemaphoreList(
168 internal_pSubmits[i].pSignalSemaphores, internal_pSubmits[i].signalSemaphoreCount);
169 internal_pSubmits[i].pSignalSemaphores =
170 internal_VkSubmitInfo_pSignalSemaphores[i].data();
171 internal_pSubmits[i].signalSemaphoreCount =
172 internal_VkSubmitInfo_pSignalSemaphores[i].size();
173 }
174 auto resources = gfxstream::vk::ResourceTracker::get();
175 vkQueueSubmit_VkResult_return = resources->on_vkQueueSubmit(
176 vkEnc, VK_SUCCESS, gfxstream_queue->internal_object, submitCount,
177 internal_pSubmits.data(),
178 gfxstream_fence ? gfxstream_fence->internal_object : VK_NULL_HANDLE);
179 }
180 return vkQueueSubmit_VkResult_return;
181 }
gfxstream_vk_QueueWaitIdle(VkQueue queue)182 VkResult gfxstream_vk_QueueWaitIdle(VkQueue queue) {
183 MESA_TRACE_SCOPE("vkQueueWaitIdle");
184 VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
185 VK_FROM_HANDLE(gfxstream_vk_queue, gfxstream_queue, queue);
186 {
187 auto vkEnc =
188 gfxstream::vk::ResourceTracker::getQueueEncoder(gfxstream_queue->internal_object);
189 auto resources = gfxstream::vk::ResourceTracker::get();
190 vkQueueWaitIdle_VkResult_return =
191 resources->on_vkQueueWaitIdle(vkEnc, VK_SUCCESS, gfxstream_queue->internal_object);
192 }
193 return vkQueueWaitIdle_VkResult_return;
194 }
gfxstream_vk_DeviceWaitIdle(VkDevice device)195 VkResult gfxstream_vk_DeviceWaitIdle(VkDevice device) {
196 MESA_TRACE_SCOPE("vkDeviceWaitIdle");
197 VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
198 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
199 {
200 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
201 vkDeviceWaitIdle_VkResult_return =
202 vkEnc->vkDeviceWaitIdle(gfxstream_device->internal_object, true /* do lock */);
203 }
204 return vkDeviceWaitIdle_VkResult_return;
205 }
gfxstream_vk_FreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)206 void gfxstream_vk_FreeMemory(VkDevice device, VkDeviceMemory memory,
207 const VkAllocationCallbacks* pAllocator) {
208 MESA_TRACE_SCOPE("vkFreeMemory");
209 if (VK_NULL_HANDLE == memory) {
210 return;
211 }
212 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
213 {
214 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
215 auto resources = gfxstream::vk::ResourceTracker::get();
216 resources->on_vkFreeMemory(vkEnc, gfxstream_device->internal_object, memory, pAllocator);
217 }
218 }
gfxstream_vk_MapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData)219 VkResult gfxstream_vk_MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset,
220 VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) {
221 MESA_TRACE_SCOPE("vkMapMemory");
222 VkResult vkMapMemory_VkResult_return = (VkResult)0;
223 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
224 {
225 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
226 vkMapMemory_VkResult_return =
227 vkEnc->vkMapMemory(gfxstream_device->internal_object, memory, offset, size, flags,
228 ppData, true /* do lock */);
229 }
230 return vkMapMemory_VkResult_return;
231 }
gfxstream_vk_UnmapMemory(VkDevice device,VkDeviceMemory memory)232 void gfxstream_vk_UnmapMemory(VkDevice device, VkDeviceMemory memory) {
233 MESA_TRACE_SCOPE("vkUnmapMemory");
234 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
235 {
236 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
237 vkEnc->vkUnmapMemory(gfxstream_device->internal_object, memory, true /* do lock */);
238 }
239 }
gfxstream_vk_FlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)240 VkResult gfxstream_vk_FlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount,
241 const VkMappedMemoryRange* pMemoryRanges) {
242 MESA_TRACE_SCOPE("vkFlushMappedMemoryRanges");
243 VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
244 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
245 {
246 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
247 vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(
248 gfxstream_device->internal_object, memoryRangeCount, pMemoryRanges, true /* do lock */);
249 }
250 return vkFlushMappedMemoryRanges_VkResult_return;
251 }
gfxstream_vk_InvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)252 VkResult gfxstream_vk_InvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount,
253 const VkMappedMemoryRange* pMemoryRanges) {
254 MESA_TRACE_SCOPE("vkInvalidateMappedMemoryRanges");
255 VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
256 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
257 {
258 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
259 vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(
260 gfxstream_device->internal_object, memoryRangeCount, pMemoryRanges, true /* do lock */);
261 }
262 return vkInvalidateMappedMemoryRanges_VkResult_return;
263 }
gfxstream_vk_GetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)264 void gfxstream_vk_GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory,
265 VkDeviceSize* pCommittedMemoryInBytes) {
266 MESA_TRACE_SCOPE("vkGetDeviceMemoryCommitment");
267 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
268 {
269 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
270 vkEnc->vkGetDeviceMemoryCommitment(gfxstream_device->internal_object, memory,
271 pCommittedMemoryInBytes, true /* do lock */);
272 }
273 }
gfxstream_vk_BindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)274 VkResult gfxstream_vk_BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory,
275 VkDeviceSize memoryOffset) {
276 MESA_TRACE_SCOPE("vkBindBufferMemory");
277 VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
278 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
279 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, buffer);
280 {
281 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
282 auto resources = gfxstream::vk::ResourceTracker::get();
283 vkBindBufferMemory_VkResult_return = resources->on_vkBindBufferMemory(
284 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, gfxstream_buffer->internal_object,
285 memory, memoryOffset);
286 }
287 return vkBindBufferMemory_VkResult_return;
288 }
gfxstream_vk_BindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset)289 VkResult gfxstream_vk_BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory,
290 VkDeviceSize memoryOffset) {
291 MESA_TRACE_SCOPE("vkBindImageMemory");
292 VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
293 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
294 {
295 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
296 auto resources = gfxstream::vk::ResourceTracker::get();
297 vkBindImageMemory_VkResult_return = resources->on_vkBindImageMemory(
298 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, image, memory, memoryOffset);
299 }
300 return vkBindImageMemory_VkResult_return;
301 }
gfxstream_vk_GetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)302 void gfxstream_vk_GetBufferMemoryRequirements(VkDevice device, VkBuffer buffer,
303 VkMemoryRequirements* pMemoryRequirements) {
304 MESA_TRACE_SCOPE("vkGetBufferMemoryRequirements");
305 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
306 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, buffer);
307 {
308 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
309 auto resources = gfxstream::vk::ResourceTracker::get();
310 resources->on_vkGetBufferMemoryRequirements(vkEnc, gfxstream_device->internal_object,
311 gfxstream_buffer->internal_object,
312 pMemoryRequirements);
313 }
314 }
gfxstream_vk_GetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements)315 void gfxstream_vk_GetImageMemoryRequirements(VkDevice device, VkImage image,
316 VkMemoryRequirements* pMemoryRequirements) {
317 MESA_TRACE_SCOPE("vkGetImageMemoryRequirements");
318 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
319 {
320 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
321 auto resources = gfxstream::vk::ResourceTracker::get();
322 resources->on_vkGetImageMemoryRequirements(vkEnc, gfxstream_device->internal_object, image,
323 pMemoryRequirements);
324 }
325 }
gfxstream_vk_GetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)326 void gfxstream_vk_GetImageSparseMemoryRequirements(
327 VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount,
328 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
329 MESA_TRACE_SCOPE("vkGetImageSparseMemoryRequirements");
330 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
331 {
332 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
333 vkEnc->vkGetImageSparseMemoryRequirements(gfxstream_device->internal_object, image,
334 pSparseMemoryRequirementCount,
335 pSparseMemoryRequirements, true /* do lock */);
336 }
337 }
gfxstream_vk_GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties)338 void gfxstream_vk_GetPhysicalDeviceSparseImageFormatProperties(
339 VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
340 VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling,
341 uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {
342 MESA_TRACE_SCOPE("vkGetPhysicalDeviceSparseImageFormatProperties");
343 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
344 {
345 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
346 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(
347 gfxstream_physicalDevice->internal_object, format, type, samples, usage, tiling,
348 pPropertyCount, pProperties, true /* do lock */);
349 }
350 }
gfxstream_vk_QueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)351 VkResult gfxstream_vk_QueueBindSparse(VkQueue queue, uint32_t bindInfoCount,
352 const VkBindSparseInfo* pBindInfo, VkFence fence) {
353 MESA_TRACE_SCOPE("vkQueueBindSparse");
354 VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
355 VK_FROM_HANDLE(gfxstream_vk_queue, gfxstream_queue, queue);
356 VK_FROM_HANDLE(gfxstream_vk_fence, gfxstream_fence, fence);
357 {
358 auto vkEnc =
359 gfxstream::vk::ResourceTracker::getQueueEncoder(gfxstream_queue->internal_object);
360 std::vector<VkBindSparseInfo> internal_pBindInfo(bindInfoCount);
361 std::vector<std::vector<VkSemaphore>> internal_VkBindSparseInfo_pWaitSemaphores;
362 std::vector<std::vector<VkSparseBufferMemoryBindInfo>>
363 internal_VkBindSparseInfo_pBufferBinds;
364 std::vector<std::vector<VkSemaphore>> internal_VkBindSparseInfo_pSignalSemaphores;
365 for (uint32_t i = 0; i < bindInfoCount; ++i) {
366 internal_pBindInfo[i] = pBindInfo[i];
367 /* VkBindSparseInfo::pWaitSemaphores */
368 internal_VkBindSparseInfo_pWaitSemaphores.push_back(std::vector<VkSemaphore>());
369 internal_VkBindSparseInfo_pWaitSemaphores[i] = transformVkSemaphoreList(
370 internal_pBindInfo[i].pWaitSemaphores, internal_pBindInfo[i].waitSemaphoreCount);
371 internal_pBindInfo[i].pWaitSemaphores =
372 internal_VkBindSparseInfo_pWaitSemaphores[i].data();
373 internal_pBindInfo[i].waitSemaphoreCount =
374 internal_VkBindSparseInfo_pWaitSemaphores[i].size();
375 /* VkBindSparseInfo::pBufferBinds */
376 internal_VkBindSparseInfo_pBufferBinds.push_back(
377 std::vector<VkSparseBufferMemoryBindInfo>());
378 internal_VkBindSparseInfo_pBufferBinds[i].resize(internal_pBindInfo[i].bufferBindCount);
379 for (uint32_t j = 0; j < internal_pBindInfo[i].bufferBindCount; ++j) {
380 internal_VkBindSparseInfo_pBufferBinds[i][j] =
381 internal_pBindInfo[i].pBufferBinds[j];
382 /* VkSparseBufferMemoryBindInfo::buffer */
383 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer,
384 internal_VkBindSparseInfo_pBufferBinds[i][j].buffer);
385 internal_VkBindSparseInfo_pBufferBinds[i][j].buffer =
386 gfxstream_buffer->internal_object;
387 }
388 internal_pBindInfo[i].pBufferBinds = internal_VkBindSparseInfo_pBufferBinds[i].data();
389 /* VkBindSparseInfo::pSignalSemaphores */
390 internal_VkBindSparseInfo_pSignalSemaphores.push_back(std::vector<VkSemaphore>());
391 internal_VkBindSparseInfo_pSignalSemaphores[i] =
392 transformVkSemaphoreList(internal_pBindInfo[i].pSignalSemaphores,
393 internal_pBindInfo[i].signalSemaphoreCount);
394 internal_pBindInfo[i].pSignalSemaphores =
395 internal_VkBindSparseInfo_pSignalSemaphores[i].data();
396 internal_pBindInfo[i].signalSemaphoreCount =
397 internal_VkBindSparseInfo_pSignalSemaphores[i].size();
398 }
399 vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(
400 gfxstream_queue->internal_object, bindInfoCount, internal_pBindInfo.data(),
401 gfxstream_fence ? gfxstream_fence->internal_object : VK_NULL_HANDLE,
402 true /* do lock */);
403 }
404 return vkQueueBindSparse_VkResult_return;
405 }
gfxstream_vk_CreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)406 VkResult gfxstream_vk_CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo,
407 const VkAllocationCallbacks* pAllocator, VkFence* pFence) {
408 MESA_TRACE_SCOPE("vkCreateFence");
409 VkResult vkCreateFence_VkResult_return = (VkResult)0;
410 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
411 struct gfxstream_vk_fence* gfxstream_pFence = (gfxstream_vk_fence*)vk_object_zalloc(
412 &gfxstream_device->vk, pAllocator, sizeof(gfxstream_vk_fence), VK_OBJECT_TYPE_FENCE);
413 vkCreateFence_VkResult_return = gfxstream_pFence ? VK_SUCCESS : VK_ERROR_OUT_OF_HOST_MEMORY;
414 if (VK_SUCCESS == vkCreateFence_VkResult_return) {
415 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
416 auto resources = gfxstream::vk::ResourceTracker::get();
417 vkCreateFence_VkResult_return = resources->on_vkCreateFence(
418 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pCreateInfo, pAllocator,
419 &gfxstream_pFence->internal_object);
420 }
421 *pFence = gfxstream_vk_fence_to_handle(gfxstream_pFence);
422 return vkCreateFence_VkResult_return;
423 }
gfxstream_vk_DestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)424 void gfxstream_vk_DestroyFence(VkDevice device, VkFence fence,
425 const VkAllocationCallbacks* pAllocator) {
426 MESA_TRACE_SCOPE("vkDestroyFence");
427 if (VK_NULL_HANDLE == fence) {
428 return;
429 }
430 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
431 VK_FROM_HANDLE(gfxstream_vk_fence, gfxstream_fence, fence);
432 {
433 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
434 vkEnc->vkDestroyFence(gfxstream_device->internal_object,
435 gfxstream_fence ? gfxstream_fence->internal_object : VK_NULL_HANDLE,
436 pAllocator, true /* do lock */);
437 }
438 vk_object_free(&gfxstream_device->vk, pAllocator, (void*)gfxstream_fence);
439 }
gfxstream_vk_ResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences)440 VkResult gfxstream_vk_ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) {
441 MESA_TRACE_SCOPE("vkResetFences");
442 VkResult vkResetFences_VkResult_return = (VkResult)0;
443 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
444 {
445 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
446 std::vector<VkFence> internal_pFences(fenceCount);
447 internal_pFences = transformVkFenceList(pFences, fenceCount);
448 pFences = internal_pFences.data();
449 fenceCount = internal_pFences.size();
450 auto resources = gfxstream::vk::ResourceTracker::get();
451 vkResetFences_VkResult_return =
452 resources->on_vkResetFences(vkEnc, VK_SUCCESS, gfxstream_device->internal_object,
453 fenceCount, internal_pFences.data());
454 }
455 return vkResetFences_VkResult_return;
456 }
gfxstream_vk_GetFenceStatus(VkDevice device,VkFence fence)457 VkResult gfxstream_vk_GetFenceStatus(VkDevice device, VkFence fence) {
458 MESA_TRACE_SCOPE("vkGetFenceStatus");
459 VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
460 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
461 VK_FROM_HANDLE(gfxstream_vk_fence, gfxstream_fence, fence);
462 {
463 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
464 auto resources = gfxstream::vk::ResourceTracker::get();
465 vkGetFenceStatus_VkResult_return = resources->on_vkGetFenceStatus(
466 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, gfxstream_fence->internal_object);
467 }
468 return vkGetFenceStatus_VkResult_return;
469 }
gfxstream_vk_WaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout)470 VkResult gfxstream_vk_WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences,
471 VkBool32 waitAll, uint64_t timeout) {
472 MESA_TRACE_SCOPE("vkWaitForFences");
473 VkResult vkWaitForFences_VkResult_return = (VkResult)0;
474 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
475 {
476 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
477 std::vector<VkFence> internal_pFences(fenceCount);
478 internal_pFences = transformVkFenceList(pFences, fenceCount);
479 pFences = internal_pFences.data();
480 fenceCount = internal_pFences.size();
481 auto resources = gfxstream::vk::ResourceTracker::get();
482 vkWaitForFences_VkResult_return =
483 resources->on_vkWaitForFences(vkEnc, VK_SUCCESS, gfxstream_device->internal_object,
484 fenceCount, internal_pFences.data(), waitAll, timeout);
485 }
486 return vkWaitForFences_VkResult_return;
487 }
gfxstream_vk_CreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)488 VkResult gfxstream_vk_CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo,
489 const VkAllocationCallbacks* pAllocator,
490 VkSemaphore* pSemaphore) {
491 MESA_TRACE_SCOPE("vkCreateSemaphore");
492 VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
493 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
494 struct gfxstream_vk_semaphore* gfxstream_pSemaphore = (gfxstream_vk_semaphore*)vk_object_zalloc(
495 &gfxstream_device->vk, pAllocator, sizeof(gfxstream_vk_semaphore),
496 VK_OBJECT_TYPE_SEMAPHORE);
497 vkCreateSemaphore_VkResult_return =
498 gfxstream_pSemaphore ? VK_SUCCESS : VK_ERROR_OUT_OF_HOST_MEMORY;
499 if (VK_SUCCESS == vkCreateSemaphore_VkResult_return) {
500 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
501 auto resources = gfxstream::vk::ResourceTracker::get();
502 vkCreateSemaphore_VkResult_return = resources->on_vkCreateSemaphore(
503 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pCreateInfo, pAllocator,
504 &gfxstream_pSemaphore->internal_object);
505 }
506 *pSemaphore = gfxstream_vk_semaphore_to_handle(gfxstream_pSemaphore);
507 return vkCreateSemaphore_VkResult_return;
508 }
gfxstream_vk_DestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)509 void gfxstream_vk_DestroySemaphore(VkDevice device, VkSemaphore semaphore,
510 const VkAllocationCallbacks* pAllocator) {
511 MESA_TRACE_SCOPE("vkDestroySemaphore");
512 if (VK_NULL_HANDLE == semaphore) {
513 return;
514 }
515 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
516 VK_FROM_HANDLE(gfxstream_vk_semaphore, gfxstream_semaphore, semaphore);
517 {
518 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
519 auto resources = gfxstream::vk::ResourceTracker::get();
520 resources->on_vkDestroySemaphore(
521 vkEnc, gfxstream_device->internal_object,
522 gfxstream_semaphore ? gfxstream_semaphore->internal_object : VK_NULL_HANDLE,
523 pAllocator);
524 }
525 vk_object_free(&gfxstream_device->vk, pAllocator, (void*)gfxstream_semaphore);
526 }
gfxstream_vk_CreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent)527 VkResult gfxstream_vk_CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo,
528 const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) {
529 MESA_TRACE_SCOPE("vkCreateEvent");
530 VkResult vkCreateEvent_VkResult_return = (VkResult)0;
531 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
532 {
533 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
534 vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(
535 gfxstream_device->internal_object, pCreateInfo, pAllocator, pEvent, true /* do lock */);
536 }
537 return vkCreateEvent_VkResult_return;
538 }
gfxstream_vk_DestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)539 void gfxstream_vk_DestroyEvent(VkDevice device, VkEvent event,
540 const VkAllocationCallbacks* pAllocator) {
541 MESA_TRACE_SCOPE("vkDestroyEvent");
542 if (VK_NULL_HANDLE == event) {
543 return;
544 }
545 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
546 {
547 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
548 vkEnc->vkDestroyEvent(gfxstream_device->internal_object, event, pAllocator,
549 true /* do lock */);
550 }
551 }
gfxstream_vk_GetEventStatus(VkDevice device,VkEvent event)552 VkResult gfxstream_vk_GetEventStatus(VkDevice device, VkEvent event) {
553 MESA_TRACE_SCOPE("vkGetEventStatus");
554 VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
555 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
556 {
557 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
558 vkGetEventStatus_VkResult_return =
559 vkEnc->vkGetEventStatus(gfxstream_device->internal_object, event, true /* do lock */);
560 }
561 return vkGetEventStatus_VkResult_return;
562 }
gfxstream_vk_SetEvent(VkDevice device,VkEvent event)563 VkResult gfxstream_vk_SetEvent(VkDevice device, VkEvent event) {
564 MESA_TRACE_SCOPE("vkSetEvent");
565 VkResult vkSetEvent_VkResult_return = (VkResult)0;
566 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
567 {
568 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
569 vkSetEvent_VkResult_return =
570 vkEnc->vkSetEvent(gfxstream_device->internal_object, event, true /* do lock */);
571 }
572 return vkSetEvent_VkResult_return;
573 }
gfxstream_vk_ResetEvent(VkDevice device,VkEvent event)574 VkResult gfxstream_vk_ResetEvent(VkDevice device, VkEvent event) {
575 MESA_TRACE_SCOPE("vkResetEvent");
576 VkResult vkResetEvent_VkResult_return = (VkResult)0;
577 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
578 {
579 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
580 vkResetEvent_VkResult_return =
581 vkEnc->vkResetEvent(gfxstream_device->internal_object, event, true /* do lock */);
582 }
583 return vkResetEvent_VkResult_return;
584 }
gfxstream_vk_CreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool)585 VkResult gfxstream_vk_CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo,
586 const VkAllocationCallbacks* pAllocator,
587 VkQueryPool* pQueryPool) {
588 MESA_TRACE_SCOPE("vkCreateQueryPool");
589 VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
590 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
591 {
592 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
593 vkCreateQueryPool_VkResult_return =
594 vkEnc->vkCreateQueryPool(gfxstream_device->internal_object, pCreateInfo, pAllocator,
595 pQueryPool, true /* do lock */);
596 }
597 return vkCreateQueryPool_VkResult_return;
598 }
gfxstream_vk_DestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)599 void gfxstream_vk_DestroyQueryPool(VkDevice device, VkQueryPool queryPool,
600 const VkAllocationCallbacks* pAllocator) {
601 MESA_TRACE_SCOPE("vkDestroyQueryPool");
602 if (VK_NULL_HANDLE == queryPool) {
603 return;
604 }
605 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
606 {
607 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
608 vkEnc->vkDestroyQueryPool(gfxstream_device->internal_object, queryPool, pAllocator,
609 true /* do lock */);
610 }
611 }
gfxstream_vk_GetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags)612 VkResult gfxstream_vk_GetQueryPoolResults(VkDevice device, VkQueryPool queryPool,
613 uint32_t firstQuery, uint32_t queryCount, size_t dataSize,
614 void* pData, VkDeviceSize stride,
615 VkQueryResultFlags flags) {
616 MESA_TRACE_SCOPE("vkGetQueryPoolResults");
617 VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
618 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
619 {
620 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
621 vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(
622 gfxstream_device->internal_object, queryPool, firstQuery, queryCount, dataSize, pData,
623 stride, flags, true /* do lock */);
624 }
625 return vkGetQueryPoolResults_VkResult_return;
626 }
gfxstream_vk_CreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)627 VkResult gfxstream_vk_CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo,
628 const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) {
629 MESA_TRACE_SCOPE("vkCreateBuffer");
630 VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
631 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
632 struct gfxstream_vk_buffer* gfxstream_pBuffer = (gfxstream_vk_buffer*)vk_object_zalloc(
633 &gfxstream_device->vk, pAllocator, sizeof(gfxstream_vk_buffer), VK_OBJECT_TYPE_BUFFER);
634 vkCreateBuffer_VkResult_return = gfxstream_pBuffer ? VK_SUCCESS : VK_ERROR_OUT_OF_HOST_MEMORY;
635 if (VK_SUCCESS == vkCreateBuffer_VkResult_return) {
636 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
637 auto resources = gfxstream::vk::ResourceTracker::get();
638 vkCreateBuffer_VkResult_return = resources->on_vkCreateBuffer(
639 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pCreateInfo, pAllocator,
640 &gfxstream_pBuffer->internal_object);
641 }
642 *pBuffer = gfxstream_vk_buffer_to_handle(gfxstream_pBuffer);
643 return vkCreateBuffer_VkResult_return;
644 }
gfxstream_vk_DestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)645 void gfxstream_vk_DestroyBuffer(VkDevice device, VkBuffer buffer,
646 const VkAllocationCallbacks* pAllocator) {
647 MESA_TRACE_SCOPE("vkDestroyBuffer");
648 if (VK_NULL_HANDLE == buffer) {
649 return;
650 }
651 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
652 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, buffer);
653 {
654 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
655 auto resources = gfxstream::vk::ResourceTracker::get();
656 resources->on_vkDestroyBuffer(
657 vkEnc, gfxstream_device->internal_object,
658 gfxstream_buffer ? gfxstream_buffer->internal_object : VK_NULL_HANDLE, pAllocator);
659 }
660 vk_object_free(&gfxstream_device->vk, pAllocator, (void*)gfxstream_buffer);
661 }
gfxstream_vk_CreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)662 VkResult gfxstream_vk_CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo,
663 const VkAllocationCallbacks* pAllocator,
664 VkBufferView* pView) {
665 MESA_TRACE_SCOPE("vkCreateBufferView");
666 VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
667 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
668 {
669 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
670 std::vector<VkBufferViewCreateInfo> internal_pCreateInfo(1);
671 for (uint32_t i = 0; i < 1; ++i) {
672 internal_pCreateInfo[i] = pCreateInfo[i];
673 /* VkBufferViewCreateInfo::buffer */
674 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, internal_pCreateInfo[i].buffer);
675 internal_pCreateInfo[i].buffer = gfxstream_buffer->internal_object;
676 }
677 vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(
678 gfxstream_device->internal_object, internal_pCreateInfo.data(), pAllocator, pView,
679 true /* do lock */);
680 }
681 return vkCreateBufferView_VkResult_return;
682 }
gfxstream_vk_DestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)683 void gfxstream_vk_DestroyBufferView(VkDevice device, VkBufferView bufferView,
684 const VkAllocationCallbacks* pAllocator) {
685 MESA_TRACE_SCOPE("vkDestroyBufferView");
686 if (VK_NULL_HANDLE == bufferView) {
687 return;
688 }
689 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
690 {
691 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
692 vkEnc->vkDestroyBufferView(gfxstream_device->internal_object, bufferView, pAllocator,
693 true /* do lock */);
694 }
695 }
gfxstream_vk_CreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage)696 VkResult gfxstream_vk_CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo,
697 const VkAllocationCallbacks* pAllocator, VkImage* pImage) {
698 MESA_TRACE_SCOPE("vkCreateImage");
699 VkResult vkCreateImage_VkResult_return = (VkResult)0;
700 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
701 {
702 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
703 auto resources = gfxstream::vk::ResourceTracker::get();
704 vkCreateImage_VkResult_return = resources->on_vkCreateImage(
705 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pCreateInfo, pAllocator, pImage);
706 }
707 return vkCreateImage_VkResult_return;
708 }
gfxstream_vk_DestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)709 void gfxstream_vk_DestroyImage(VkDevice device, VkImage image,
710 const VkAllocationCallbacks* pAllocator) {
711 MESA_TRACE_SCOPE("vkDestroyImage");
712 if (VK_NULL_HANDLE == image) {
713 return;
714 }
715 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
716 {
717 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
718 auto resources = gfxstream::vk::ResourceTracker::get();
719 resources->on_vkDestroyImage(vkEnc, gfxstream_device->internal_object, image, pAllocator);
720 }
721 }
gfxstream_vk_GetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)722 void gfxstream_vk_GetImageSubresourceLayout(VkDevice device, VkImage image,
723 const VkImageSubresource* pSubresource,
724 VkSubresourceLayout* pLayout) {
725 MESA_TRACE_SCOPE("vkGetImageSubresourceLayout");
726 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
727 {
728 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
729 auto resources = gfxstream::vk::ResourceTracker::get();
730 resources->on_vkGetImageSubresourceLayout(vkEnc, gfxstream_device->internal_object, image,
731 pSubresource, pLayout);
732 }
733 }
gfxstream_vk_CreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView)734 VkResult gfxstream_vk_CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo,
735 const VkAllocationCallbacks* pAllocator, VkImageView* pView) {
736 MESA_TRACE_SCOPE("vkCreateImageView");
737 VkResult vkCreateImageView_VkResult_return = (VkResult)0;
738 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
739 {
740 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
741 auto resources = gfxstream::vk::ResourceTracker::get();
742 vkCreateImageView_VkResult_return = resources->on_vkCreateImageView(
743 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pCreateInfo, pAllocator, pView);
744 }
745 return vkCreateImageView_VkResult_return;
746 }
gfxstream_vk_DestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)747 void gfxstream_vk_DestroyImageView(VkDevice device, VkImageView imageView,
748 const VkAllocationCallbacks* pAllocator) {
749 MESA_TRACE_SCOPE("vkDestroyImageView");
750 if (VK_NULL_HANDLE == imageView) {
751 return;
752 }
753 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
754 {
755 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
756 vkEnc->vkDestroyImageView(gfxstream_device->internal_object, imageView, pAllocator,
757 true /* do lock */);
758 }
759 }
gfxstream_vk_CreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)760 VkResult gfxstream_vk_CreateShaderModule(VkDevice device,
761 const VkShaderModuleCreateInfo* pCreateInfo,
762 const VkAllocationCallbacks* pAllocator,
763 VkShaderModule* pShaderModule) {
764 MESA_TRACE_SCOPE("vkCreateShaderModule");
765 VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
766 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
767 {
768 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
769 vkCreateShaderModule_VkResult_return =
770 vkEnc->vkCreateShaderModule(gfxstream_device->internal_object, pCreateInfo, pAllocator,
771 pShaderModule, true /* do lock */);
772 }
773 return vkCreateShaderModule_VkResult_return;
774 }
gfxstream_vk_DestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)775 void gfxstream_vk_DestroyShaderModule(VkDevice device, VkShaderModule shaderModule,
776 const VkAllocationCallbacks* pAllocator) {
777 MESA_TRACE_SCOPE("vkDestroyShaderModule");
778 if (VK_NULL_HANDLE == shaderModule) {
779 return;
780 }
781 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
782 {
783 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
784 vkEnc->vkDestroyShaderModule(gfxstream_device->internal_object, shaderModule, pAllocator,
785 true /* do lock */);
786 }
787 }
gfxstream_vk_CreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache)788 VkResult gfxstream_vk_CreatePipelineCache(VkDevice device,
789 const VkPipelineCacheCreateInfo* pCreateInfo,
790 const VkAllocationCallbacks* pAllocator,
791 VkPipelineCache* pPipelineCache) {
792 MESA_TRACE_SCOPE("vkCreatePipelineCache");
793 VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
794 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
795 {
796 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
797 vkCreatePipelineCache_VkResult_return =
798 vkEnc->vkCreatePipelineCache(gfxstream_device->internal_object, pCreateInfo, pAllocator,
799 pPipelineCache, true /* do lock */);
800 }
801 return vkCreatePipelineCache_VkResult_return;
802 }
gfxstream_vk_DestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)803 void gfxstream_vk_DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache,
804 const VkAllocationCallbacks* pAllocator) {
805 MESA_TRACE_SCOPE("vkDestroyPipelineCache");
806 if (VK_NULL_HANDLE == pipelineCache) {
807 return;
808 }
809 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
810 {
811 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
812 vkEnc->vkDestroyPipelineCache(gfxstream_device->internal_object, pipelineCache, pAllocator,
813 true /* do lock */);
814 }
815 }
gfxstream_vk_GetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData)816 VkResult gfxstream_vk_GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache,
817 size_t* pDataSize, void* pData) {
818 MESA_TRACE_SCOPE("vkGetPipelineCacheData");
819 VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
820 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
821 {
822 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
823 vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(
824 gfxstream_device->internal_object, pipelineCache, pDataSize, pData, true /* do lock */);
825 }
826 return vkGetPipelineCacheData_VkResult_return;
827 }
gfxstream_vk_MergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches)828 VkResult gfxstream_vk_MergePipelineCaches(VkDevice device, VkPipelineCache dstCache,
829 uint32_t srcCacheCount,
830 const VkPipelineCache* pSrcCaches) {
831 MESA_TRACE_SCOPE("vkMergePipelineCaches");
832 VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
833 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
834 {
835 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
836 vkMergePipelineCaches_VkResult_return =
837 vkEnc->vkMergePipelineCaches(gfxstream_device->internal_object, dstCache, srcCacheCount,
838 pSrcCaches, true /* do lock */);
839 }
840 return vkMergePipelineCaches_VkResult_return;
841 }
gfxstream_vk_CreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)842 VkResult gfxstream_vk_CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache,
843 uint32_t createInfoCount,
844 const VkGraphicsPipelineCreateInfo* pCreateInfos,
845 const VkAllocationCallbacks* pAllocator,
846 VkPipeline* pPipelines) {
847 MESA_TRACE_SCOPE("vkCreateGraphicsPipelines");
848 VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
849 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
850 {
851 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
852 auto resources = gfxstream::vk::ResourceTracker::get();
853 vkCreateGraphicsPipelines_VkResult_return = resources->on_vkCreateGraphicsPipelines(
854 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pipelineCache, createInfoCount,
855 pCreateInfos, pAllocator, pPipelines);
856 }
857 return vkCreateGraphicsPipelines_VkResult_return;
858 }
gfxstream_vk_CreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)859 VkResult gfxstream_vk_CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache,
860 uint32_t createInfoCount,
861 const VkComputePipelineCreateInfo* pCreateInfos,
862 const VkAllocationCallbacks* pAllocator,
863 VkPipeline* pPipelines) {
864 MESA_TRACE_SCOPE("vkCreateComputePipelines");
865 VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
866 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
867 {
868 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
869 vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(
870 gfxstream_device->internal_object, pipelineCache, createInfoCount, pCreateInfos,
871 pAllocator, pPipelines, true /* do lock */);
872 }
873 return vkCreateComputePipelines_VkResult_return;
874 }
gfxstream_vk_DestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)875 void gfxstream_vk_DestroyPipeline(VkDevice device, VkPipeline pipeline,
876 const VkAllocationCallbacks* pAllocator) {
877 MESA_TRACE_SCOPE("vkDestroyPipeline");
878 if (VK_NULL_HANDLE == pipeline) {
879 return;
880 }
881 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
882 {
883 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
884 vkEnc->vkDestroyPipeline(gfxstream_device->internal_object, pipeline, pAllocator,
885 true /* do lock */);
886 }
887 }
gfxstream_vk_CreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout)888 VkResult gfxstream_vk_CreatePipelineLayout(VkDevice device,
889 const VkPipelineLayoutCreateInfo* pCreateInfo,
890 const VkAllocationCallbacks* pAllocator,
891 VkPipelineLayout* pPipelineLayout) {
892 MESA_TRACE_SCOPE("vkCreatePipelineLayout");
893 VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
894 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
895 {
896 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
897 vkCreatePipelineLayout_VkResult_return =
898 vkEnc->vkCreatePipelineLayout(gfxstream_device->internal_object, pCreateInfo,
899 pAllocator, pPipelineLayout, true /* do lock */);
900 }
901 return vkCreatePipelineLayout_VkResult_return;
902 }
gfxstream_vk_DestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)903 void gfxstream_vk_DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout,
904 const VkAllocationCallbacks* pAllocator) {
905 MESA_TRACE_SCOPE("vkDestroyPipelineLayout");
906 if (VK_NULL_HANDLE == pipelineLayout) {
907 return;
908 }
909 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
910 {
911 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
912 vkEnc->vkDestroyPipelineLayout(gfxstream_device->internal_object, pipelineLayout,
913 pAllocator, true /* do lock */);
914 }
915 }
gfxstream_vk_CreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler)916 VkResult gfxstream_vk_CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo,
917 const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) {
918 MESA_TRACE_SCOPE("vkCreateSampler");
919 VkResult vkCreateSampler_VkResult_return = (VkResult)0;
920 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
921 {
922 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
923 auto resources = gfxstream::vk::ResourceTracker::get();
924 vkCreateSampler_VkResult_return =
925 resources->on_vkCreateSampler(vkEnc, VK_SUCCESS, gfxstream_device->internal_object,
926 pCreateInfo, pAllocator, pSampler);
927 }
928 return vkCreateSampler_VkResult_return;
929 }
gfxstream_vk_DestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)930 void gfxstream_vk_DestroySampler(VkDevice device, VkSampler sampler,
931 const VkAllocationCallbacks* pAllocator) {
932 MESA_TRACE_SCOPE("vkDestroySampler");
933 if (VK_NULL_HANDLE == sampler) {
934 return;
935 }
936 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
937 {
938 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
939 vkEnc->vkDestroySampler(gfxstream_device->internal_object, sampler, pAllocator,
940 true /* do lock */);
941 }
942 }
gfxstream_vk_CreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)943 VkResult gfxstream_vk_CreateDescriptorSetLayout(VkDevice device,
944 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
945 const VkAllocationCallbacks* pAllocator,
946 VkDescriptorSetLayout* pSetLayout) {
947 MESA_TRACE_SCOPE("vkCreateDescriptorSetLayout");
948 VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
949 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
950 {
951 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
952 auto resources = gfxstream::vk::ResourceTracker::get();
953 vkCreateDescriptorSetLayout_VkResult_return = resources->on_vkCreateDescriptorSetLayout(
954 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pCreateInfo, pAllocator,
955 pSetLayout);
956 }
957 return vkCreateDescriptorSetLayout_VkResult_return;
958 }
gfxstream_vk_DestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)959 void gfxstream_vk_DestroyDescriptorSetLayout(VkDevice device,
960 VkDescriptorSetLayout descriptorSetLayout,
961 const VkAllocationCallbacks* pAllocator) {
962 MESA_TRACE_SCOPE("vkDestroyDescriptorSetLayout");
963 if (VK_NULL_HANDLE == descriptorSetLayout) {
964 return;
965 }
966 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
967 {
968 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
969 auto resources = gfxstream::vk::ResourceTracker::get();
970 resources->on_vkDestroyDescriptorSetLayout(vkEnc, gfxstream_device->internal_object,
971 descriptorSetLayout, pAllocator);
972 }
973 }
gfxstream_vk_CreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)974 VkResult gfxstream_vk_CreateDescriptorPool(VkDevice device,
975 const VkDescriptorPoolCreateInfo* pCreateInfo,
976 const VkAllocationCallbacks* pAllocator,
977 VkDescriptorPool* pDescriptorPool) {
978 MESA_TRACE_SCOPE("vkCreateDescriptorPool");
979 VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
980 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
981 {
982 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
983 auto resources = gfxstream::vk::ResourceTracker::get();
984 vkCreateDescriptorPool_VkResult_return = resources->on_vkCreateDescriptorPool(
985 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pCreateInfo, pAllocator,
986 pDescriptorPool);
987 }
988 return vkCreateDescriptorPool_VkResult_return;
989 }
gfxstream_vk_DestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)990 void gfxstream_vk_DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool,
991 const VkAllocationCallbacks* pAllocator) {
992 MESA_TRACE_SCOPE("vkDestroyDescriptorPool");
993 if (VK_NULL_HANDLE == descriptorPool) {
994 return;
995 }
996 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
997 {
998 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
999 auto resources = gfxstream::vk::ResourceTracker::get();
1000 resources->on_vkDestroyDescriptorPool(vkEnc, gfxstream_device->internal_object,
1001 descriptorPool, pAllocator);
1002 }
1003 }
gfxstream_vk_ResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)1004 VkResult gfxstream_vk_ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool,
1005 VkDescriptorPoolResetFlags flags) {
1006 MESA_TRACE_SCOPE("vkResetDescriptorPool");
1007 VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
1008 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1009 {
1010 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1011 auto resources = gfxstream::vk::ResourceTracker::get();
1012 vkResetDescriptorPool_VkResult_return = resources->on_vkResetDescriptorPool(
1013 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, descriptorPool, flags);
1014 }
1015 return vkResetDescriptorPool_VkResult_return;
1016 }
gfxstream_vk_AllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets)1017 VkResult gfxstream_vk_AllocateDescriptorSets(VkDevice device,
1018 const VkDescriptorSetAllocateInfo* pAllocateInfo,
1019 VkDescriptorSet* pDescriptorSets) {
1020 MESA_TRACE_SCOPE("vkAllocateDescriptorSets");
1021 VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
1022 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1023 {
1024 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1025 auto resources = gfxstream::vk::ResourceTracker::get();
1026 vkAllocateDescriptorSets_VkResult_return = resources->on_vkAllocateDescriptorSets(
1027 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pAllocateInfo, pDescriptorSets);
1028 }
1029 return vkAllocateDescriptorSets_VkResult_return;
1030 }
gfxstream_vk_FreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets)1031 VkResult gfxstream_vk_FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool,
1032 uint32_t descriptorSetCount,
1033 const VkDescriptorSet* pDescriptorSets) {
1034 MESA_TRACE_SCOPE("vkFreeDescriptorSets");
1035 VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
1036 if (VK_NULL_HANDLE == pDescriptorSets) {
1037 return vkFreeDescriptorSets_VkResult_return;
1038 }
1039 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1040 {
1041 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1042 auto resources = gfxstream::vk::ResourceTracker::get();
1043 vkFreeDescriptorSets_VkResult_return =
1044 resources->on_vkFreeDescriptorSets(vkEnc, VK_SUCCESS, gfxstream_device->internal_object,
1045 descriptorPool, descriptorSetCount, pDescriptorSets);
1046 }
1047 return vkFreeDescriptorSets_VkResult_return;
1048 }
gfxstream_vk_CreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer)1049 VkResult gfxstream_vk_CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo,
1050 const VkAllocationCallbacks* pAllocator,
1051 VkFramebuffer* pFramebuffer) {
1052 MESA_TRACE_SCOPE("vkCreateFramebuffer");
1053 VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
1054 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1055 {
1056 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1057 vkCreateFramebuffer_VkResult_return =
1058 vkEnc->vkCreateFramebuffer(gfxstream_device->internal_object, pCreateInfo, pAllocator,
1059 pFramebuffer, true /* do lock */);
1060 }
1061 return vkCreateFramebuffer_VkResult_return;
1062 }
gfxstream_vk_DestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)1063 void gfxstream_vk_DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer,
1064 const VkAllocationCallbacks* pAllocator) {
1065 MESA_TRACE_SCOPE("vkDestroyFramebuffer");
1066 if (VK_NULL_HANDLE == framebuffer) {
1067 return;
1068 }
1069 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1070 {
1071 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1072 vkEnc->vkDestroyFramebuffer(gfxstream_device->internal_object, framebuffer, pAllocator,
1073 true /* do lock */);
1074 }
1075 }
gfxstream_vk_CreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)1076 VkResult gfxstream_vk_CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo,
1077 const VkAllocationCallbacks* pAllocator,
1078 VkRenderPass* pRenderPass) {
1079 MESA_TRACE_SCOPE("vkCreateRenderPass");
1080 VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
1081 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1082 {
1083 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1084 vkCreateRenderPass_VkResult_return =
1085 vkEnc->vkCreateRenderPass(gfxstream_device->internal_object, pCreateInfo, pAllocator,
1086 pRenderPass, true /* do lock */);
1087 }
1088 return vkCreateRenderPass_VkResult_return;
1089 }
gfxstream_vk_DestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)1090 void gfxstream_vk_DestroyRenderPass(VkDevice device, VkRenderPass renderPass,
1091 const VkAllocationCallbacks* pAllocator) {
1092 MESA_TRACE_SCOPE("vkDestroyRenderPass");
1093 if (VK_NULL_HANDLE == renderPass) {
1094 return;
1095 }
1096 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1097 {
1098 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1099 vkEnc->vkDestroyRenderPass(gfxstream_device->internal_object, renderPass, pAllocator,
1100 true /* do lock */);
1101 }
1102 }
gfxstream_vk_GetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)1103 void gfxstream_vk_GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass,
1104 VkExtent2D* pGranularity) {
1105 MESA_TRACE_SCOPE("vkGetRenderAreaGranularity");
1106 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1107 {
1108 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1109 vkEnc->vkGetRenderAreaGranularity(gfxstream_device->internal_object, renderPass,
1110 pGranularity, true /* do lock */);
1111 }
1112 }
gfxstream_vk_BeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)1113 VkResult gfxstream_vk_BeginCommandBuffer(VkCommandBuffer commandBuffer,
1114 const VkCommandBufferBeginInfo* pBeginInfo) {
1115 MESA_TRACE_SCOPE("vkBeginCommandBuffer");
1116 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
1117 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1118 {
1119 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1120 gfxstream_commandBuffer->internal_object);
1121 auto resources = gfxstream::vk::ResourceTracker::get();
1122 vkBeginCommandBuffer_VkResult_return = resources->on_vkBeginCommandBuffer(
1123 vkEnc, VK_SUCCESS, gfxstream_commandBuffer->internal_object, pBeginInfo);
1124 }
1125 return vkBeginCommandBuffer_VkResult_return;
1126 }
gfxstream_vk_EndCommandBuffer(VkCommandBuffer commandBuffer)1127 VkResult gfxstream_vk_EndCommandBuffer(VkCommandBuffer commandBuffer) {
1128 MESA_TRACE_SCOPE("vkEndCommandBuffer");
1129 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
1130 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1131 {
1132 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1133 gfxstream_commandBuffer->internal_object);
1134 auto resources = gfxstream::vk::ResourceTracker::get();
1135 vkEndCommandBuffer_VkResult_return = resources->on_vkEndCommandBuffer(
1136 vkEnc, VK_SUCCESS, gfxstream_commandBuffer->internal_object);
1137 }
1138 return vkEndCommandBuffer_VkResult_return;
1139 }
gfxstream_vk_ResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)1140 VkResult gfxstream_vk_ResetCommandBuffer(VkCommandBuffer commandBuffer,
1141 VkCommandBufferResetFlags flags) {
1142 MESA_TRACE_SCOPE("vkResetCommandBuffer");
1143 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
1144 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1145 {
1146 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1147 gfxstream_commandBuffer->internal_object);
1148 auto resources = gfxstream::vk::ResourceTracker::get();
1149 vkResetCommandBuffer_VkResult_return = resources->on_vkResetCommandBuffer(
1150 vkEnc, VK_SUCCESS, gfxstream_commandBuffer->internal_object, flags);
1151 }
1152 return vkResetCommandBuffer_VkResult_return;
1153 }
gfxstream_vk_CmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)1154 void gfxstream_vk_CmdBindPipeline(VkCommandBuffer commandBuffer,
1155 VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
1156 MESA_TRACE_SCOPE("vkCmdBindPipeline");
1157 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1158 {
1159 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1160 gfxstream_commandBuffer->internal_object);
1161 vkEnc->vkCmdBindPipeline(gfxstream_commandBuffer->internal_object, pipelineBindPoint,
1162 pipeline, true /* do lock */);
1163 }
1164 }
gfxstream_vk_CmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)1165 void gfxstream_vk_CmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport,
1166 uint32_t viewportCount, const VkViewport* pViewports) {
1167 MESA_TRACE_SCOPE("vkCmdSetViewport");
1168 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1169 {
1170 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1171 gfxstream_commandBuffer->internal_object);
1172 vkEnc->vkCmdSetViewport(gfxstream_commandBuffer->internal_object, firstViewport,
1173 viewportCount, pViewports, true /* do lock */);
1174 }
1175 }
gfxstream_vk_CmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)1176 void gfxstream_vk_CmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor,
1177 uint32_t scissorCount, const VkRect2D* pScissors) {
1178 MESA_TRACE_SCOPE("vkCmdSetScissor");
1179 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1180 {
1181 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1182 gfxstream_commandBuffer->internal_object);
1183 vkEnc->vkCmdSetScissor(gfxstream_commandBuffer->internal_object, firstScissor, scissorCount,
1184 pScissors, true /* do lock */);
1185 }
1186 }
gfxstream_vk_CmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth)1187 void gfxstream_vk_CmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) {
1188 MESA_TRACE_SCOPE("vkCmdSetLineWidth");
1189 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1190 {
1191 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1192 gfxstream_commandBuffer->internal_object);
1193 vkEnc->vkCmdSetLineWidth(gfxstream_commandBuffer->internal_object, lineWidth,
1194 true /* do lock */);
1195 }
1196 }
gfxstream_vk_CmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor)1197 void gfxstream_vk_CmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor,
1198 float depthBiasClamp, float depthBiasSlopeFactor) {
1199 MESA_TRACE_SCOPE("vkCmdSetDepthBias");
1200 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1201 {
1202 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1203 gfxstream_commandBuffer->internal_object);
1204 vkEnc->vkCmdSetDepthBias(gfxstream_commandBuffer->internal_object, depthBiasConstantFactor,
1205 depthBiasClamp, depthBiasSlopeFactor, true /* do lock */);
1206 }
1207 }
gfxstream_vk_CmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4])1208 void gfxstream_vk_CmdSetBlendConstants(VkCommandBuffer commandBuffer,
1209 const float blendConstants[4]) {
1210 MESA_TRACE_SCOPE("vkCmdSetBlendConstants");
1211 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1212 {
1213 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1214 gfxstream_commandBuffer->internal_object);
1215 vkEnc->vkCmdSetBlendConstants(gfxstream_commandBuffer->internal_object, blendConstants,
1216 true /* do lock */);
1217 }
1218 }
gfxstream_vk_CmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds)1219 void gfxstream_vk_CmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds,
1220 float maxDepthBounds) {
1221 MESA_TRACE_SCOPE("vkCmdSetDepthBounds");
1222 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1223 {
1224 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1225 gfxstream_commandBuffer->internal_object);
1226 vkEnc->vkCmdSetDepthBounds(gfxstream_commandBuffer->internal_object, minDepthBounds,
1227 maxDepthBounds, true /* do lock */);
1228 }
1229 }
gfxstream_vk_CmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask)1230 void gfxstream_vk_CmdSetStencilCompareMask(VkCommandBuffer commandBuffer,
1231 VkStencilFaceFlags faceMask, uint32_t compareMask) {
1232 MESA_TRACE_SCOPE("vkCmdSetStencilCompareMask");
1233 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1234 {
1235 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1236 gfxstream_commandBuffer->internal_object);
1237 vkEnc->vkCmdSetStencilCompareMask(gfxstream_commandBuffer->internal_object, faceMask,
1238 compareMask, true /* do lock */);
1239 }
1240 }
gfxstream_vk_CmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask)1241 void gfxstream_vk_CmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
1242 uint32_t writeMask) {
1243 MESA_TRACE_SCOPE("vkCmdSetStencilWriteMask");
1244 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1245 {
1246 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1247 gfxstream_commandBuffer->internal_object);
1248 vkEnc->vkCmdSetStencilWriteMask(gfxstream_commandBuffer->internal_object, faceMask,
1249 writeMask, true /* do lock */);
1250 }
1251 }
gfxstream_vk_CmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference)1252 void gfxstream_vk_CmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
1253 uint32_t reference) {
1254 MESA_TRACE_SCOPE("vkCmdSetStencilReference");
1255 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1256 {
1257 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1258 gfxstream_commandBuffer->internal_object);
1259 vkEnc->vkCmdSetStencilReference(gfxstream_commandBuffer->internal_object, faceMask,
1260 reference, true /* do lock */);
1261 }
1262 }
gfxstream_vk_CmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)1263 void gfxstream_vk_CmdBindDescriptorSets(
1264 VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout,
1265 uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets,
1266 uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) {
1267 MESA_TRACE_SCOPE("vkCmdBindDescriptorSets");
1268 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1269 {
1270 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1271 gfxstream_commandBuffer->internal_object);
1272 auto resources = gfxstream::vk::ResourceTracker::get();
1273 resources->on_vkCmdBindDescriptorSets(
1274 vkEnc, gfxstream_commandBuffer->internal_object, pipelineBindPoint, layout, firstSet,
1275 descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1276 }
1277 }
gfxstream_vk_CmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)1278 void gfxstream_vk_CmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer,
1279 VkDeviceSize offset, VkIndexType indexType) {
1280 MESA_TRACE_SCOPE("vkCmdBindIndexBuffer");
1281 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1282 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, buffer);
1283 {
1284 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1285 gfxstream_commandBuffer->internal_object);
1286 vkEnc->vkCmdBindIndexBuffer(
1287 gfxstream_commandBuffer->internal_object,
1288 gfxstream_buffer ? gfxstream_buffer->internal_object : VK_NULL_HANDLE, offset,
1289 indexType, true /* do lock */);
1290 }
1291 }
gfxstream_vk_CmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)1292 void gfxstream_vk_CmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding,
1293 uint32_t bindingCount, const VkBuffer* pBuffers,
1294 const VkDeviceSize* pOffsets) {
1295 MESA_TRACE_SCOPE("vkCmdBindVertexBuffers");
1296 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1297 {
1298 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1299 gfxstream_commandBuffer->internal_object);
1300 std::vector<VkBuffer> internal_pBuffers(bindingCount);
1301 for (uint32_t i = 0; i < bindingCount; ++i) {
1302 if (pBuffers) {
1303 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_pBuffers, pBuffers[i]);
1304 internal_pBuffers[i] = gfxstream_pBuffers->internal_object;
1305 }
1306 }
1307 vkEnc->vkCmdBindVertexBuffers(gfxstream_commandBuffer->internal_object, firstBinding,
1308 bindingCount, internal_pBuffers.data(), pOffsets,
1309 true /* do lock */);
1310 }
1311 }
gfxstream_vk_CmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)1312 void gfxstream_vk_CmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount,
1313 uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) {
1314 MESA_TRACE_SCOPE("vkCmdDraw");
1315 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1316 {
1317 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1318 gfxstream_commandBuffer->internal_object);
1319 vkEnc->vkCmdDraw(gfxstream_commandBuffer->internal_object, vertexCount, instanceCount,
1320 firstVertex, firstInstance, true /* do lock */);
1321 }
1322 }
gfxstream_vk_CmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)1323 void gfxstream_vk_CmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount,
1324 uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset,
1325 uint32_t firstInstance) {
1326 MESA_TRACE_SCOPE("vkCmdDrawIndexed");
1327 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1328 {
1329 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1330 gfxstream_commandBuffer->internal_object);
1331 vkEnc->vkCmdDrawIndexed(gfxstream_commandBuffer->internal_object, indexCount, instanceCount,
1332 firstIndex, vertexOffset, firstInstance, true /* do lock */);
1333 }
1334 }
gfxstream_vk_CmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1335 void gfxstream_vk_CmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer,
1336 VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
1337 MESA_TRACE_SCOPE("vkCmdDrawIndirect");
1338 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1339 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, buffer);
1340 {
1341 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1342 gfxstream_commandBuffer->internal_object);
1343 vkEnc->vkCmdDrawIndirect(gfxstream_commandBuffer->internal_object,
1344 gfxstream_buffer->internal_object, offset, drawCount, stride,
1345 true /* do lock */);
1346 }
1347 }
gfxstream_vk_CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1348 void gfxstream_vk_CmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer,
1349 VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
1350 MESA_TRACE_SCOPE("vkCmdDrawIndexedIndirect");
1351 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1352 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, buffer);
1353 {
1354 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1355 gfxstream_commandBuffer->internal_object);
1356 vkEnc->vkCmdDrawIndexedIndirect(gfxstream_commandBuffer->internal_object,
1357 gfxstream_buffer->internal_object, offset, drawCount,
1358 stride, true /* do lock */);
1359 }
1360 }
gfxstream_vk_CmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1361 void gfxstream_vk_CmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX,
1362 uint32_t groupCountY, uint32_t groupCountZ) {
1363 MESA_TRACE_SCOPE("vkCmdDispatch");
1364 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1365 {
1366 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1367 gfxstream_commandBuffer->internal_object);
1368 vkEnc->vkCmdDispatch(gfxstream_commandBuffer->internal_object, groupCountX, groupCountY,
1369 groupCountZ, true /* do lock */);
1370 }
1371 }
gfxstream_vk_CmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)1372 void gfxstream_vk_CmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer,
1373 VkDeviceSize offset) {
1374 MESA_TRACE_SCOPE("vkCmdDispatchIndirect");
1375 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1376 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, buffer);
1377 {
1378 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1379 gfxstream_commandBuffer->internal_object);
1380 vkEnc->vkCmdDispatchIndirect(gfxstream_commandBuffer->internal_object,
1381 gfxstream_buffer->internal_object, offset, true /* do lock */);
1382 }
1383 }
gfxstream_vk_CmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)1384 void gfxstream_vk_CmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer,
1385 VkBuffer dstBuffer, uint32_t regionCount,
1386 const VkBufferCopy* pRegions) {
1387 MESA_TRACE_SCOPE("vkCmdCopyBuffer");
1388 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1389 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_srcBuffer, srcBuffer);
1390 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_dstBuffer, dstBuffer);
1391 {
1392 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1393 gfxstream_commandBuffer->internal_object);
1394 vkEnc->vkCmdCopyBuffer(
1395 gfxstream_commandBuffer->internal_object, gfxstream_srcBuffer->internal_object,
1396 gfxstream_dstBuffer->internal_object, regionCount, pRegions, true /* do lock */);
1397 }
1398 }
gfxstream_vk_CmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)1399 void gfxstream_vk_CmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage,
1400 VkImageLayout srcImageLayout, VkImage dstImage,
1401 VkImageLayout dstImageLayout, uint32_t regionCount,
1402 const VkImageCopy* pRegions) {
1403 MESA_TRACE_SCOPE("vkCmdCopyImage");
1404 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1405 {
1406 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1407 gfxstream_commandBuffer->internal_object);
1408 vkEnc->vkCmdCopyImage(gfxstream_commandBuffer->internal_object, srcImage, srcImageLayout,
1409 dstImage, dstImageLayout, regionCount, pRegions, true /* do lock */);
1410 }
1411 }
gfxstream_vk_CmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)1412 void gfxstream_vk_CmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage,
1413 VkImageLayout srcImageLayout, VkImage dstImage,
1414 VkImageLayout dstImageLayout, uint32_t regionCount,
1415 const VkImageBlit* pRegions, VkFilter filter) {
1416 MESA_TRACE_SCOPE("vkCmdBlitImage");
1417 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1418 {
1419 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1420 gfxstream_commandBuffer->internal_object);
1421 vkEnc->vkCmdBlitImage(gfxstream_commandBuffer->internal_object, srcImage, srcImageLayout,
1422 dstImage, dstImageLayout, regionCount, pRegions, filter,
1423 true /* do lock */);
1424 }
1425 }
gfxstream_vk_CmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)1426 void gfxstream_vk_CmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer,
1427 VkImage dstImage, VkImageLayout dstImageLayout,
1428 uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1429 MESA_TRACE_SCOPE("vkCmdCopyBufferToImage");
1430 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1431 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_srcBuffer, srcBuffer);
1432 {
1433 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1434 gfxstream_commandBuffer->internal_object);
1435 vkEnc->vkCmdCopyBufferToImage(gfxstream_commandBuffer->internal_object,
1436 gfxstream_srcBuffer->internal_object, dstImage,
1437 dstImageLayout, regionCount, pRegions, true /* do lock */);
1438 }
1439 }
gfxstream_vk_CmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)1440 void gfxstream_vk_CmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage,
1441 VkImageLayout srcImageLayout, VkBuffer dstBuffer,
1442 uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1443 MESA_TRACE_SCOPE("vkCmdCopyImageToBuffer");
1444 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1445 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_dstBuffer, dstBuffer);
1446 {
1447 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1448 gfxstream_commandBuffer->internal_object);
1449 vkEnc->vkCmdCopyImageToBuffer(gfxstream_commandBuffer->internal_object, srcImage,
1450 srcImageLayout, gfxstream_dstBuffer->internal_object,
1451 regionCount, pRegions, true /* do lock */);
1452 }
1453 }
gfxstream_vk_CmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData)1454 void gfxstream_vk_CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer,
1455 VkDeviceSize dstOffset, VkDeviceSize dataSize,
1456 const void* pData) {
1457 MESA_TRACE_SCOPE("vkCmdUpdateBuffer");
1458 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1459 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_dstBuffer, dstBuffer);
1460 {
1461 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1462 gfxstream_commandBuffer->internal_object);
1463 vkEnc->vkCmdUpdateBuffer(gfxstream_commandBuffer->internal_object,
1464 gfxstream_dstBuffer->internal_object, dstOffset, dataSize, pData,
1465 true /* do lock */);
1466 }
1467 }
gfxstream_vk_CmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data)1468 void gfxstream_vk_CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer,
1469 VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) {
1470 MESA_TRACE_SCOPE("vkCmdFillBuffer");
1471 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1472 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_dstBuffer, dstBuffer);
1473 {
1474 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1475 gfxstream_commandBuffer->internal_object);
1476 vkEnc->vkCmdFillBuffer(gfxstream_commandBuffer->internal_object,
1477 gfxstream_dstBuffer->internal_object, dstOffset, size, data,
1478 true /* do lock */);
1479 }
1480 }
gfxstream_vk_CmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1481 void gfxstream_vk_CmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image,
1482 VkImageLayout imageLayout, const VkClearColorValue* pColor,
1483 uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
1484 MESA_TRACE_SCOPE("vkCmdClearColorImage");
1485 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1486 {
1487 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1488 gfxstream_commandBuffer->internal_object);
1489 vkEnc->vkCmdClearColorImage(gfxstream_commandBuffer->internal_object, image, imageLayout,
1490 pColor, rangeCount, pRanges, true /* do lock */);
1491 }
1492 }
gfxstream_vk_CmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1493 void gfxstream_vk_CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image,
1494 VkImageLayout imageLayout,
1495 const VkClearDepthStencilValue* pDepthStencil,
1496 uint32_t rangeCount,
1497 const VkImageSubresourceRange* pRanges) {
1498 MESA_TRACE_SCOPE("vkCmdClearDepthStencilImage");
1499 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1500 {
1501 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1502 gfxstream_commandBuffer->internal_object);
1503 vkEnc->vkCmdClearDepthStencilImage(gfxstream_commandBuffer->internal_object, image,
1504 imageLayout, pDepthStencil, rangeCount, pRanges,
1505 true /* do lock */);
1506 }
1507 }
gfxstream_vk_CmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)1508 void gfxstream_vk_CmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount,
1509 const VkClearAttachment* pAttachments, uint32_t rectCount,
1510 const VkClearRect* pRects) {
1511 MESA_TRACE_SCOPE("vkCmdClearAttachments");
1512 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1513 {
1514 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1515 gfxstream_commandBuffer->internal_object);
1516 vkEnc->vkCmdClearAttachments(gfxstream_commandBuffer->internal_object, attachmentCount,
1517 pAttachments, rectCount, pRects, true /* do lock */);
1518 }
1519 }
gfxstream_vk_CmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)1520 void gfxstream_vk_CmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage,
1521 VkImageLayout srcImageLayout, VkImage dstImage,
1522 VkImageLayout dstImageLayout, uint32_t regionCount,
1523 const VkImageResolve* pRegions) {
1524 MESA_TRACE_SCOPE("vkCmdResolveImage");
1525 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1526 {
1527 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1528 gfxstream_commandBuffer->internal_object);
1529 vkEnc->vkCmdResolveImage(gfxstream_commandBuffer->internal_object, srcImage, srcImageLayout,
1530 dstImage, dstImageLayout, regionCount, pRegions,
1531 true /* do lock */);
1532 }
1533 }
gfxstream_vk_CmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1534 void gfxstream_vk_CmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event,
1535 VkPipelineStageFlags stageMask) {
1536 MESA_TRACE_SCOPE("vkCmdSetEvent");
1537 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1538 {
1539 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1540 gfxstream_commandBuffer->internal_object);
1541 vkEnc->vkCmdSetEvent(gfxstream_commandBuffer->internal_object, event, stageMask,
1542 true /* do lock */);
1543 }
1544 }
gfxstream_vk_CmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1545 void gfxstream_vk_CmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event,
1546 VkPipelineStageFlags stageMask) {
1547 MESA_TRACE_SCOPE("vkCmdResetEvent");
1548 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1549 {
1550 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1551 gfxstream_commandBuffer->internal_object);
1552 vkEnc->vkCmdResetEvent(gfxstream_commandBuffer->internal_object, event, stageMask,
1553 true /* do lock */);
1554 }
1555 }
gfxstream_vk_CmdWaitEvents(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)1556 void gfxstream_vk_CmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount,
1557 const VkEvent* pEvents, VkPipelineStageFlags srcStageMask,
1558 VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount,
1559 const VkMemoryBarrier* pMemoryBarriers,
1560 uint32_t bufferMemoryBarrierCount,
1561 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1562 uint32_t imageMemoryBarrierCount,
1563 const VkImageMemoryBarrier* pImageMemoryBarriers) {
1564 MESA_TRACE_SCOPE("vkCmdWaitEvents");
1565 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1566 {
1567 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1568 gfxstream_commandBuffer->internal_object);
1569 std::vector<VkBufferMemoryBarrier> internal_pBufferMemoryBarriers(bufferMemoryBarrierCount);
1570 for (uint32_t i = 0; i < bufferMemoryBarrierCount; ++i) {
1571 internal_pBufferMemoryBarriers[i] = pBufferMemoryBarriers[i];
1572 /* VkBufferMemoryBarrier::buffer */
1573 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer,
1574 internal_pBufferMemoryBarriers[i].buffer);
1575 internal_pBufferMemoryBarriers[i].buffer = gfxstream_buffer->internal_object;
1576 }
1577 vkEnc->vkCmdWaitEvents(gfxstream_commandBuffer->internal_object, eventCount, pEvents,
1578 srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers,
1579 bufferMemoryBarrierCount, internal_pBufferMemoryBarriers.data(),
1580 imageMemoryBarrierCount, pImageMemoryBarriers, true /* do lock */);
1581 }
1582 }
gfxstream_vk_CmdPipelineBarrier(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)1583 void gfxstream_vk_CmdPipelineBarrier(
1584 VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask,
1585 VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags,
1586 uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers,
1587 uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1588 uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
1589 MESA_TRACE_SCOPE("vkCmdPipelineBarrier");
1590 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1591 {
1592 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1593 gfxstream_commandBuffer->internal_object);
1594 std::vector<VkBufferMemoryBarrier> internal_pBufferMemoryBarriers(bufferMemoryBarrierCount);
1595 for (uint32_t i = 0; i < bufferMemoryBarrierCount; ++i) {
1596 internal_pBufferMemoryBarriers[i] = pBufferMemoryBarriers[i];
1597 /* VkBufferMemoryBarrier::buffer */
1598 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer,
1599 internal_pBufferMemoryBarriers[i].buffer);
1600 internal_pBufferMemoryBarriers[i].buffer = gfxstream_buffer->internal_object;
1601 }
1602 auto resources = gfxstream::vk::ResourceTracker::get();
1603 resources->on_vkCmdPipelineBarrier(
1604 vkEnc, gfxstream_commandBuffer->internal_object, srcStageMask, dstStageMask,
1605 dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount,
1606 internal_pBufferMemoryBarriers.data(), imageMemoryBarrierCount, pImageMemoryBarriers);
1607 }
1608 }
gfxstream_vk_CmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags)1609 void gfxstream_vk_CmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
1610 uint32_t query, VkQueryControlFlags flags) {
1611 MESA_TRACE_SCOPE("vkCmdBeginQuery");
1612 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1613 {
1614 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1615 gfxstream_commandBuffer->internal_object);
1616 vkEnc->vkCmdBeginQuery(gfxstream_commandBuffer->internal_object, queryPool, query, flags,
1617 true /* do lock */);
1618 }
1619 }
gfxstream_vk_CmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query)1620 void gfxstream_vk_CmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
1621 uint32_t query) {
1622 MESA_TRACE_SCOPE("vkCmdEndQuery");
1623 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1624 {
1625 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1626 gfxstream_commandBuffer->internal_object);
1627 vkEnc->vkCmdEndQuery(gfxstream_commandBuffer->internal_object, queryPool, query,
1628 true /* do lock */);
1629 }
1630 }
gfxstream_vk_CmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1631 void gfxstream_vk_CmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
1632 uint32_t firstQuery, uint32_t queryCount) {
1633 MESA_TRACE_SCOPE("vkCmdResetQueryPool");
1634 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1635 {
1636 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1637 gfxstream_commandBuffer->internal_object);
1638 vkEnc->vkCmdResetQueryPool(gfxstream_commandBuffer->internal_object, queryPool, firstQuery,
1639 queryCount, true /* do lock */);
1640 }
1641 }
gfxstream_vk_CmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query)1642 void gfxstream_vk_CmdWriteTimestamp(VkCommandBuffer commandBuffer,
1643 VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool,
1644 uint32_t query) {
1645 MESA_TRACE_SCOPE("vkCmdWriteTimestamp");
1646 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1647 {
1648 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1649 gfxstream_commandBuffer->internal_object);
1650 vkEnc->vkCmdWriteTimestamp(gfxstream_commandBuffer->internal_object, pipelineStage,
1651 queryPool, query, true /* do lock */);
1652 }
1653 }
gfxstream_vk_CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags)1654 void gfxstream_vk_CmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
1655 uint32_t firstQuery, uint32_t queryCount,
1656 VkBuffer dstBuffer, VkDeviceSize dstOffset,
1657 VkDeviceSize stride, VkQueryResultFlags flags) {
1658 MESA_TRACE_SCOPE("vkCmdCopyQueryPoolResults");
1659 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1660 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_dstBuffer, dstBuffer);
1661 {
1662 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1663 gfxstream_commandBuffer->internal_object);
1664 vkEnc->vkCmdCopyQueryPoolResults(
1665 gfxstream_commandBuffer->internal_object, queryPool, firstQuery, queryCount,
1666 gfxstream_dstBuffer->internal_object, dstOffset, stride, flags, true /* do lock */);
1667 }
1668 }
gfxstream_vk_CmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues)1669 void gfxstream_vk_CmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout,
1670 VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size,
1671 const void* pValues) {
1672 MESA_TRACE_SCOPE("vkCmdPushConstants");
1673 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1674 {
1675 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1676 gfxstream_commandBuffer->internal_object);
1677 vkEnc->vkCmdPushConstants(gfxstream_commandBuffer->internal_object, layout, stageFlags,
1678 offset, size, pValues, true /* do lock */);
1679 }
1680 }
gfxstream_vk_CmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)1681 void gfxstream_vk_CmdBeginRenderPass(VkCommandBuffer commandBuffer,
1682 const VkRenderPassBeginInfo* pRenderPassBegin,
1683 VkSubpassContents contents) {
1684 MESA_TRACE_SCOPE("vkCmdBeginRenderPass");
1685 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1686 {
1687 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1688 gfxstream_commandBuffer->internal_object);
1689 vkEnc->vkCmdBeginRenderPass(gfxstream_commandBuffer->internal_object, pRenderPassBegin,
1690 contents, true /* do lock */);
1691 }
1692 }
gfxstream_vk_CmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents)1693 void gfxstream_vk_CmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) {
1694 MESA_TRACE_SCOPE("vkCmdNextSubpass");
1695 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1696 {
1697 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1698 gfxstream_commandBuffer->internal_object);
1699 vkEnc->vkCmdNextSubpass(gfxstream_commandBuffer->internal_object, contents,
1700 true /* do lock */);
1701 }
1702 }
gfxstream_vk_CmdEndRenderPass(VkCommandBuffer commandBuffer)1703 void gfxstream_vk_CmdEndRenderPass(VkCommandBuffer commandBuffer) {
1704 MESA_TRACE_SCOPE("vkCmdEndRenderPass");
1705 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1706 {
1707 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1708 gfxstream_commandBuffer->internal_object);
1709 vkEnc->vkCmdEndRenderPass(gfxstream_commandBuffer->internal_object, true /* do lock */);
1710 }
1711 }
gfxstream_vk_CmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)1712 void gfxstream_vk_CmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount,
1713 const VkCommandBuffer* pCommandBuffers) {
1714 MESA_TRACE_SCOPE("vkCmdExecuteCommands");
1715 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1716 {
1717 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1718 gfxstream_commandBuffer->internal_object);
1719 std::vector<VkCommandBuffer> internal_pCommandBuffers(commandBufferCount);
1720 for (uint32_t i = 0; i < commandBufferCount; ++i) {
1721 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_pCommandBuffers,
1722 pCommandBuffers[i]);
1723 internal_pCommandBuffers[i] = gfxstream_pCommandBuffers->internal_object;
1724 }
1725 auto resources = gfxstream::vk::ResourceTracker::get();
1726 resources->on_vkCmdExecuteCommands(vkEnc, gfxstream_commandBuffer->internal_object,
1727 commandBufferCount, internal_pCommandBuffers.data());
1728 }
1729 }
1730 #endif
1731 #ifdef VK_VERSION_1_1
gfxstream_vk_BindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)1732 VkResult gfxstream_vk_BindBufferMemory2(VkDevice device, uint32_t bindInfoCount,
1733 const VkBindBufferMemoryInfo* pBindInfos) {
1734 MESA_TRACE_SCOPE("vkBindBufferMemory2");
1735 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
1736 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1737 {
1738 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1739 std::vector<VkBindBufferMemoryInfo> internal_pBindInfos(bindInfoCount);
1740 for (uint32_t i = 0; i < bindInfoCount; ++i) {
1741 internal_pBindInfos[i] = pBindInfos[i];
1742 /* VkBindBufferMemoryInfo::buffer */
1743 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, internal_pBindInfos[i].buffer);
1744 internal_pBindInfos[i].buffer = gfxstream_buffer->internal_object;
1745 }
1746 auto resources = gfxstream::vk::ResourceTracker::get();
1747 vkBindBufferMemory2_VkResult_return =
1748 resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, gfxstream_device->internal_object,
1749 bindInfoCount, internal_pBindInfos.data());
1750 }
1751 return vkBindBufferMemory2_VkResult_return;
1752 }
gfxstream_vk_BindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)1753 VkResult gfxstream_vk_BindImageMemory2(VkDevice device, uint32_t bindInfoCount,
1754 const VkBindImageMemoryInfo* pBindInfos) {
1755 MESA_TRACE_SCOPE("vkBindImageMemory2");
1756 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
1757 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1758 {
1759 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1760 auto resources = gfxstream::vk::ResourceTracker::get();
1761 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(
1762 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, bindInfoCount, pBindInfos);
1763 }
1764 return vkBindImageMemory2_VkResult_return;
1765 }
gfxstream_vk_GetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)1766 void gfxstream_vk_GetDeviceGroupPeerMemoryFeatures(VkDevice device, uint32_t heapIndex,
1767 uint32_t localDeviceIndex,
1768 uint32_t remoteDeviceIndex,
1769 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
1770 MESA_TRACE_SCOPE("vkGetDeviceGroupPeerMemoryFeatures");
1771 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1772 {
1773 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1774 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(gfxstream_device->internal_object, heapIndex,
1775 localDeviceIndex, remoteDeviceIndex,
1776 pPeerMemoryFeatures, true /* do lock */);
1777 }
1778 }
gfxstream_vk_CmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask)1779 void gfxstream_vk_CmdSetDeviceMask(VkCommandBuffer commandBuffer, uint32_t deviceMask) {
1780 MESA_TRACE_SCOPE("vkCmdSetDeviceMask");
1781 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1782 {
1783 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1784 gfxstream_commandBuffer->internal_object);
1785 vkEnc->vkCmdSetDeviceMask(gfxstream_commandBuffer->internal_object, deviceMask,
1786 true /* do lock */);
1787 }
1788 }
gfxstream_vk_CmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1789 void gfxstream_vk_CmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX,
1790 uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX,
1791 uint32_t groupCountY, uint32_t groupCountZ) {
1792 MESA_TRACE_SCOPE("vkCmdDispatchBase");
1793 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
1794 {
1795 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
1796 gfxstream_commandBuffer->internal_object);
1797 vkEnc->vkCmdDispatchBase(gfxstream_commandBuffer->internal_object, baseGroupX, baseGroupY,
1798 baseGroupZ, groupCountX, groupCountY, groupCountZ,
1799 true /* do lock */);
1800 }
1801 }
gfxstream_vk_GetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1802 void gfxstream_vk_GetImageMemoryRequirements2(VkDevice device,
1803 const VkImageMemoryRequirementsInfo2* pInfo,
1804 VkMemoryRequirements2* pMemoryRequirements) {
1805 MESA_TRACE_SCOPE("vkGetImageMemoryRequirements2");
1806 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1807 {
1808 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1809 auto resources = gfxstream::vk::ResourceTracker::get();
1810 resources->on_vkGetImageMemoryRequirements2(vkEnc, gfxstream_device->internal_object, pInfo,
1811 pMemoryRequirements);
1812 }
1813 }
gfxstream_vk_GetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1814 void gfxstream_vk_GetBufferMemoryRequirements2(VkDevice device,
1815 const VkBufferMemoryRequirementsInfo2* pInfo,
1816 VkMemoryRequirements2* pMemoryRequirements) {
1817 MESA_TRACE_SCOPE("vkGetBufferMemoryRequirements2");
1818 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1819 {
1820 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1821 std::vector<VkBufferMemoryRequirementsInfo2> internal_pInfo(1);
1822 for (uint32_t i = 0; i < 1; ++i) {
1823 internal_pInfo[i] = pInfo[i];
1824 /* VkBufferMemoryRequirementsInfo2::buffer */
1825 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, internal_pInfo[i].buffer);
1826 internal_pInfo[i].buffer = gfxstream_buffer->internal_object;
1827 }
1828 auto resources = gfxstream::vk::ResourceTracker::get();
1829 resources->on_vkGetBufferMemoryRequirements2(vkEnc, gfxstream_device->internal_object,
1830 internal_pInfo.data(), pMemoryRequirements);
1831 }
1832 }
gfxstream_vk_GetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)1833 void gfxstream_vk_GetImageSparseMemoryRequirements2(
1834 VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
1835 uint32_t* pSparseMemoryRequirementCount,
1836 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
1837 MESA_TRACE_SCOPE("vkGetImageSparseMemoryRequirements2");
1838 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1839 {
1840 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1841 vkEnc->vkGetImageSparseMemoryRequirements2(gfxstream_device->internal_object, pInfo,
1842 pSparseMemoryRequirementCount,
1843 pSparseMemoryRequirements, true /* do lock */);
1844 }
1845 }
gfxstream_vk_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)1846 void gfxstream_vk_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
1847 VkPhysicalDeviceFeatures2* pFeatures) {
1848 MESA_TRACE_SCOPE("vkGetPhysicalDeviceFeatures2");
1849 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
1850 {
1851 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1852 vkEnc->vkGetPhysicalDeviceFeatures2(gfxstream_physicalDevice->internal_object, pFeatures,
1853 true /* do lock */);
1854 }
1855 }
gfxstream_vk_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)1856 void gfxstream_vk_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
1857 VkPhysicalDeviceProperties2* pProperties) {
1858 MESA_TRACE_SCOPE("vkGetPhysicalDeviceProperties2");
1859 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
1860 {
1861 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1862 vkEnc->vkGetPhysicalDeviceProperties2(gfxstream_physicalDevice->internal_object,
1863 pProperties, true /* do lock */);
1864 }
1865 }
gfxstream_vk_GetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)1866 void gfxstream_vk_GetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,
1867 VkFormat format,
1868 VkFormatProperties2* pFormatProperties) {
1869 MESA_TRACE_SCOPE("vkGetPhysicalDeviceFormatProperties2");
1870 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
1871 {
1872 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1873 vkEnc->vkGetPhysicalDeviceFormatProperties2(gfxstream_physicalDevice->internal_object,
1874 format, pFormatProperties, true /* do lock */);
1875 }
1876 }
gfxstream_vk_GetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)1877 VkResult gfxstream_vk_GetPhysicalDeviceImageFormatProperties2(
1878 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1879 VkImageFormatProperties2* pImageFormatProperties) {
1880 MESA_TRACE_SCOPE("vkGetPhysicalDeviceImageFormatProperties2");
1881 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
1882 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
1883 {
1884 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1885 auto resources = gfxstream::vk::ResourceTracker::get();
1886 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return =
1887 resources->on_vkGetPhysicalDeviceImageFormatProperties2(
1888 vkEnc, VK_SUCCESS, gfxstream_physicalDevice->internal_object, pImageFormatInfo,
1889 pImageFormatProperties);
1890 }
1891 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1892 }
gfxstream_vk_GetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)1893 void gfxstream_vk_GetPhysicalDeviceQueueFamilyProperties2(
1894 VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
1895 VkQueueFamilyProperties2* pQueueFamilyProperties) {
1896 MESA_TRACE_SCOPE("vkGetPhysicalDeviceQueueFamilyProperties2");
1897 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
1898 {
1899 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1900 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(
1901 gfxstream_physicalDevice->internal_object, pQueueFamilyPropertyCount,
1902 pQueueFamilyProperties, true /* do lock */);
1903 }
1904 }
gfxstream_vk_GetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)1905 void gfxstream_vk_GetPhysicalDeviceMemoryProperties2(
1906 VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
1907 MESA_TRACE_SCOPE("vkGetPhysicalDeviceMemoryProperties2");
1908 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
1909 {
1910 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1911 vkEnc->vkGetPhysicalDeviceMemoryProperties2(gfxstream_physicalDevice->internal_object,
1912 pMemoryProperties, true /* do lock */);
1913 }
1914 }
gfxstream_vk_GetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)1915 void gfxstream_vk_GetPhysicalDeviceSparseImageFormatProperties2(
1916 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1917 uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) {
1918 MESA_TRACE_SCOPE("vkGetPhysicalDeviceSparseImageFormatProperties2");
1919 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
1920 {
1921 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1922 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(
1923 gfxstream_physicalDevice->internal_object, pFormatInfo, pPropertyCount, pProperties,
1924 true /* do lock */);
1925 }
1926 }
gfxstream_vk_TrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)1927 void gfxstream_vk_TrimCommandPool(VkDevice device, VkCommandPool commandPool,
1928 VkCommandPoolTrimFlags flags) {
1929 MESA_TRACE_SCOPE("vkTrimCommandPool");
1930 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1931 VK_FROM_HANDLE(gfxstream_vk_command_pool, gfxstream_commandPool, commandPool);
1932 {
1933 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1934 vkEnc->vkTrimCommandPool(gfxstream_device->internal_object,
1935 gfxstream_commandPool->internal_object, flags, true /* do lock */);
1936 }
1937 }
gfxstream_vk_CreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)1938 VkResult gfxstream_vk_CreateSamplerYcbcrConversion(
1939 VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1940 const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) {
1941 MESA_TRACE_SCOPE("vkCreateSamplerYcbcrConversion");
1942 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
1943 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1944 {
1945 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1946 auto resources = gfxstream::vk::ResourceTracker::get();
1947 vkCreateSamplerYcbcrConversion_VkResult_return =
1948 resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS,
1949 gfxstream_device->internal_object,
1950 pCreateInfo, pAllocator, pYcbcrConversion);
1951 }
1952 return vkCreateSamplerYcbcrConversion_VkResult_return;
1953 }
gfxstream_vk_DestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)1954 void gfxstream_vk_DestroySamplerYcbcrConversion(VkDevice device,
1955 VkSamplerYcbcrConversion ycbcrConversion,
1956 const VkAllocationCallbacks* pAllocator) {
1957 MESA_TRACE_SCOPE("vkDestroySamplerYcbcrConversion");
1958 if (VK_NULL_HANDLE == ycbcrConversion) {
1959 return;
1960 }
1961 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1962 {
1963 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1964 auto resources = gfxstream::vk::ResourceTracker::get();
1965 resources->on_vkDestroySamplerYcbcrConversion(vkEnc, gfxstream_device->internal_object,
1966 ycbcrConversion, pAllocator);
1967 }
1968 }
gfxstream_vk_CreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)1969 VkResult gfxstream_vk_CreateDescriptorUpdateTemplate(
1970 VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1971 const VkAllocationCallbacks* pAllocator,
1972 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
1973 MESA_TRACE_SCOPE("vkCreateDescriptorUpdateTemplate");
1974 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1975 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1976 {
1977 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1978 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(
1979 gfxstream_device->internal_object, pCreateInfo, pAllocator, pDescriptorUpdateTemplate,
1980 true /* do lock */);
1981 }
1982 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1983 }
gfxstream_vk_DestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)1984 void gfxstream_vk_DestroyDescriptorUpdateTemplate(
1985 VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1986 const VkAllocationCallbacks* pAllocator) {
1987 MESA_TRACE_SCOPE("vkDestroyDescriptorUpdateTemplate");
1988 if (VK_NULL_HANDLE == descriptorUpdateTemplate) {
1989 return;
1990 }
1991 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
1992 {
1993 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
1994 vkEnc->vkDestroyDescriptorUpdateTemplate(gfxstream_device->internal_object,
1995 descriptorUpdateTemplate, pAllocator,
1996 true /* do lock */);
1997 }
1998 }
gfxstream_vk_UpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)1999 void gfxstream_vk_UpdateDescriptorSetWithTemplate(
2000 VkDevice device, VkDescriptorSet descriptorSet,
2001 VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) {
2002 MESA_TRACE_SCOPE("vkUpdateDescriptorSetWithTemplate");
2003 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2004 {
2005 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2006 auto resources = gfxstream::vk::ResourceTracker::get();
2007 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, gfxstream_device->internal_object,
2008 descriptorSet, descriptorUpdateTemplate,
2009 pData);
2010 }
2011 }
gfxstream_vk_GetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)2012 void gfxstream_vk_GetPhysicalDeviceExternalBufferProperties(
2013 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2014 VkExternalBufferProperties* pExternalBufferProperties) {
2015 MESA_TRACE_SCOPE("vkGetPhysicalDeviceExternalBufferProperties");
2016 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2017 {
2018 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2019 auto resources = gfxstream::vk::ResourceTracker::get();
2020 resources->on_vkGetPhysicalDeviceExternalBufferProperties(
2021 vkEnc, gfxstream_physicalDevice->internal_object, pExternalBufferInfo,
2022 pExternalBufferProperties);
2023 }
2024 }
gfxstream_vk_GetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)2025 void gfxstream_vk_GetPhysicalDeviceExternalFenceProperties(
2026 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2027 VkExternalFenceProperties* pExternalFenceProperties) {
2028 MESA_TRACE_SCOPE("vkGetPhysicalDeviceExternalFenceProperties");
2029 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2030 {
2031 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2032 auto resources = gfxstream::vk::ResourceTracker::get();
2033 resources->on_vkGetPhysicalDeviceExternalFenceProperties(
2034 vkEnc, gfxstream_physicalDevice->internal_object, pExternalFenceInfo,
2035 pExternalFenceProperties);
2036 }
2037 }
gfxstream_vk_GetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)2038 void gfxstream_vk_GetPhysicalDeviceExternalSemaphoreProperties(
2039 VkPhysicalDevice physicalDevice,
2040 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2041 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
2042 MESA_TRACE_SCOPE("vkGetPhysicalDeviceExternalSemaphoreProperties");
2043 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2044 {
2045 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2046 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(
2047 gfxstream_physicalDevice->internal_object, pExternalSemaphoreInfo,
2048 pExternalSemaphoreProperties, true /* do lock */);
2049 }
2050 }
gfxstream_vk_GetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)2051 void gfxstream_vk_GetDescriptorSetLayoutSupport(VkDevice device,
2052 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2053 VkDescriptorSetLayoutSupport* pSupport) {
2054 MESA_TRACE_SCOPE("vkGetDescriptorSetLayoutSupport");
2055 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2056 {
2057 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2058 vkEnc->vkGetDescriptorSetLayoutSupport(gfxstream_device->internal_object, pCreateInfo,
2059 pSupport, true /* do lock */);
2060 }
2061 }
2062 #endif
2063 #ifdef VK_VERSION_1_2
gfxstream_vk_CmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)2064 void gfxstream_vk_CmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer,
2065 VkDeviceSize offset, VkBuffer countBuffer,
2066 VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
2067 uint32_t stride) {
2068 MESA_TRACE_SCOPE("vkCmdDrawIndirectCount");
2069 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2070 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, buffer);
2071 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_countBuffer, countBuffer);
2072 {
2073 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2074 gfxstream_commandBuffer->internal_object);
2075 vkEnc->vkCmdDrawIndirectCount(gfxstream_commandBuffer->internal_object,
2076 gfxstream_buffer->internal_object, offset,
2077 gfxstream_countBuffer->internal_object, countBufferOffset,
2078 maxDrawCount, stride, true /* do lock */);
2079 }
2080 }
gfxstream_vk_CmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)2081 void gfxstream_vk_CmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer,
2082 VkDeviceSize offset, VkBuffer countBuffer,
2083 VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
2084 uint32_t stride) {
2085 MESA_TRACE_SCOPE("vkCmdDrawIndexedIndirectCount");
2086 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2087 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, buffer);
2088 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_countBuffer, countBuffer);
2089 {
2090 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2091 gfxstream_commandBuffer->internal_object);
2092 vkEnc->vkCmdDrawIndexedIndirectCount(
2093 gfxstream_commandBuffer->internal_object, gfxstream_buffer->internal_object, offset,
2094 gfxstream_countBuffer->internal_object, countBufferOffset, maxDrawCount, stride,
2095 true /* do lock */);
2096 }
2097 }
gfxstream_vk_CreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)2098 VkResult gfxstream_vk_CreateRenderPass2(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo,
2099 const VkAllocationCallbacks* pAllocator,
2100 VkRenderPass* pRenderPass) {
2101 MESA_TRACE_SCOPE("vkCreateRenderPass2");
2102 VkResult vkCreateRenderPass2_VkResult_return = (VkResult)0;
2103 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2104 {
2105 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2106 vkCreateRenderPass2_VkResult_return =
2107 vkEnc->vkCreateRenderPass2(gfxstream_device->internal_object, pCreateInfo, pAllocator,
2108 pRenderPass, true /* do lock */);
2109 }
2110 return vkCreateRenderPass2_VkResult_return;
2111 }
gfxstream_vk_CmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)2112 void gfxstream_vk_CmdBeginRenderPass2(VkCommandBuffer commandBuffer,
2113 const VkRenderPassBeginInfo* pRenderPassBegin,
2114 const VkSubpassBeginInfo* pSubpassBeginInfo) {
2115 MESA_TRACE_SCOPE("vkCmdBeginRenderPass2");
2116 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2117 {
2118 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2119 gfxstream_commandBuffer->internal_object);
2120 vkEnc->vkCmdBeginRenderPass2(gfxstream_commandBuffer->internal_object, pRenderPassBegin,
2121 pSubpassBeginInfo, true /* do lock */);
2122 }
2123 }
gfxstream_vk_CmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)2124 void gfxstream_vk_CmdNextSubpass2(VkCommandBuffer commandBuffer,
2125 const VkSubpassBeginInfo* pSubpassBeginInfo,
2126 const VkSubpassEndInfo* pSubpassEndInfo) {
2127 MESA_TRACE_SCOPE("vkCmdNextSubpass2");
2128 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2129 {
2130 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2131 gfxstream_commandBuffer->internal_object);
2132 vkEnc->vkCmdNextSubpass2(gfxstream_commandBuffer->internal_object, pSubpassBeginInfo,
2133 pSubpassEndInfo, true /* do lock */);
2134 }
2135 }
gfxstream_vk_CmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)2136 void gfxstream_vk_CmdEndRenderPass2(VkCommandBuffer commandBuffer,
2137 const VkSubpassEndInfo* pSubpassEndInfo) {
2138 MESA_TRACE_SCOPE("vkCmdEndRenderPass2");
2139 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2140 {
2141 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2142 gfxstream_commandBuffer->internal_object);
2143 vkEnc->vkCmdEndRenderPass2(gfxstream_commandBuffer->internal_object, pSubpassEndInfo,
2144 true /* do lock */);
2145 }
2146 }
gfxstream_vk_ResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)2147 void gfxstream_vk_ResetQueryPool(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery,
2148 uint32_t queryCount) {
2149 MESA_TRACE_SCOPE("vkResetQueryPool");
2150 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2151 {
2152 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2153 vkEnc->vkResetQueryPool(gfxstream_device->internal_object, queryPool, firstQuery,
2154 queryCount, true /* do lock */);
2155 }
2156 }
gfxstream_vk_GetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)2157 VkResult gfxstream_vk_GetSemaphoreCounterValue(VkDevice device, VkSemaphore semaphore,
2158 uint64_t* pValue) {
2159 MESA_TRACE_SCOPE("vkGetSemaphoreCounterValue");
2160 VkResult vkGetSemaphoreCounterValue_VkResult_return = (VkResult)0;
2161 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2162 VK_FROM_HANDLE(gfxstream_vk_semaphore, gfxstream_semaphore, semaphore);
2163 {
2164 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2165 vkGetSemaphoreCounterValue_VkResult_return = vkEnc->vkGetSemaphoreCounterValue(
2166 gfxstream_device->internal_object, gfxstream_semaphore->internal_object, pValue,
2167 true /* do lock */);
2168 }
2169 return vkGetSemaphoreCounterValue_VkResult_return;
2170 }
gfxstream_vk_WaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)2171 VkResult gfxstream_vk_WaitSemaphores(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo,
2172 uint64_t timeout) {
2173 MESA_TRACE_SCOPE("vkWaitSemaphores");
2174 VkResult vkWaitSemaphores_VkResult_return = (VkResult)0;
2175 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2176 {
2177 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2178 std::vector<VkSemaphoreWaitInfo> internal_pWaitInfo(1);
2179 std::vector<std::vector<VkSemaphore>> internal_VkSemaphoreWaitInfo_pSemaphores;
2180 for (uint32_t i = 0; i < 1; ++i) {
2181 internal_pWaitInfo[i] = pWaitInfo[i];
2182 /* VkSemaphoreWaitInfo::pSemaphores */
2183 internal_VkSemaphoreWaitInfo_pSemaphores.push_back(std::vector<VkSemaphore>());
2184 internal_VkSemaphoreWaitInfo_pSemaphores[i] = transformVkSemaphoreList(
2185 internal_pWaitInfo[i].pSemaphores, internal_pWaitInfo[i].semaphoreCount);
2186 internal_pWaitInfo[i].pSemaphores = internal_VkSemaphoreWaitInfo_pSemaphores[i].data();
2187 internal_pWaitInfo[i].semaphoreCount =
2188 internal_VkSemaphoreWaitInfo_pSemaphores[i].size();
2189 }
2190 vkWaitSemaphores_VkResult_return =
2191 vkEnc->vkWaitSemaphores(gfxstream_device->internal_object, internal_pWaitInfo.data(),
2192 timeout, true /* do lock */);
2193 }
2194 return vkWaitSemaphores_VkResult_return;
2195 }
gfxstream_vk_SignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)2196 VkResult gfxstream_vk_SignalSemaphore(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) {
2197 MESA_TRACE_SCOPE("vkSignalSemaphore");
2198 VkResult vkSignalSemaphore_VkResult_return = (VkResult)0;
2199 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2200 {
2201 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2202 std::vector<VkSemaphoreSignalInfo> internal_pSignalInfo(1);
2203 for (uint32_t i = 0; i < 1; ++i) {
2204 internal_pSignalInfo[i] = pSignalInfo[i];
2205 /* VkSemaphoreSignalInfo::semaphore */
2206 VK_FROM_HANDLE(gfxstream_vk_semaphore, gfxstream_semaphore,
2207 internal_pSignalInfo[i].semaphore);
2208 internal_pSignalInfo[i].semaphore = gfxstream_semaphore->internal_object;
2209 }
2210 vkSignalSemaphore_VkResult_return = vkEnc->vkSignalSemaphore(
2211 gfxstream_device->internal_object, internal_pSignalInfo.data(), true /* do lock */);
2212 }
2213 return vkSignalSemaphore_VkResult_return;
2214 }
gfxstream_vk_GetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)2215 VkDeviceAddress gfxstream_vk_GetBufferDeviceAddress(VkDevice device,
2216 const VkBufferDeviceAddressInfo* pInfo) {
2217 MESA_TRACE_SCOPE("vkGetBufferDeviceAddress");
2218 VkDeviceAddress vkGetBufferDeviceAddress_VkDeviceAddress_return = (VkDeviceAddress)0;
2219 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2220 {
2221 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2222 std::vector<VkBufferDeviceAddressInfo> internal_pInfo(1);
2223 for (uint32_t i = 0; i < 1; ++i) {
2224 internal_pInfo[i] = pInfo[i];
2225 /* VkBufferDeviceAddressInfo::buffer */
2226 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, internal_pInfo[i].buffer);
2227 internal_pInfo[i].buffer = gfxstream_buffer->internal_object;
2228 }
2229 vkGetBufferDeviceAddress_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddress(
2230 gfxstream_device->internal_object, internal_pInfo.data(), true /* do lock */);
2231 }
2232 return vkGetBufferDeviceAddress_VkDeviceAddress_return;
2233 }
gfxstream_vk_GetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)2234 uint64_t gfxstream_vk_GetBufferOpaqueCaptureAddress(VkDevice device,
2235 const VkBufferDeviceAddressInfo* pInfo) {
2236 MESA_TRACE_SCOPE("vkGetBufferOpaqueCaptureAddress");
2237 uint64_t vkGetBufferOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
2238 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2239 {
2240 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2241 std::vector<VkBufferDeviceAddressInfo> internal_pInfo(1);
2242 for (uint32_t i = 0; i < 1; ++i) {
2243 internal_pInfo[i] = pInfo[i];
2244 /* VkBufferDeviceAddressInfo::buffer */
2245 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, internal_pInfo[i].buffer);
2246 internal_pInfo[i].buffer = gfxstream_buffer->internal_object;
2247 }
2248 vkGetBufferOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddress(
2249 gfxstream_device->internal_object, internal_pInfo.data(), true /* do lock */);
2250 }
2251 return vkGetBufferOpaqueCaptureAddress_uint64_t_return;
2252 }
gfxstream_vk_GetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)2253 uint64_t gfxstream_vk_GetDeviceMemoryOpaqueCaptureAddress(
2254 VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
2255 MESA_TRACE_SCOPE("vkGetDeviceMemoryOpaqueCaptureAddress");
2256 uint64_t vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
2257 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2258 {
2259 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2260 vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return =
2261 vkEnc->vkGetDeviceMemoryOpaqueCaptureAddress(gfxstream_device->internal_object, pInfo,
2262 true /* do lock */);
2263 }
2264 return vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return;
2265 }
2266 #endif
2267 #ifdef VK_VERSION_1_3
gfxstream_vk_GetPhysicalDeviceToolProperties(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties)2268 VkResult gfxstream_vk_GetPhysicalDeviceToolProperties(
2269 VkPhysicalDevice physicalDevice, uint32_t* pToolCount,
2270 VkPhysicalDeviceToolProperties* pToolProperties) {
2271 MESA_TRACE_SCOPE("vkGetPhysicalDeviceToolProperties");
2272 VkResult vkGetPhysicalDeviceToolProperties_VkResult_return = (VkResult)0;
2273 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2274 {
2275 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2276 vkGetPhysicalDeviceToolProperties_VkResult_return =
2277 vkEnc->vkGetPhysicalDeviceToolProperties(gfxstream_physicalDevice->internal_object,
2278 pToolCount, pToolProperties,
2279 true /* do lock */);
2280 }
2281 return vkGetPhysicalDeviceToolProperties_VkResult_return;
2282 }
gfxstream_vk_CreatePrivateDataSlot(VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)2283 VkResult gfxstream_vk_CreatePrivateDataSlot(VkDevice device,
2284 const VkPrivateDataSlotCreateInfo* pCreateInfo,
2285 const VkAllocationCallbacks* pAllocator,
2286 VkPrivateDataSlot* pPrivateDataSlot) {
2287 MESA_TRACE_SCOPE("vkCreatePrivateDataSlot");
2288 VkResult vkCreatePrivateDataSlot_VkResult_return = (VkResult)0;
2289 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2290 {
2291 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2292 vkCreatePrivateDataSlot_VkResult_return =
2293 vkEnc->vkCreatePrivateDataSlot(gfxstream_device->internal_object, pCreateInfo,
2294 pAllocator, pPrivateDataSlot, true /* do lock */);
2295 }
2296 return vkCreatePrivateDataSlot_VkResult_return;
2297 }
gfxstream_vk_DestroyPrivateDataSlot(VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)2298 void gfxstream_vk_DestroyPrivateDataSlot(VkDevice device, VkPrivateDataSlot privateDataSlot,
2299 const VkAllocationCallbacks* pAllocator) {
2300 MESA_TRACE_SCOPE("vkDestroyPrivateDataSlot");
2301 if (VK_NULL_HANDLE == privateDataSlot) {
2302 return;
2303 }
2304 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2305 {
2306 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2307 vkEnc->vkDestroyPrivateDataSlot(gfxstream_device->internal_object, privateDataSlot,
2308 pAllocator, true /* do lock */);
2309 }
2310 }
gfxstream_vk_SetPrivateData(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)2311 VkResult gfxstream_vk_SetPrivateData(VkDevice device, VkObjectType objectType,
2312 uint64_t objectHandle, VkPrivateDataSlot privateDataSlot,
2313 uint64_t data) {
2314 MESA_TRACE_SCOPE("vkSetPrivateData");
2315 VkResult vkSetPrivateData_VkResult_return = (VkResult)0;
2316 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2317 {
2318 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2319 vkSetPrivateData_VkResult_return =
2320 vkEnc->vkSetPrivateData(gfxstream_device->internal_object, objectType, objectHandle,
2321 privateDataSlot, data, true /* do lock */);
2322 }
2323 return vkSetPrivateData_VkResult_return;
2324 }
gfxstream_vk_GetPrivateData(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)2325 void gfxstream_vk_GetPrivateData(VkDevice device, VkObjectType objectType, uint64_t objectHandle,
2326 VkPrivateDataSlot privateDataSlot, uint64_t* pData) {
2327 MESA_TRACE_SCOPE("vkGetPrivateData");
2328 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2329 {
2330 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2331 vkEnc->vkGetPrivateData(gfxstream_device->internal_object, objectType, objectHandle,
2332 privateDataSlot, pData, true /* do lock */);
2333 }
2334 }
gfxstream_vk_CmdSetEvent2(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)2335 void gfxstream_vk_CmdSetEvent2(VkCommandBuffer commandBuffer, VkEvent event,
2336 const VkDependencyInfo* pDependencyInfo) {
2337 MESA_TRACE_SCOPE("vkCmdSetEvent2");
2338 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2339 {
2340 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2341 gfxstream_commandBuffer->internal_object);
2342 std::vector<VkDependencyInfo> internal_pDependencyInfo(1);
2343 std::vector<std::vector<VkBufferMemoryBarrier2>>
2344 internal_VkDependencyInfo_pBufferMemoryBarriers;
2345 for (uint32_t i = 0; i < 1; ++i) {
2346 internal_pDependencyInfo[i] = pDependencyInfo[i];
2347 /* VkDependencyInfo::pBufferMemoryBarriers */
2348 internal_VkDependencyInfo_pBufferMemoryBarriers.push_back(
2349 std::vector<VkBufferMemoryBarrier2>());
2350 internal_VkDependencyInfo_pBufferMemoryBarriers[i].resize(
2351 internal_pDependencyInfo[i].bufferMemoryBarrierCount);
2352 for (uint32_t j = 0; j < internal_pDependencyInfo[i].bufferMemoryBarrierCount; ++j) {
2353 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j] =
2354 internal_pDependencyInfo[i].pBufferMemoryBarriers[j];
2355 /* VkBufferMemoryBarrier2::buffer */
2356 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer,
2357 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer);
2358 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer =
2359 gfxstream_buffer->internal_object;
2360 }
2361 internal_pDependencyInfo[i].pBufferMemoryBarriers =
2362 internal_VkDependencyInfo_pBufferMemoryBarriers[i].data();
2363 }
2364 vkEnc->vkCmdSetEvent2(gfxstream_commandBuffer->internal_object, event,
2365 internal_pDependencyInfo.data(), true /* do lock */);
2366 }
2367 }
gfxstream_vk_CmdResetEvent2(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)2368 void gfxstream_vk_CmdResetEvent2(VkCommandBuffer commandBuffer, VkEvent event,
2369 VkPipelineStageFlags2 stageMask) {
2370 MESA_TRACE_SCOPE("vkCmdResetEvent2");
2371 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2372 {
2373 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2374 gfxstream_commandBuffer->internal_object);
2375 vkEnc->vkCmdResetEvent2(gfxstream_commandBuffer->internal_object, event, stageMask,
2376 true /* do lock */);
2377 }
2378 }
gfxstream_vk_CmdWaitEvents2(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)2379 void gfxstream_vk_CmdWaitEvents2(VkCommandBuffer commandBuffer, uint32_t eventCount,
2380 const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos) {
2381 MESA_TRACE_SCOPE("vkCmdWaitEvents2");
2382 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2383 {
2384 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2385 gfxstream_commandBuffer->internal_object);
2386 std::vector<VkDependencyInfo> internal_pDependencyInfos(eventCount);
2387 std::vector<std::vector<VkBufferMemoryBarrier2>>
2388 internal_VkDependencyInfo_pBufferMemoryBarriers;
2389 for (uint32_t i = 0; i < eventCount; ++i) {
2390 internal_pDependencyInfos[i] = pDependencyInfos[i];
2391 /* VkDependencyInfo::pBufferMemoryBarriers */
2392 internal_VkDependencyInfo_pBufferMemoryBarriers.push_back(
2393 std::vector<VkBufferMemoryBarrier2>());
2394 internal_VkDependencyInfo_pBufferMemoryBarriers[i].resize(
2395 internal_pDependencyInfos[i].bufferMemoryBarrierCount);
2396 for (uint32_t j = 0; j < internal_pDependencyInfos[i].bufferMemoryBarrierCount; ++j) {
2397 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j] =
2398 internal_pDependencyInfos[i].pBufferMemoryBarriers[j];
2399 /* VkBufferMemoryBarrier2::buffer */
2400 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer,
2401 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer);
2402 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer =
2403 gfxstream_buffer->internal_object;
2404 }
2405 internal_pDependencyInfos[i].pBufferMemoryBarriers =
2406 internal_VkDependencyInfo_pBufferMemoryBarriers[i].data();
2407 }
2408 vkEnc->vkCmdWaitEvents2(gfxstream_commandBuffer->internal_object, eventCount, pEvents,
2409 internal_pDependencyInfos.data(), true /* do lock */);
2410 }
2411 }
gfxstream_vk_CmdPipelineBarrier2(VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)2412 void gfxstream_vk_CmdPipelineBarrier2(VkCommandBuffer commandBuffer,
2413 const VkDependencyInfo* pDependencyInfo) {
2414 MESA_TRACE_SCOPE("vkCmdPipelineBarrier2");
2415 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2416 {
2417 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2418 gfxstream_commandBuffer->internal_object);
2419 std::vector<VkDependencyInfo> internal_pDependencyInfo(1);
2420 std::vector<std::vector<VkBufferMemoryBarrier2>>
2421 internal_VkDependencyInfo_pBufferMemoryBarriers;
2422 for (uint32_t i = 0; i < 1; ++i) {
2423 internal_pDependencyInfo[i] = pDependencyInfo[i];
2424 /* VkDependencyInfo::pBufferMemoryBarriers */
2425 internal_VkDependencyInfo_pBufferMemoryBarriers.push_back(
2426 std::vector<VkBufferMemoryBarrier2>());
2427 internal_VkDependencyInfo_pBufferMemoryBarriers[i].resize(
2428 internal_pDependencyInfo[i].bufferMemoryBarrierCount);
2429 for (uint32_t j = 0; j < internal_pDependencyInfo[i].bufferMemoryBarrierCount; ++j) {
2430 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j] =
2431 internal_pDependencyInfo[i].pBufferMemoryBarriers[j];
2432 /* VkBufferMemoryBarrier2::buffer */
2433 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer,
2434 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer);
2435 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer =
2436 gfxstream_buffer->internal_object;
2437 }
2438 internal_pDependencyInfo[i].pBufferMemoryBarriers =
2439 internal_VkDependencyInfo_pBufferMemoryBarriers[i].data();
2440 }
2441 vkEnc->vkCmdPipelineBarrier2(gfxstream_commandBuffer->internal_object,
2442 internal_pDependencyInfo.data(), true /* do lock */);
2443 }
2444 }
gfxstream_vk_CmdWriteTimestamp2(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)2445 void gfxstream_vk_CmdWriteTimestamp2(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage,
2446 VkQueryPool queryPool, uint32_t query) {
2447 MESA_TRACE_SCOPE("vkCmdWriteTimestamp2");
2448 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2449 {
2450 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2451 gfxstream_commandBuffer->internal_object);
2452 vkEnc->vkCmdWriteTimestamp2(gfxstream_commandBuffer->internal_object, stage, queryPool,
2453 query, true /* do lock */);
2454 }
2455 }
gfxstream_vk_QueueSubmit2(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)2456 VkResult gfxstream_vk_QueueSubmit2(VkQueue queue, uint32_t submitCount,
2457 const VkSubmitInfo2* pSubmits, VkFence fence) {
2458 MESA_TRACE_SCOPE("vkQueueSubmit2");
2459 VkResult vkQueueSubmit2_VkResult_return = (VkResult)0;
2460 VK_FROM_HANDLE(gfxstream_vk_queue, gfxstream_queue, queue);
2461 VK_FROM_HANDLE(gfxstream_vk_fence, gfxstream_fence, fence);
2462 {
2463 auto vkEnc =
2464 gfxstream::vk::ResourceTracker::getQueueEncoder(gfxstream_queue->internal_object);
2465 std::vector<VkSubmitInfo2> internal_pSubmits(submitCount);
2466 std::vector<std::vector<VkSemaphoreSubmitInfo>> internal_VkSubmitInfo2_pWaitSemaphoreInfos;
2467 std::vector<std::vector<VkCommandBufferSubmitInfo>>
2468 internal_VkSubmitInfo2_pCommandBufferInfos;
2469 std::vector<std::vector<VkSemaphoreSubmitInfo>>
2470 internal_VkSubmitInfo2_pSignalSemaphoreInfos;
2471 for (uint32_t i = 0; i < submitCount; ++i) {
2472 internal_pSubmits[i] = pSubmits[i];
2473 /* VkSubmitInfo2::pWaitSemaphoreInfos */
2474 internal_VkSubmitInfo2_pWaitSemaphoreInfos.push_back(
2475 std::vector<VkSemaphoreSubmitInfo>());
2476 internal_VkSubmitInfo2_pWaitSemaphoreInfos[i] =
2477 transformVkSemaphoreSubmitInfoList(internal_pSubmits[i].pWaitSemaphoreInfos,
2478 internal_pSubmits[i].waitSemaphoreInfoCount);
2479 internal_pSubmits[i].pWaitSemaphoreInfos =
2480 internal_VkSubmitInfo2_pWaitSemaphoreInfos[i].data();
2481 internal_pSubmits[i].waitSemaphoreInfoCount =
2482 internal_VkSubmitInfo2_pWaitSemaphoreInfos[i].size();
2483 /* VkSubmitInfo2::pCommandBufferInfos */
2484 internal_VkSubmitInfo2_pCommandBufferInfos.push_back(
2485 std::vector<VkCommandBufferSubmitInfo>());
2486 internal_VkSubmitInfo2_pCommandBufferInfos[i].resize(
2487 internal_pSubmits[i].commandBufferInfoCount);
2488 for (uint32_t j = 0; j < internal_pSubmits[i].commandBufferInfoCount; ++j) {
2489 internal_VkSubmitInfo2_pCommandBufferInfos[i][j] =
2490 internal_pSubmits[i].pCommandBufferInfos[j];
2491 /* VkCommandBufferSubmitInfo::commandBuffer */
2492 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer,
2493 internal_VkSubmitInfo2_pCommandBufferInfos[i][j].commandBuffer);
2494 internal_VkSubmitInfo2_pCommandBufferInfos[i][j].commandBuffer =
2495 gfxstream_commandBuffer->internal_object;
2496 }
2497 internal_pSubmits[i].pCommandBufferInfos =
2498 internal_VkSubmitInfo2_pCommandBufferInfos[i].data();
2499 /* VkSubmitInfo2::pSignalSemaphoreInfos */
2500 internal_VkSubmitInfo2_pSignalSemaphoreInfos.push_back(
2501 std::vector<VkSemaphoreSubmitInfo>());
2502 internal_VkSubmitInfo2_pSignalSemaphoreInfos[i] =
2503 transformVkSemaphoreSubmitInfoList(internal_pSubmits[i].pSignalSemaphoreInfos,
2504 internal_pSubmits[i].signalSemaphoreInfoCount);
2505 internal_pSubmits[i].pSignalSemaphoreInfos =
2506 internal_VkSubmitInfo2_pSignalSemaphoreInfos[i].data();
2507 internal_pSubmits[i].signalSemaphoreInfoCount =
2508 internal_VkSubmitInfo2_pSignalSemaphoreInfos[i].size();
2509 }
2510 auto resources = gfxstream::vk::ResourceTracker::get();
2511 vkQueueSubmit2_VkResult_return = resources->on_vkQueueSubmit2(
2512 vkEnc, VK_SUCCESS, gfxstream_queue->internal_object, submitCount,
2513 internal_pSubmits.data(),
2514 gfxstream_fence ? gfxstream_fence->internal_object : VK_NULL_HANDLE);
2515 }
2516 return vkQueueSubmit2_VkResult_return;
2517 }
gfxstream_vk_CmdCopyBuffer2(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)2518 void gfxstream_vk_CmdCopyBuffer2(VkCommandBuffer commandBuffer,
2519 const VkCopyBufferInfo2* pCopyBufferInfo) {
2520 MESA_TRACE_SCOPE("vkCmdCopyBuffer2");
2521 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2522 {
2523 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2524 gfxstream_commandBuffer->internal_object);
2525 std::vector<VkCopyBufferInfo2> internal_pCopyBufferInfo(1);
2526 for (uint32_t i = 0; i < 1; ++i) {
2527 internal_pCopyBufferInfo[i] = pCopyBufferInfo[i];
2528 /* VkCopyBufferInfo2::srcBuffer */
2529 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_srcBuffer,
2530 internal_pCopyBufferInfo[i].srcBuffer);
2531 internal_pCopyBufferInfo[i].srcBuffer = gfxstream_srcBuffer->internal_object;
2532 /* VkCopyBufferInfo2::dstBuffer */
2533 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_dstBuffer,
2534 internal_pCopyBufferInfo[i].dstBuffer);
2535 internal_pCopyBufferInfo[i].dstBuffer = gfxstream_dstBuffer->internal_object;
2536 }
2537 vkEnc->vkCmdCopyBuffer2(gfxstream_commandBuffer->internal_object,
2538 internal_pCopyBufferInfo.data(), true /* do lock */);
2539 }
2540 }
gfxstream_vk_CmdCopyImage2(VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)2541 void gfxstream_vk_CmdCopyImage2(VkCommandBuffer commandBuffer,
2542 const VkCopyImageInfo2* pCopyImageInfo) {
2543 MESA_TRACE_SCOPE("vkCmdCopyImage2");
2544 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2545 {
2546 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2547 gfxstream_commandBuffer->internal_object);
2548 vkEnc->vkCmdCopyImage2(gfxstream_commandBuffer->internal_object, pCopyImageInfo,
2549 true /* do lock */);
2550 }
2551 }
gfxstream_vk_CmdCopyBufferToImage2(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)2552 void gfxstream_vk_CmdCopyBufferToImage2(VkCommandBuffer commandBuffer,
2553 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
2554 MESA_TRACE_SCOPE("vkCmdCopyBufferToImage2");
2555 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2556 {
2557 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2558 gfxstream_commandBuffer->internal_object);
2559 std::vector<VkCopyBufferToImageInfo2> internal_pCopyBufferToImageInfo(1);
2560 for (uint32_t i = 0; i < 1; ++i) {
2561 internal_pCopyBufferToImageInfo[i] = pCopyBufferToImageInfo[i];
2562 /* VkCopyBufferToImageInfo2::srcBuffer */
2563 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_srcBuffer,
2564 internal_pCopyBufferToImageInfo[i].srcBuffer);
2565 internal_pCopyBufferToImageInfo[i].srcBuffer = gfxstream_srcBuffer->internal_object;
2566 }
2567 vkEnc->vkCmdCopyBufferToImage2(gfxstream_commandBuffer->internal_object,
2568 internal_pCopyBufferToImageInfo.data(), true /* do lock */);
2569 }
2570 }
gfxstream_vk_CmdCopyImageToBuffer2(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)2571 void gfxstream_vk_CmdCopyImageToBuffer2(VkCommandBuffer commandBuffer,
2572 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
2573 MESA_TRACE_SCOPE("vkCmdCopyImageToBuffer2");
2574 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2575 {
2576 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2577 gfxstream_commandBuffer->internal_object);
2578 std::vector<VkCopyImageToBufferInfo2> internal_pCopyImageToBufferInfo(1);
2579 for (uint32_t i = 0; i < 1; ++i) {
2580 internal_pCopyImageToBufferInfo[i] = pCopyImageToBufferInfo[i];
2581 /* VkCopyImageToBufferInfo2::dstBuffer */
2582 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_dstBuffer,
2583 internal_pCopyImageToBufferInfo[i].dstBuffer);
2584 internal_pCopyImageToBufferInfo[i].dstBuffer = gfxstream_dstBuffer->internal_object;
2585 }
2586 vkEnc->vkCmdCopyImageToBuffer2(gfxstream_commandBuffer->internal_object,
2587 internal_pCopyImageToBufferInfo.data(), true /* do lock */);
2588 }
2589 }
gfxstream_vk_CmdBlitImage2(VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)2590 void gfxstream_vk_CmdBlitImage2(VkCommandBuffer commandBuffer,
2591 const VkBlitImageInfo2* pBlitImageInfo) {
2592 MESA_TRACE_SCOPE("vkCmdBlitImage2");
2593 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2594 {
2595 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2596 gfxstream_commandBuffer->internal_object);
2597 vkEnc->vkCmdBlitImage2(gfxstream_commandBuffer->internal_object, pBlitImageInfo,
2598 true /* do lock */);
2599 }
2600 }
gfxstream_vk_CmdResolveImage2(VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)2601 void gfxstream_vk_CmdResolveImage2(VkCommandBuffer commandBuffer,
2602 const VkResolveImageInfo2* pResolveImageInfo) {
2603 MESA_TRACE_SCOPE("vkCmdResolveImage2");
2604 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2605 {
2606 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2607 gfxstream_commandBuffer->internal_object);
2608 vkEnc->vkCmdResolveImage2(gfxstream_commandBuffer->internal_object, pResolveImageInfo,
2609 true /* do lock */);
2610 }
2611 }
gfxstream_vk_CmdBeginRendering(VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)2612 void gfxstream_vk_CmdBeginRendering(VkCommandBuffer commandBuffer,
2613 const VkRenderingInfo* pRenderingInfo) {
2614 MESA_TRACE_SCOPE("vkCmdBeginRendering");
2615 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2616 {
2617 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2618 gfxstream_commandBuffer->internal_object);
2619 vkEnc->vkCmdBeginRendering(gfxstream_commandBuffer->internal_object, pRenderingInfo,
2620 true /* do lock */);
2621 }
2622 }
gfxstream_vk_CmdEndRendering(VkCommandBuffer commandBuffer)2623 void gfxstream_vk_CmdEndRendering(VkCommandBuffer commandBuffer) {
2624 MESA_TRACE_SCOPE("vkCmdEndRendering");
2625 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2626 {
2627 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2628 gfxstream_commandBuffer->internal_object);
2629 vkEnc->vkCmdEndRendering(gfxstream_commandBuffer->internal_object, true /* do lock */);
2630 }
2631 }
gfxstream_vk_CmdSetCullMode(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)2632 void gfxstream_vk_CmdSetCullMode(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) {
2633 MESA_TRACE_SCOPE("vkCmdSetCullMode");
2634 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2635 {
2636 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2637 gfxstream_commandBuffer->internal_object);
2638 vkEnc->vkCmdSetCullMode(gfxstream_commandBuffer->internal_object, cullMode,
2639 true /* do lock */);
2640 }
2641 }
gfxstream_vk_CmdSetFrontFace(VkCommandBuffer commandBuffer,VkFrontFace frontFace)2642 void gfxstream_vk_CmdSetFrontFace(VkCommandBuffer commandBuffer, VkFrontFace frontFace) {
2643 MESA_TRACE_SCOPE("vkCmdSetFrontFace");
2644 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2645 {
2646 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2647 gfxstream_commandBuffer->internal_object);
2648 vkEnc->vkCmdSetFrontFace(gfxstream_commandBuffer->internal_object, frontFace,
2649 true /* do lock */);
2650 }
2651 }
gfxstream_vk_CmdSetPrimitiveTopology(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)2652 void gfxstream_vk_CmdSetPrimitiveTopology(VkCommandBuffer commandBuffer,
2653 VkPrimitiveTopology primitiveTopology) {
2654 MESA_TRACE_SCOPE("vkCmdSetPrimitiveTopology");
2655 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2656 {
2657 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2658 gfxstream_commandBuffer->internal_object);
2659 vkEnc->vkCmdSetPrimitiveTopology(gfxstream_commandBuffer->internal_object,
2660 primitiveTopology, true /* do lock */);
2661 }
2662 }
gfxstream_vk_CmdSetViewportWithCount(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)2663 void gfxstream_vk_CmdSetViewportWithCount(VkCommandBuffer commandBuffer, uint32_t viewportCount,
2664 const VkViewport* pViewports) {
2665 MESA_TRACE_SCOPE("vkCmdSetViewportWithCount");
2666 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2667 {
2668 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2669 gfxstream_commandBuffer->internal_object);
2670 vkEnc->vkCmdSetViewportWithCount(gfxstream_commandBuffer->internal_object, viewportCount,
2671 pViewports, true /* do lock */);
2672 }
2673 }
gfxstream_vk_CmdSetScissorWithCount(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)2674 void gfxstream_vk_CmdSetScissorWithCount(VkCommandBuffer commandBuffer, uint32_t scissorCount,
2675 const VkRect2D* pScissors) {
2676 MESA_TRACE_SCOPE("vkCmdSetScissorWithCount");
2677 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2678 {
2679 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2680 gfxstream_commandBuffer->internal_object);
2681 vkEnc->vkCmdSetScissorWithCount(gfxstream_commandBuffer->internal_object, scissorCount,
2682 pScissors, true /* do lock */);
2683 }
2684 }
gfxstream_vk_CmdBindVertexBuffers2(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)2685 void gfxstream_vk_CmdBindVertexBuffers2(VkCommandBuffer commandBuffer, uint32_t firstBinding,
2686 uint32_t bindingCount, const VkBuffer* pBuffers,
2687 const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes,
2688 const VkDeviceSize* pStrides) {
2689 MESA_TRACE_SCOPE("vkCmdBindVertexBuffers2");
2690 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2691 {
2692 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2693 gfxstream_commandBuffer->internal_object);
2694 std::vector<VkBuffer> internal_pBuffers(bindingCount);
2695 for (uint32_t i = 0; i < bindingCount; ++i) {
2696 if (pBuffers) {
2697 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_pBuffers, pBuffers[i]);
2698 internal_pBuffers[i] = gfxstream_pBuffers->internal_object;
2699 }
2700 }
2701 vkEnc->vkCmdBindVertexBuffers2(gfxstream_commandBuffer->internal_object, firstBinding,
2702 bindingCount, internal_pBuffers.data(), pOffsets, pSizes,
2703 pStrides, true /* do lock */);
2704 }
2705 }
gfxstream_vk_CmdSetDepthTestEnable(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)2706 void gfxstream_vk_CmdSetDepthTestEnable(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) {
2707 MESA_TRACE_SCOPE("vkCmdSetDepthTestEnable");
2708 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2709 {
2710 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2711 gfxstream_commandBuffer->internal_object);
2712 vkEnc->vkCmdSetDepthTestEnable(gfxstream_commandBuffer->internal_object, depthTestEnable,
2713 true /* do lock */);
2714 }
2715 }
gfxstream_vk_CmdSetDepthWriteEnable(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)2716 void gfxstream_vk_CmdSetDepthWriteEnable(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) {
2717 MESA_TRACE_SCOPE("vkCmdSetDepthWriteEnable");
2718 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2719 {
2720 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2721 gfxstream_commandBuffer->internal_object);
2722 vkEnc->vkCmdSetDepthWriteEnable(gfxstream_commandBuffer->internal_object, depthWriteEnable,
2723 true /* do lock */);
2724 }
2725 }
gfxstream_vk_CmdSetDepthCompareOp(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)2726 void gfxstream_vk_CmdSetDepthCompareOp(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) {
2727 MESA_TRACE_SCOPE("vkCmdSetDepthCompareOp");
2728 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2729 {
2730 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2731 gfxstream_commandBuffer->internal_object);
2732 vkEnc->vkCmdSetDepthCompareOp(gfxstream_commandBuffer->internal_object, depthCompareOp,
2733 true /* do lock */);
2734 }
2735 }
gfxstream_vk_CmdSetDepthBoundsTestEnable(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)2736 void gfxstream_vk_CmdSetDepthBoundsTestEnable(VkCommandBuffer commandBuffer,
2737 VkBool32 depthBoundsTestEnable) {
2738 MESA_TRACE_SCOPE("vkCmdSetDepthBoundsTestEnable");
2739 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2740 {
2741 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2742 gfxstream_commandBuffer->internal_object);
2743 vkEnc->vkCmdSetDepthBoundsTestEnable(gfxstream_commandBuffer->internal_object,
2744 depthBoundsTestEnable, true /* do lock */);
2745 }
2746 }
gfxstream_vk_CmdSetStencilTestEnable(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)2747 void gfxstream_vk_CmdSetStencilTestEnable(VkCommandBuffer commandBuffer,
2748 VkBool32 stencilTestEnable) {
2749 MESA_TRACE_SCOPE("vkCmdSetStencilTestEnable");
2750 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2751 {
2752 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2753 gfxstream_commandBuffer->internal_object);
2754 vkEnc->vkCmdSetStencilTestEnable(gfxstream_commandBuffer->internal_object,
2755 stencilTestEnable, true /* do lock */);
2756 }
2757 }
gfxstream_vk_CmdSetStencilOp(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)2758 void gfxstream_vk_CmdSetStencilOp(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
2759 VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp,
2760 VkCompareOp compareOp) {
2761 MESA_TRACE_SCOPE("vkCmdSetStencilOp");
2762 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2763 {
2764 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2765 gfxstream_commandBuffer->internal_object);
2766 vkEnc->vkCmdSetStencilOp(gfxstream_commandBuffer->internal_object, faceMask, failOp, passOp,
2767 depthFailOp, compareOp, true /* do lock */);
2768 }
2769 }
gfxstream_vk_CmdSetRasterizerDiscardEnable(VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)2770 void gfxstream_vk_CmdSetRasterizerDiscardEnable(VkCommandBuffer commandBuffer,
2771 VkBool32 rasterizerDiscardEnable) {
2772 MESA_TRACE_SCOPE("vkCmdSetRasterizerDiscardEnable");
2773 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2774 {
2775 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2776 gfxstream_commandBuffer->internal_object);
2777 vkEnc->vkCmdSetRasterizerDiscardEnable(gfxstream_commandBuffer->internal_object,
2778 rasterizerDiscardEnable, true /* do lock */);
2779 }
2780 }
gfxstream_vk_CmdSetDepthBiasEnable(VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)2781 void gfxstream_vk_CmdSetDepthBiasEnable(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) {
2782 MESA_TRACE_SCOPE("vkCmdSetDepthBiasEnable");
2783 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2784 {
2785 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2786 gfxstream_commandBuffer->internal_object);
2787 vkEnc->vkCmdSetDepthBiasEnable(gfxstream_commandBuffer->internal_object, depthBiasEnable,
2788 true /* do lock */);
2789 }
2790 }
gfxstream_vk_CmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)2791 void gfxstream_vk_CmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer,
2792 VkBool32 primitiveRestartEnable) {
2793 MESA_TRACE_SCOPE("vkCmdSetPrimitiveRestartEnable");
2794 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2795 {
2796 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2797 gfxstream_commandBuffer->internal_object);
2798 vkEnc->vkCmdSetPrimitiveRestartEnable(gfxstream_commandBuffer->internal_object,
2799 primitiveRestartEnable, true /* do lock */);
2800 }
2801 }
gfxstream_vk_GetDeviceBufferMemoryRequirements(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2802 void gfxstream_vk_GetDeviceBufferMemoryRequirements(VkDevice device,
2803 const VkDeviceBufferMemoryRequirements* pInfo,
2804 VkMemoryRequirements2* pMemoryRequirements) {
2805 MESA_TRACE_SCOPE("vkGetDeviceBufferMemoryRequirements");
2806 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2807 {
2808 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2809 vkEnc->vkGetDeviceBufferMemoryRequirements(gfxstream_device->internal_object, pInfo,
2810 pMemoryRequirements, true /* do lock */);
2811 }
2812 }
gfxstream_vk_GetDeviceImageMemoryRequirements(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2813 void gfxstream_vk_GetDeviceImageMemoryRequirements(VkDevice device,
2814 const VkDeviceImageMemoryRequirements* pInfo,
2815 VkMemoryRequirements2* pMemoryRequirements) {
2816 MESA_TRACE_SCOPE("vkGetDeviceImageMemoryRequirements");
2817 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2818 {
2819 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2820 vkEnc->vkGetDeviceImageMemoryRequirements(gfxstream_device->internal_object, pInfo,
2821 pMemoryRequirements, true /* do lock */);
2822 }
2823 }
gfxstream_vk_GetDeviceImageSparseMemoryRequirements(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2824 void gfxstream_vk_GetDeviceImageSparseMemoryRequirements(
2825 VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
2826 uint32_t* pSparseMemoryRequirementCount,
2827 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
2828 MESA_TRACE_SCOPE("vkGetDeviceImageSparseMemoryRequirements");
2829 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2830 {
2831 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2832 vkEnc->vkGetDeviceImageSparseMemoryRequirements(
2833 gfxstream_device->internal_object, pInfo, pSparseMemoryRequirementCount,
2834 pSparseMemoryRequirements, true /* do lock */);
2835 }
2836 }
2837 #endif
2838 #ifdef VK_KHR_android_surface
gfxstream_vk_CreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2839 VkResult gfxstream_vk_CreateAndroidSurfaceKHR(VkInstance instance,
2840 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2841 const VkAllocationCallbacks* pAllocator,
2842 VkSurfaceKHR* pSurface) {
2843 MESA_TRACE_SCOPE("vkCreateAndroidSurfaceKHR");
2844 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2845 VK_FROM_HANDLE(gfxstream_vk_instance, gfxstream_instance, instance);
2846 {
2847 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2848 vkCreateAndroidSurfaceKHR_VkResult_return =
2849 vkEnc->vkCreateAndroidSurfaceKHR(gfxstream_instance->internal_object, pCreateInfo,
2850 pAllocator, pSurface, true /* do lock */);
2851 }
2852 return vkCreateAndroidSurfaceKHR_VkResult_return;
2853 }
2854 #endif
2855 #ifdef VK_KHR_dynamic_rendering
gfxstream_vk_CmdBeginRenderingKHR(VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)2856 void gfxstream_vk_CmdBeginRenderingKHR(VkCommandBuffer commandBuffer,
2857 const VkRenderingInfo* pRenderingInfo) {
2858 MESA_TRACE_SCOPE("vkCmdBeginRenderingKHR");
2859 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2860 {
2861 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2862 gfxstream_commandBuffer->internal_object);
2863 vkEnc->vkCmdBeginRenderingKHR(gfxstream_commandBuffer->internal_object, pRenderingInfo,
2864 true /* do lock */);
2865 }
2866 }
gfxstream_vk_CmdEndRenderingKHR(VkCommandBuffer commandBuffer)2867 void gfxstream_vk_CmdEndRenderingKHR(VkCommandBuffer commandBuffer) {
2868 MESA_TRACE_SCOPE("vkCmdEndRenderingKHR");
2869 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
2870 {
2871 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
2872 gfxstream_commandBuffer->internal_object);
2873 vkEnc->vkCmdEndRenderingKHR(gfxstream_commandBuffer->internal_object, true /* do lock */);
2874 }
2875 }
2876 #endif
2877 #ifdef VK_KHR_get_physical_device_properties2
gfxstream_vk_GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)2878 void gfxstream_vk_GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,
2879 VkPhysicalDeviceFeatures2* pFeatures) {
2880 MESA_TRACE_SCOPE("vkGetPhysicalDeviceFeatures2KHR");
2881 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2882 {
2883 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2884 vkEnc->vkGetPhysicalDeviceFeatures2KHR(gfxstream_physicalDevice->internal_object, pFeatures,
2885 true /* do lock */);
2886 }
2887 }
gfxstream_vk_GetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)2888 void gfxstream_vk_GetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,
2889 VkPhysicalDeviceProperties2* pProperties) {
2890 MESA_TRACE_SCOPE("vkGetPhysicalDeviceProperties2KHR");
2891 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2892 {
2893 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2894 vkEnc->vkGetPhysicalDeviceProperties2KHR(gfxstream_physicalDevice->internal_object,
2895 pProperties, true /* do lock */);
2896 }
2897 }
gfxstream_vk_GetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)2898 void gfxstream_vk_GetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,
2899 VkFormat format,
2900 VkFormatProperties2* pFormatProperties) {
2901 MESA_TRACE_SCOPE("vkGetPhysicalDeviceFormatProperties2KHR");
2902 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2903 {
2904 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2905 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(gfxstream_physicalDevice->internal_object,
2906 format, pFormatProperties,
2907 true /* do lock */);
2908 }
2909 }
gfxstream_vk_GetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)2910 VkResult gfxstream_vk_GetPhysicalDeviceImageFormatProperties2KHR(
2911 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2912 VkImageFormatProperties2* pImageFormatProperties) {
2913 MESA_TRACE_SCOPE("vkGetPhysicalDeviceImageFormatProperties2KHR");
2914 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
2915 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2916 {
2917 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2918 auto resources = gfxstream::vk::ResourceTracker::get();
2919 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return =
2920 resources->on_vkGetPhysicalDeviceImageFormatProperties2KHR(
2921 vkEnc, VK_SUCCESS, gfxstream_physicalDevice->internal_object, pImageFormatInfo,
2922 pImageFormatProperties);
2923 }
2924 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2925 }
gfxstream_vk_GetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)2926 void gfxstream_vk_GetPhysicalDeviceQueueFamilyProperties2KHR(
2927 VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
2928 VkQueueFamilyProperties2* pQueueFamilyProperties) {
2929 MESA_TRACE_SCOPE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
2930 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2931 {
2932 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2933 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2934 gfxstream_physicalDevice->internal_object, pQueueFamilyPropertyCount,
2935 pQueueFamilyProperties, true /* do lock */);
2936 }
2937 }
gfxstream_vk_GetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)2938 void gfxstream_vk_GetPhysicalDeviceMemoryProperties2KHR(
2939 VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
2940 MESA_TRACE_SCOPE("vkGetPhysicalDeviceMemoryProperties2KHR");
2941 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2942 {
2943 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2944 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(gfxstream_physicalDevice->internal_object,
2945 pMemoryProperties, true /* do lock */);
2946 }
2947 }
gfxstream_vk_GetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)2948 void gfxstream_vk_GetPhysicalDeviceSparseImageFormatProperties2KHR(
2949 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2950 uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) {
2951 MESA_TRACE_SCOPE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
2952 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2953 {
2954 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2955 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2956 gfxstream_physicalDevice->internal_object, pFormatInfo, pPropertyCount, pProperties,
2957 true /* do lock */);
2958 }
2959 }
2960 #endif
2961 #ifdef VK_KHR_maintenance1
gfxstream_vk_TrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)2962 void gfxstream_vk_TrimCommandPoolKHR(VkDevice device, VkCommandPool commandPool,
2963 VkCommandPoolTrimFlags flags) {
2964 MESA_TRACE_SCOPE("vkTrimCommandPoolKHR");
2965 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2966 VK_FROM_HANDLE(gfxstream_vk_command_pool, gfxstream_commandPool, commandPool);
2967 {
2968 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2969 vkEnc->vkTrimCommandPoolKHR(gfxstream_device->internal_object,
2970 gfxstream_commandPool->internal_object, flags,
2971 true /* do lock */);
2972 }
2973 }
2974 #endif
2975 #ifdef VK_KHR_external_memory_capabilities
gfxstream_vk_GetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)2976 void gfxstream_vk_GetPhysicalDeviceExternalBufferPropertiesKHR(
2977 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2978 VkExternalBufferProperties* pExternalBufferProperties) {
2979 MESA_TRACE_SCOPE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
2980 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
2981 {
2982 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2983 auto resources = gfxstream::vk::ResourceTracker::get();
2984 resources->on_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2985 vkEnc, gfxstream_physicalDevice->internal_object, pExternalBufferInfo,
2986 pExternalBufferProperties);
2987 }
2988 }
2989 #endif
2990 #ifdef VK_KHR_external_memory_fd
gfxstream_vk_GetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd)2991 VkResult gfxstream_vk_GetMemoryFdKHR(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo,
2992 int* pFd) {
2993 MESA_TRACE_SCOPE("vkGetMemoryFdKHR");
2994 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2995 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
2996 {
2997 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
2998 auto resources = gfxstream::vk::ResourceTracker::get();
2999 vkGetMemoryFdKHR_VkResult_return = resources->on_vkGetMemoryFdKHR(
3000 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pGetFdInfo, pFd);
3001 }
3002 return vkGetMemoryFdKHR_VkResult_return;
3003 }
gfxstream_vk_GetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties)3004 VkResult gfxstream_vk_GetMemoryFdPropertiesKHR(VkDevice device,
3005 VkExternalMemoryHandleTypeFlagBits handleType,
3006 int fd,
3007 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
3008 MESA_TRACE_SCOPE("vkGetMemoryFdPropertiesKHR");
3009 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
3010 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3011 {
3012 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3013 auto resources = gfxstream::vk::ResourceTracker::get();
3014 vkGetMemoryFdPropertiesKHR_VkResult_return = resources->on_vkGetMemoryFdPropertiesKHR(
3015 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, handleType, fd,
3016 pMemoryFdProperties);
3017 }
3018 return vkGetMemoryFdPropertiesKHR_VkResult_return;
3019 }
3020 #endif
3021 #ifdef VK_KHR_external_semaphore_capabilities
gfxstream_vk_GetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)3022 void gfxstream_vk_GetPhysicalDeviceExternalSemaphorePropertiesKHR(
3023 VkPhysicalDevice physicalDevice,
3024 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
3025 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
3026 MESA_TRACE_SCOPE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
3027 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
3028 {
3029 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3030 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
3031 gfxstream_physicalDevice->internal_object, pExternalSemaphoreInfo,
3032 pExternalSemaphoreProperties, true /* do lock */);
3033 }
3034 }
3035 #endif
3036 #ifdef VK_KHR_external_semaphore_fd
gfxstream_vk_ImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)3037 VkResult gfxstream_vk_ImportSemaphoreFdKHR(
3038 VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
3039 MESA_TRACE_SCOPE("vkImportSemaphoreFdKHR");
3040 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
3041 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3042 {
3043 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3044 std::vector<VkImportSemaphoreFdInfoKHR> internal_pImportSemaphoreFdInfo(1);
3045 for (uint32_t i = 0; i < 1; ++i) {
3046 internal_pImportSemaphoreFdInfo[i] = pImportSemaphoreFdInfo[i];
3047 /* VkImportSemaphoreFdInfoKHR::semaphore */
3048 VK_FROM_HANDLE(gfxstream_vk_semaphore, gfxstream_semaphore,
3049 internal_pImportSemaphoreFdInfo[i].semaphore);
3050 internal_pImportSemaphoreFdInfo[i].semaphore = gfxstream_semaphore->internal_object;
3051 }
3052 auto resources = gfxstream::vk::ResourceTracker::get();
3053 vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(
3054 vkEnc, VK_SUCCESS, gfxstream_device->internal_object,
3055 internal_pImportSemaphoreFdInfo.data());
3056 }
3057 return vkImportSemaphoreFdKHR_VkResult_return;
3058 }
gfxstream_vk_GetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)3059 VkResult gfxstream_vk_GetSemaphoreFdKHR(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
3060 int* pFd) {
3061 MESA_TRACE_SCOPE("vkGetSemaphoreFdKHR");
3062 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
3063 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3064 {
3065 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3066 std::vector<VkSemaphoreGetFdInfoKHR> internal_pGetFdInfo(1);
3067 for (uint32_t i = 0; i < 1; ++i) {
3068 internal_pGetFdInfo[i] = pGetFdInfo[i];
3069 /* VkSemaphoreGetFdInfoKHR::semaphore */
3070 VK_FROM_HANDLE(gfxstream_vk_semaphore, gfxstream_semaphore,
3071 internal_pGetFdInfo[i].semaphore);
3072 internal_pGetFdInfo[i].semaphore = gfxstream_semaphore->internal_object;
3073 }
3074 auto resources = gfxstream::vk::ResourceTracker::get();
3075 vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(
3076 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, internal_pGetFdInfo.data(), pFd);
3077 }
3078 return vkGetSemaphoreFdKHR_VkResult_return;
3079 }
3080 #endif
3081 #ifdef VK_KHR_descriptor_update_template
gfxstream_vk_CreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)3082 VkResult gfxstream_vk_CreateDescriptorUpdateTemplateKHR(
3083 VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
3084 const VkAllocationCallbacks* pAllocator,
3085 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
3086 MESA_TRACE_SCOPE("vkCreateDescriptorUpdateTemplateKHR");
3087 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
3088 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3089 {
3090 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3091 vkCreateDescriptorUpdateTemplateKHR_VkResult_return =
3092 vkEnc->vkCreateDescriptorUpdateTemplateKHR(
3093 gfxstream_device->internal_object, pCreateInfo, pAllocator,
3094 pDescriptorUpdateTemplate, true /* do lock */);
3095 }
3096 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
3097 }
gfxstream_vk_DestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)3098 void gfxstream_vk_DestroyDescriptorUpdateTemplateKHR(
3099 VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3100 const VkAllocationCallbacks* pAllocator) {
3101 MESA_TRACE_SCOPE("vkDestroyDescriptorUpdateTemplateKHR");
3102 if (VK_NULL_HANDLE == descriptorUpdateTemplate) {
3103 return;
3104 }
3105 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3106 {
3107 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3108 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(gfxstream_device->internal_object,
3109 descriptorUpdateTemplate, pAllocator,
3110 true /* do lock */);
3111 }
3112 }
gfxstream_vk_UpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)3113 void gfxstream_vk_UpdateDescriptorSetWithTemplateKHR(
3114 VkDevice device, VkDescriptorSet descriptorSet,
3115 VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) {
3116 MESA_TRACE_SCOPE("vkUpdateDescriptorSetWithTemplateKHR");
3117 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3118 {
3119 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3120 auto resources = gfxstream::vk::ResourceTracker::get();
3121 resources->on_vkUpdateDescriptorSetWithTemplateKHR(vkEnc, gfxstream_device->internal_object,
3122 descriptorSet, descriptorUpdateTemplate,
3123 pData);
3124 }
3125 }
3126 #endif
3127 #ifdef VK_KHR_create_renderpass2
gfxstream_vk_CreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)3128 VkResult gfxstream_vk_CreateRenderPass2KHR(VkDevice device,
3129 const VkRenderPassCreateInfo2* pCreateInfo,
3130 const VkAllocationCallbacks* pAllocator,
3131 VkRenderPass* pRenderPass) {
3132 MESA_TRACE_SCOPE("vkCreateRenderPass2KHR");
3133 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
3134 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3135 {
3136 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3137 vkCreateRenderPass2KHR_VkResult_return =
3138 vkEnc->vkCreateRenderPass2KHR(gfxstream_device->internal_object, pCreateInfo,
3139 pAllocator, pRenderPass, true /* do lock */);
3140 }
3141 return vkCreateRenderPass2KHR_VkResult_return;
3142 }
gfxstream_vk_CmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)3143 void gfxstream_vk_CmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,
3144 const VkRenderPassBeginInfo* pRenderPassBegin,
3145 const VkSubpassBeginInfo* pSubpassBeginInfo) {
3146 MESA_TRACE_SCOPE("vkCmdBeginRenderPass2KHR");
3147 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3148 {
3149 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3150 gfxstream_commandBuffer->internal_object);
3151 vkEnc->vkCmdBeginRenderPass2KHR(gfxstream_commandBuffer->internal_object, pRenderPassBegin,
3152 pSubpassBeginInfo, true /* do lock */);
3153 }
3154 }
gfxstream_vk_CmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)3155 void gfxstream_vk_CmdNextSubpass2KHR(VkCommandBuffer commandBuffer,
3156 const VkSubpassBeginInfo* pSubpassBeginInfo,
3157 const VkSubpassEndInfo* pSubpassEndInfo) {
3158 MESA_TRACE_SCOPE("vkCmdNextSubpass2KHR");
3159 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3160 {
3161 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3162 gfxstream_commandBuffer->internal_object);
3163 vkEnc->vkCmdNextSubpass2KHR(gfxstream_commandBuffer->internal_object, pSubpassBeginInfo,
3164 pSubpassEndInfo, true /* do lock */);
3165 }
3166 }
gfxstream_vk_CmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)3167 void gfxstream_vk_CmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,
3168 const VkSubpassEndInfo* pSubpassEndInfo) {
3169 MESA_TRACE_SCOPE("vkCmdEndRenderPass2KHR");
3170 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3171 {
3172 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3173 gfxstream_commandBuffer->internal_object);
3174 vkEnc->vkCmdEndRenderPass2KHR(gfxstream_commandBuffer->internal_object, pSubpassEndInfo,
3175 true /* do lock */);
3176 }
3177 }
3178 #endif
3179 #ifdef VK_KHR_external_fence_capabilities
gfxstream_vk_GetPhysicalDeviceExternalFencePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)3180 void gfxstream_vk_GetPhysicalDeviceExternalFencePropertiesKHR(
3181 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
3182 VkExternalFenceProperties* pExternalFenceProperties) {
3183 MESA_TRACE_SCOPE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
3184 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
3185 {
3186 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3187 auto resources = gfxstream::vk::ResourceTracker::get();
3188 resources->on_vkGetPhysicalDeviceExternalFencePropertiesKHR(
3189 vkEnc, gfxstream_physicalDevice->internal_object, pExternalFenceInfo,
3190 pExternalFenceProperties);
3191 }
3192 }
3193 #endif
3194 #ifdef VK_KHR_external_fence_fd
gfxstream_vk_ImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo)3195 VkResult gfxstream_vk_ImportFenceFdKHR(VkDevice device,
3196 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
3197 MESA_TRACE_SCOPE("vkImportFenceFdKHR");
3198 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
3199 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3200 {
3201 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3202 std::vector<VkImportFenceFdInfoKHR> internal_pImportFenceFdInfo(1);
3203 for (uint32_t i = 0; i < 1; ++i) {
3204 internal_pImportFenceFdInfo[i] = pImportFenceFdInfo[i];
3205 /* VkImportFenceFdInfoKHR::fence */
3206 VK_FROM_HANDLE(gfxstream_vk_fence, gfxstream_fence,
3207 internal_pImportFenceFdInfo[i].fence);
3208 internal_pImportFenceFdInfo[i].fence = gfxstream_fence->internal_object;
3209 }
3210 auto resources = gfxstream::vk::ResourceTracker::get();
3211 vkImportFenceFdKHR_VkResult_return =
3212 resources->on_vkImportFenceFdKHR(vkEnc, VK_SUCCESS, gfxstream_device->internal_object,
3213 internal_pImportFenceFdInfo.data());
3214 }
3215 return vkImportFenceFdKHR_VkResult_return;
3216 }
gfxstream_vk_GetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd)3217 VkResult gfxstream_vk_GetFenceFdKHR(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo,
3218 int* pFd) {
3219 MESA_TRACE_SCOPE("vkGetFenceFdKHR");
3220 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
3221 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3222 {
3223 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3224 std::vector<VkFenceGetFdInfoKHR> internal_pGetFdInfo(1);
3225 for (uint32_t i = 0; i < 1; ++i) {
3226 internal_pGetFdInfo[i] = pGetFdInfo[i];
3227 /* VkFenceGetFdInfoKHR::fence */
3228 VK_FROM_HANDLE(gfxstream_vk_fence, gfxstream_fence, internal_pGetFdInfo[i].fence);
3229 internal_pGetFdInfo[i].fence = gfxstream_fence->internal_object;
3230 }
3231 auto resources = gfxstream::vk::ResourceTracker::get();
3232 vkGetFenceFdKHR_VkResult_return = resources->on_vkGetFenceFdKHR(
3233 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, internal_pGetFdInfo.data(), pFd);
3234 }
3235 return vkGetFenceFdKHR_VkResult_return;
3236 }
3237 #endif
3238 #ifdef VK_KHR_get_memory_requirements2
gfxstream_vk_GetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3239 void gfxstream_vk_GetImageMemoryRequirements2KHR(VkDevice device,
3240 const VkImageMemoryRequirementsInfo2* pInfo,
3241 VkMemoryRequirements2* pMemoryRequirements) {
3242 MESA_TRACE_SCOPE("vkGetImageMemoryRequirements2KHR");
3243 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3244 {
3245 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3246 auto resources = gfxstream::vk::ResourceTracker::get();
3247 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, gfxstream_device->internal_object,
3248 pInfo, pMemoryRequirements);
3249 }
3250 }
gfxstream_vk_GetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3251 void gfxstream_vk_GetBufferMemoryRequirements2KHR(VkDevice device,
3252 const VkBufferMemoryRequirementsInfo2* pInfo,
3253 VkMemoryRequirements2* pMemoryRequirements) {
3254 MESA_TRACE_SCOPE("vkGetBufferMemoryRequirements2KHR");
3255 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3256 {
3257 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3258 std::vector<VkBufferMemoryRequirementsInfo2> internal_pInfo(1);
3259 for (uint32_t i = 0; i < 1; ++i) {
3260 internal_pInfo[i] = pInfo[i];
3261 /* VkBufferMemoryRequirementsInfo2::buffer */
3262 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, internal_pInfo[i].buffer);
3263 internal_pInfo[i].buffer = gfxstream_buffer->internal_object;
3264 }
3265 auto resources = gfxstream::vk::ResourceTracker::get();
3266 resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, gfxstream_device->internal_object,
3267 internal_pInfo.data(), pMemoryRequirements);
3268 }
3269 }
gfxstream_vk_GetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)3270 void gfxstream_vk_GetImageSparseMemoryRequirements2KHR(
3271 VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
3272 uint32_t* pSparseMemoryRequirementCount,
3273 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
3274 MESA_TRACE_SCOPE("vkGetImageSparseMemoryRequirements2KHR");
3275 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3276 {
3277 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3278 vkEnc->vkGetImageSparseMemoryRequirements2KHR(
3279 gfxstream_device->internal_object, pInfo, pSparseMemoryRequirementCount,
3280 pSparseMemoryRequirements, true /* do lock */);
3281 }
3282 }
3283 #endif
3284 #ifdef VK_KHR_sampler_ycbcr_conversion
gfxstream_vk_CreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)3285 VkResult gfxstream_vk_CreateSamplerYcbcrConversionKHR(
3286 VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
3287 const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) {
3288 MESA_TRACE_SCOPE("vkCreateSamplerYcbcrConversionKHR");
3289 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
3290 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3291 {
3292 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3293 auto resources = gfxstream::vk::ResourceTracker::get();
3294 vkCreateSamplerYcbcrConversionKHR_VkResult_return =
3295 resources->on_vkCreateSamplerYcbcrConversionKHR(
3296 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pCreateInfo, pAllocator,
3297 pYcbcrConversion);
3298 }
3299 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
3300 }
gfxstream_vk_DestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)3301 void gfxstream_vk_DestroySamplerYcbcrConversionKHR(VkDevice device,
3302 VkSamplerYcbcrConversion ycbcrConversion,
3303 const VkAllocationCallbacks* pAllocator) {
3304 MESA_TRACE_SCOPE("vkDestroySamplerYcbcrConversionKHR");
3305 if (VK_NULL_HANDLE == ycbcrConversion) {
3306 return;
3307 }
3308 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3309 {
3310 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3311 auto resources = gfxstream::vk::ResourceTracker::get();
3312 resources->on_vkDestroySamplerYcbcrConversionKHR(vkEnc, gfxstream_device->internal_object,
3313 ycbcrConversion, pAllocator);
3314 }
3315 }
3316 #endif
3317 #ifdef VK_KHR_bind_memory2
gfxstream_vk_BindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)3318 VkResult gfxstream_vk_BindBufferMemory2KHR(VkDevice device, uint32_t bindInfoCount,
3319 const VkBindBufferMemoryInfo* pBindInfos) {
3320 MESA_TRACE_SCOPE("vkBindBufferMemory2KHR");
3321 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
3322 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3323 {
3324 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3325 std::vector<VkBindBufferMemoryInfo> internal_pBindInfos(bindInfoCount);
3326 for (uint32_t i = 0; i < bindInfoCount; ++i) {
3327 internal_pBindInfos[i] = pBindInfos[i];
3328 /* VkBindBufferMemoryInfo::buffer */
3329 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, internal_pBindInfos[i].buffer);
3330 internal_pBindInfos[i].buffer = gfxstream_buffer->internal_object;
3331 }
3332 auto resources = gfxstream::vk::ResourceTracker::get();
3333 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(
3334 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, bindInfoCount,
3335 internal_pBindInfos.data());
3336 }
3337 return vkBindBufferMemory2KHR_VkResult_return;
3338 }
gfxstream_vk_BindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)3339 VkResult gfxstream_vk_BindImageMemory2KHR(VkDevice device, uint32_t bindInfoCount,
3340 const VkBindImageMemoryInfo* pBindInfos) {
3341 MESA_TRACE_SCOPE("vkBindImageMemory2KHR");
3342 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
3343 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3344 {
3345 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3346 auto resources = gfxstream::vk::ResourceTracker::get();
3347 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(
3348 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, bindInfoCount, pBindInfos);
3349 }
3350 return vkBindImageMemory2KHR_VkResult_return;
3351 }
3352 #endif
3353 #ifdef VK_KHR_maintenance3
gfxstream_vk_GetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)3354 void gfxstream_vk_GetDescriptorSetLayoutSupportKHR(
3355 VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
3356 VkDescriptorSetLayoutSupport* pSupport) {
3357 MESA_TRACE_SCOPE("vkGetDescriptorSetLayoutSupportKHR");
3358 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3359 {
3360 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3361 vkEnc->vkGetDescriptorSetLayoutSupportKHR(gfxstream_device->internal_object, pCreateInfo,
3362 pSupport, true /* do lock */);
3363 }
3364 }
3365 #endif
3366 #ifdef VK_KHR_buffer_device_address
gfxstream_vk_GetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)3367 VkDeviceAddress gfxstream_vk_GetBufferDeviceAddressKHR(VkDevice device,
3368 const VkBufferDeviceAddressInfo* pInfo) {
3369 MESA_TRACE_SCOPE("vkGetBufferDeviceAddressKHR");
3370 VkDeviceAddress vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0;
3371 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3372 {
3373 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3374 std::vector<VkBufferDeviceAddressInfo> internal_pInfo(1);
3375 for (uint32_t i = 0; i < 1; ++i) {
3376 internal_pInfo[i] = pInfo[i];
3377 /* VkBufferDeviceAddressInfo::buffer */
3378 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, internal_pInfo[i].buffer);
3379 internal_pInfo[i].buffer = gfxstream_buffer->internal_object;
3380 }
3381 vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddressKHR(
3382 gfxstream_device->internal_object, internal_pInfo.data(), true /* do lock */);
3383 }
3384 return vkGetBufferDeviceAddressKHR_VkDeviceAddress_return;
3385 }
gfxstream_vk_GetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)3386 uint64_t gfxstream_vk_GetBufferOpaqueCaptureAddressKHR(VkDevice device,
3387 const VkBufferDeviceAddressInfo* pInfo) {
3388 MESA_TRACE_SCOPE("vkGetBufferOpaqueCaptureAddressKHR");
3389 uint64_t vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0;
3390 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3391 {
3392 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3393 std::vector<VkBufferDeviceAddressInfo> internal_pInfo(1);
3394 for (uint32_t i = 0; i < 1; ++i) {
3395 internal_pInfo[i] = pInfo[i];
3396 /* VkBufferDeviceAddressInfo::buffer */
3397 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, internal_pInfo[i].buffer);
3398 internal_pInfo[i].buffer = gfxstream_buffer->internal_object;
3399 }
3400 vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return =
3401 vkEnc->vkGetBufferOpaqueCaptureAddressKHR(gfxstream_device->internal_object,
3402 internal_pInfo.data(), true /* do lock */);
3403 }
3404 return vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return;
3405 }
gfxstream_vk_GetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)3406 uint64_t gfxstream_vk_GetDeviceMemoryOpaqueCaptureAddressKHR(
3407 VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
3408 MESA_TRACE_SCOPE("vkGetDeviceMemoryOpaqueCaptureAddressKHR");
3409 uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0;
3410 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3411 {
3412 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3413 vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return =
3414 vkEnc->vkGetDeviceMemoryOpaqueCaptureAddressKHR(gfxstream_device->internal_object,
3415 pInfo, true /* do lock */);
3416 }
3417 return vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return;
3418 }
3419 #endif
3420 #ifdef VK_KHR_pipeline_executable_properties
gfxstream_vk_GetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties)3421 VkResult gfxstream_vk_GetPipelineExecutablePropertiesKHR(
3422 VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount,
3423 VkPipelineExecutablePropertiesKHR* pProperties) {
3424 MESA_TRACE_SCOPE("vkGetPipelineExecutablePropertiesKHR");
3425 VkResult vkGetPipelineExecutablePropertiesKHR_VkResult_return = (VkResult)0;
3426 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3427 {
3428 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3429 vkGetPipelineExecutablePropertiesKHR_VkResult_return =
3430 vkEnc->vkGetPipelineExecutablePropertiesKHR(gfxstream_device->internal_object,
3431 pPipelineInfo, pExecutableCount,
3432 pProperties, true /* do lock */);
3433 }
3434 return vkGetPipelineExecutablePropertiesKHR_VkResult_return;
3435 }
gfxstream_vk_GetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics)3436 VkResult gfxstream_vk_GetPipelineExecutableStatisticsKHR(
3437 VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount,
3438 VkPipelineExecutableStatisticKHR* pStatistics) {
3439 MESA_TRACE_SCOPE("vkGetPipelineExecutableStatisticsKHR");
3440 VkResult vkGetPipelineExecutableStatisticsKHR_VkResult_return = (VkResult)0;
3441 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3442 {
3443 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3444 vkGetPipelineExecutableStatisticsKHR_VkResult_return =
3445 vkEnc->vkGetPipelineExecutableStatisticsKHR(gfxstream_device->internal_object,
3446 pExecutableInfo, pStatisticCount,
3447 pStatistics, true /* do lock */);
3448 }
3449 return vkGetPipelineExecutableStatisticsKHR_VkResult_return;
3450 }
gfxstream_vk_GetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations)3451 VkResult gfxstream_vk_GetPipelineExecutableInternalRepresentationsKHR(
3452 VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo,
3453 uint32_t* pInternalRepresentationCount,
3454 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {
3455 MESA_TRACE_SCOPE("vkGetPipelineExecutableInternalRepresentationsKHR");
3456 VkResult vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return = (VkResult)0;
3457 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3458 {
3459 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3460 vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return =
3461 vkEnc->vkGetPipelineExecutableInternalRepresentationsKHR(
3462 gfxstream_device->internal_object, pExecutableInfo, pInternalRepresentationCount,
3463 pInternalRepresentations, true /* do lock */);
3464 }
3465 return vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return;
3466 }
3467 #endif
3468 #ifdef VK_KHR_synchronization2
gfxstream_vk_CmdSetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)3469 void gfxstream_vk_CmdSetEvent2KHR(VkCommandBuffer commandBuffer, VkEvent event,
3470 const VkDependencyInfo* pDependencyInfo) {
3471 MESA_TRACE_SCOPE("vkCmdSetEvent2KHR");
3472 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3473 {
3474 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3475 gfxstream_commandBuffer->internal_object);
3476 std::vector<VkDependencyInfo> internal_pDependencyInfo(1);
3477 std::vector<std::vector<VkBufferMemoryBarrier2>>
3478 internal_VkDependencyInfo_pBufferMemoryBarriers;
3479 for (uint32_t i = 0; i < 1; ++i) {
3480 internal_pDependencyInfo[i] = pDependencyInfo[i];
3481 /* VkDependencyInfo::pBufferMemoryBarriers */
3482 internal_VkDependencyInfo_pBufferMemoryBarriers.push_back(
3483 std::vector<VkBufferMemoryBarrier2>());
3484 internal_VkDependencyInfo_pBufferMemoryBarriers[i].resize(
3485 internal_pDependencyInfo[i].bufferMemoryBarrierCount);
3486 for (uint32_t j = 0; j < internal_pDependencyInfo[i].bufferMemoryBarrierCount; ++j) {
3487 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j] =
3488 internal_pDependencyInfo[i].pBufferMemoryBarriers[j];
3489 /* VkBufferMemoryBarrier2::buffer */
3490 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer,
3491 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer);
3492 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer =
3493 gfxstream_buffer->internal_object;
3494 }
3495 internal_pDependencyInfo[i].pBufferMemoryBarriers =
3496 internal_VkDependencyInfo_pBufferMemoryBarriers[i].data();
3497 }
3498 vkEnc->vkCmdSetEvent2KHR(gfxstream_commandBuffer->internal_object, event,
3499 internal_pDependencyInfo.data(), true /* do lock */);
3500 }
3501 }
gfxstream_vk_CmdResetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)3502 void gfxstream_vk_CmdResetEvent2KHR(VkCommandBuffer commandBuffer, VkEvent event,
3503 VkPipelineStageFlags2 stageMask) {
3504 MESA_TRACE_SCOPE("vkCmdResetEvent2KHR");
3505 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3506 {
3507 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3508 gfxstream_commandBuffer->internal_object);
3509 vkEnc->vkCmdResetEvent2KHR(gfxstream_commandBuffer->internal_object, event, stageMask,
3510 true /* do lock */);
3511 }
3512 }
gfxstream_vk_CmdWaitEvents2KHR(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)3513 void gfxstream_vk_CmdWaitEvents2KHR(VkCommandBuffer commandBuffer, uint32_t eventCount,
3514 const VkEvent* pEvents,
3515 const VkDependencyInfo* pDependencyInfos) {
3516 MESA_TRACE_SCOPE("vkCmdWaitEvents2KHR");
3517 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3518 {
3519 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3520 gfxstream_commandBuffer->internal_object);
3521 std::vector<VkDependencyInfo> internal_pDependencyInfos(eventCount);
3522 std::vector<std::vector<VkBufferMemoryBarrier2>>
3523 internal_VkDependencyInfo_pBufferMemoryBarriers;
3524 for (uint32_t i = 0; i < eventCount; ++i) {
3525 internal_pDependencyInfos[i] = pDependencyInfos[i];
3526 /* VkDependencyInfo::pBufferMemoryBarriers */
3527 internal_VkDependencyInfo_pBufferMemoryBarriers.push_back(
3528 std::vector<VkBufferMemoryBarrier2>());
3529 internal_VkDependencyInfo_pBufferMemoryBarriers[i].resize(
3530 internal_pDependencyInfos[i].bufferMemoryBarrierCount);
3531 for (uint32_t j = 0; j < internal_pDependencyInfos[i].bufferMemoryBarrierCount; ++j) {
3532 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j] =
3533 internal_pDependencyInfos[i].pBufferMemoryBarriers[j];
3534 /* VkBufferMemoryBarrier2::buffer */
3535 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer,
3536 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer);
3537 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer =
3538 gfxstream_buffer->internal_object;
3539 }
3540 internal_pDependencyInfos[i].pBufferMemoryBarriers =
3541 internal_VkDependencyInfo_pBufferMemoryBarriers[i].data();
3542 }
3543 vkEnc->vkCmdWaitEvents2KHR(gfxstream_commandBuffer->internal_object, eventCount, pEvents,
3544 internal_pDependencyInfos.data(), true /* do lock */);
3545 }
3546 }
gfxstream_vk_CmdPipelineBarrier2KHR(VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)3547 void gfxstream_vk_CmdPipelineBarrier2KHR(VkCommandBuffer commandBuffer,
3548 const VkDependencyInfo* pDependencyInfo) {
3549 MESA_TRACE_SCOPE("vkCmdPipelineBarrier2KHR");
3550 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3551 {
3552 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3553 gfxstream_commandBuffer->internal_object);
3554 std::vector<VkDependencyInfo> internal_pDependencyInfo(1);
3555 std::vector<std::vector<VkBufferMemoryBarrier2>>
3556 internal_VkDependencyInfo_pBufferMemoryBarriers;
3557 for (uint32_t i = 0; i < 1; ++i) {
3558 internal_pDependencyInfo[i] = pDependencyInfo[i];
3559 /* VkDependencyInfo::pBufferMemoryBarriers */
3560 internal_VkDependencyInfo_pBufferMemoryBarriers.push_back(
3561 std::vector<VkBufferMemoryBarrier2>());
3562 internal_VkDependencyInfo_pBufferMemoryBarriers[i].resize(
3563 internal_pDependencyInfo[i].bufferMemoryBarrierCount);
3564 for (uint32_t j = 0; j < internal_pDependencyInfo[i].bufferMemoryBarrierCount; ++j) {
3565 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j] =
3566 internal_pDependencyInfo[i].pBufferMemoryBarriers[j];
3567 /* VkBufferMemoryBarrier2::buffer */
3568 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer,
3569 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer);
3570 internal_VkDependencyInfo_pBufferMemoryBarriers[i][j].buffer =
3571 gfxstream_buffer->internal_object;
3572 }
3573 internal_pDependencyInfo[i].pBufferMemoryBarriers =
3574 internal_VkDependencyInfo_pBufferMemoryBarriers[i].data();
3575 }
3576 vkEnc->vkCmdPipelineBarrier2KHR(gfxstream_commandBuffer->internal_object,
3577 internal_pDependencyInfo.data(), true /* do lock */);
3578 }
3579 }
gfxstream_vk_CmdWriteTimestamp2KHR(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)3580 void gfxstream_vk_CmdWriteTimestamp2KHR(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage,
3581 VkQueryPool queryPool, uint32_t query) {
3582 MESA_TRACE_SCOPE("vkCmdWriteTimestamp2KHR");
3583 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3584 {
3585 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3586 gfxstream_commandBuffer->internal_object);
3587 vkEnc->vkCmdWriteTimestamp2KHR(gfxstream_commandBuffer->internal_object, stage, queryPool,
3588 query, true /* do lock */);
3589 }
3590 }
gfxstream_vk_QueueSubmit2KHR(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)3591 VkResult gfxstream_vk_QueueSubmit2KHR(VkQueue queue, uint32_t submitCount,
3592 const VkSubmitInfo2* pSubmits, VkFence fence) {
3593 MESA_TRACE_SCOPE("vkQueueSubmit2KHR");
3594 VkResult vkQueueSubmit2KHR_VkResult_return = (VkResult)0;
3595 VK_FROM_HANDLE(gfxstream_vk_queue, gfxstream_queue, queue);
3596 VK_FROM_HANDLE(gfxstream_vk_fence, gfxstream_fence, fence);
3597 {
3598 auto vkEnc =
3599 gfxstream::vk::ResourceTracker::getQueueEncoder(gfxstream_queue->internal_object);
3600 std::vector<VkSubmitInfo2> internal_pSubmits(submitCount);
3601 std::vector<std::vector<VkSemaphoreSubmitInfo>> internal_VkSubmitInfo2_pWaitSemaphoreInfos;
3602 std::vector<std::vector<VkCommandBufferSubmitInfo>>
3603 internal_VkSubmitInfo2_pCommandBufferInfos;
3604 std::vector<std::vector<VkSemaphoreSubmitInfo>>
3605 internal_VkSubmitInfo2_pSignalSemaphoreInfos;
3606 for (uint32_t i = 0; i < submitCount; ++i) {
3607 internal_pSubmits[i] = pSubmits[i];
3608 /* VkSubmitInfo2::pWaitSemaphoreInfos */
3609 internal_VkSubmitInfo2_pWaitSemaphoreInfos.push_back(
3610 std::vector<VkSemaphoreSubmitInfo>());
3611 internal_VkSubmitInfo2_pWaitSemaphoreInfos[i] =
3612 transformVkSemaphoreSubmitInfoList(internal_pSubmits[i].pWaitSemaphoreInfos,
3613 internal_pSubmits[i].waitSemaphoreInfoCount);
3614 internal_pSubmits[i].pWaitSemaphoreInfos =
3615 internal_VkSubmitInfo2_pWaitSemaphoreInfos[i].data();
3616 internal_pSubmits[i].waitSemaphoreInfoCount =
3617 internal_VkSubmitInfo2_pWaitSemaphoreInfos[i].size();
3618 /* VkSubmitInfo2::pCommandBufferInfos */
3619 internal_VkSubmitInfo2_pCommandBufferInfos.push_back(
3620 std::vector<VkCommandBufferSubmitInfo>());
3621 internal_VkSubmitInfo2_pCommandBufferInfos[i].resize(
3622 internal_pSubmits[i].commandBufferInfoCount);
3623 for (uint32_t j = 0; j < internal_pSubmits[i].commandBufferInfoCount; ++j) {
3624 internal_VkSubmitInfo2_pCommandBufferInfos[i][j] =
3625 internal_pSubmits[i].pCommandBufferInfos[j];
3626 /* VkCommandBufferSubmitInfo::commandBuffer */
3627 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer,
3628 internal_VkSubmitInfo2_pCommandBufferInfos[i][j].commandBuffer);
3629 internal_VkSubmitInfo2_pCommandBufferInfos[i][j].commandBuffer =
3630 gfxstream_commandBuffer->internal_object;
3631 }
3632 internal_pSubmits[i].pCommandBufferInfos =
3633 internal_VkSubmitInfo2_pCommandBufferInfos[i].data();
3634 /* VkSubmitInfo2::pSignalSemaphoreInfos */
3635 internal_VkSubmitInfo2_pSignalSemaphoreInfos.push_back(
3636 std::vector<VkSemaphoreSubmitInfo>());
3637 internal_VkSubmitInfo2_pSignalSemaphoreInfos[i] =
3638 transformVkSemaphoreSubmitInfoList(internal_pSubmits[i].pSignalSemaphoreInfos,
3639 internal_pSubmits[i].signalSemaphoreInfoCount);
3640 internal_pSubmits[i].pSignalSemaphoreInfos =
3641 internal_VkSubmitInfo2_pSignalSemaphoreInfos[i].data();
3642 internal_pSubmits[i].signalSemaphoreInfoCount =
3643 internal_VkSubmitInfo2_pSignalSemaphoreInfos[i].size();
3644 }
3645 vkQueueSubmit2KHR_VkResult_return = vkEnc->vkQueueSubmit2KHR(
3646 gfxstream_queue->internal_object, submitCount, internal_pSubmits.data(),
3647 gfxstream_fence ? gfxstream_fence->internal_object : VK_NULL_HANDLE,
3648 true /* do lock */);
3649 }
3650 return vkQueueSubmit2KHR_VkResult_return;
3651 }
gfxstream_vk_CmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)3652 void gfxstream_vk_CmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer,
3653 VkPipelineStageFlags2 stage, VkBuffer dstBuffer,
3654 VkDeviceSize dstOffset, uint32_t marker) {
3655 MESA_TRACE_SCOPE("vkCmdWriteBufferMarker2AMD");
3656 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3657 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_dstBuffer, dstBuffer);
3658 {
3659 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3660 gfxstream_commandBuffer->internal_object);
3661 vkEnc->vkCmdWriteBufferMarker2AMD(gfxstream_commandBuffer->internal_object, stage,
3662 gfxstream_dstBuffer->internal_object, dstOffset, marker,
3663 true /* do lock */);
3664 }
3665 }
gfxstream_vk_GetQueueCheckpointData2NV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointData2NV * pCheckpointData)3666 void gfxstream_vk_GetQueueCheckpointData2NV(VkQueue queue, uint32_t* pCheckpointDataCount,
3667 VkCheckpointData2NV* pCheckpointData) {
3668 MESA_TRACE_SCOPE("vkGetQueueCheckpointData2NV");
3669 VK_FROM_HANDLE(gfxstream_vk_queue, gfxstream_queue, queue);
3670 {
3671 auto vkEnc =
3672 gfxstream::vk::ResourceTracker::getQueueEncoder(gfxstream_queue->internal_object);
3673 vkEnc->vkGetQueueCheckpointData2NV(gfxstream_queue->internal_object, pCheckpointDataCount,
3674 pCheckpointData, true /* do lock */);
3675 }
3676 }
3677 #endif
3678 #ifdef VK_KHR_copy_commands2
gfxstream_vk_CmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)3679 void gfxstream_vk_CmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,
3680 const VkCopyBufferInfo2* pCopyBufferInfo) {
3681 MESA_TRACE_SCOPE("vkCmdCopyBuffer2KHR");
3682 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3683 {
3684 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3685 gfxstream_commandBuffer->internal_object);
3686 std::vector<VkCopyBufferInfo2> internal_pCopyBufferInfo(1);
3687 for (uint32_t i = 0; i < 1; ++i) {
3688 internal_pCopyBufferInfo[i] = pCopyBufferInfo[i];
3689 /* VkCopyBufferInfo2::srcBuffer */
3690 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_srcBuffer,
3691 internal_pCopyBufferInfo[i].srcBuffer);
3692 internal_pCopyBufferInfo[i].srcBuffer = gfxstream_srcBuffer->internal_object;
3693 /* VkCopyBufferInfo2::dstBuffer */
3694 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_dstBuffer,
3695 internal_pCopyBufferInfo[i].dstBuffer);
3696 internal_pCopyBufferInfo[i].dstBuffer = gfxstream_dstBuffer->internal_object;
3697 }
3698 vkEnc->vkCmdCopyBuffer2KHR(gfxstream_commandBuffer->internal_object,
3699 internal_pCopyBufferInfo.data(), true /* do lock */);
3700 }
3701 }
gfxstream_vk_CmdCopyImage2KHR(VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)3702 void gfxstream_vk_CmdCopyImage2KHR(VkCommandBuffer commandBuffer,
3703 const VkCopyImageInfo2* pCopyImageInfo) {
3704 MESA_TRACE_SCOPE("vkCmdCopyImage2KHR");
3705 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3706 {
3707 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3708 gfxstream_commandBuffer->internal_object);
3709 vkEnc->vkCmdCopyImage2KHR(gfxstream_commandBuffer->internal_object, pCopyImageInfo,
3710 true /* do lock */);
3711 }
3712 }
gfxstream_vk_CmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)3713 void gfxstream_vk_CmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,
3714 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
3715 MESA_TRACE_SCOPE("vkCmdCopyBufferToImage2KHR");
3716 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3717 {
3718 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3719 gfxstream_commandBuffer->internal_object);
3720 std::vector<VkCopyBufferToImageInfo2> internal_pCopyBufferToImageInfo(1);
3721 for (uint32_t i = 0; i < 1; ++i) {
3722 internal_pCopyBufferToImageInfo[i] = pCopyBufferToImageInfo[i];
3723 /* VkCopyBufferToImageInfo2::srcBuffer */
3724 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_srcBuffer,
3725 internal_pCopyBufferToImageInfo[i].srcBuffer);
3726 internal_pCopyBufferToImageInfo[i].srcBuffer = gfxstream_srcBuffer->internal_object;
3727 }
3728 vkEnc->vkCmdCopyBufferToImage2KHR(gfxstream_commandBuffer->internal_object,
3729 internal_pCopyBufferToImageInfo.data(),
3730 true /* do lock */);
3731 }
3732 }
gfxstream_vk_CmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)3733 void gfxstream_vk_CmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,
3734 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
3735 MESA_TRACE_SCOPE("vkCmdCopyImageToBuffer2KHR");
3736 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3737 {
3738 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3739 gfxstream_commandBuffer->internal_object);
3740 std::vector<VkCopyImageToBufferInfo2> internal_pCopyImageToBufferInfo(1);
3741 for (uint32_t i = 0; i < 1; ++i) {
3742 internal_pCopyImageToBufferInfo[i] = pCopyImageToBufferInfo[i];
3743 /* VkCopyImageToBufferInfo2::dstBuffer */
3744 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_dstBuffer,
3745 internal_pCopyImageToBufferInfo[i].dstBuffer);
3746 internal_pCopyImageToBufferInfo[i].dstBuffer = gfxstream_dstBuffer->internal_object;
3747 }
3748 vkEnc->vkCmdCopyImageToBuffer2KHR(gfxstream_commandBuffer->internal_object,
3749 internal_pCopyImageToBufferInfo.data(),
3750 true /* do lock */);
3751 }
3752 }
gfxstream_vk_CmdBlitImage2KHR(VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)3753 void gfxstream_vk_CmdBlitImage2KHR(VkCommandBuffer commandBuffer,
3754 const VkBlitImageInfo2* pBlitImageInfo) {
3755 MESA_TRACE_SCOPE("vkCmdBlitImage2KHR");
3756 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3757 {
3758 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3759 gfxstream_commandBuffer->internal_object);
3760 vkEnc->vkCmdBlitImage2KHR(gfxstream_commandBuffer->internal_object, pBlitImageInfo,
3761 true /* do lock */);
3762 }
3763 }
gfxstream_vk_CmdResolveImage2KHR(VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)3764 void gfxstream_vk_CmdResolveImage2KHR(VkCommandBuffer commandBuffer,
3765 const VkResolveImageInfo2* pResolveImageInfo) {
3766 MESA_TRACE_SCOPE("vkCmdResolveImage2KHR");
3767 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3768 {
3769 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3770 gfxstream_commandBuffer->internal_object);
3771 vkEnc->vkCmdResolveImage2KHR(gfxstream_commandBuffer->internal_object, pResolveImageInfo,
3772 true /* do lock */);
3773 }
3774 }
3775 #endif
3776 #ifdef VK_KHR_maintenance4
gfxstream_vk_GetDeviceBufferMemoryRequirementsKHR(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3777 void gfxstream_vk_GetDeviceBufferMemoryRequirementsKHR(
3778 VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo,
3779 VkMemoryRequirements2* pMemoryRequirements) {
3780 MESA_TRACE_SCOPE("vkGetDeviceBufferMemoryRequirementsKHR");
3781 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3782 {
3783 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3784 vkEnc->vkGetDeviceBufferMemoryRequirementsKHR(gfxstream_device->internal_object, pInfo,
3785 pMemoryRequirements, true /* do lock */);
3786 }
3787 }
gfxstream_vk_GetDeviceImageMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3788 void gfxstream_vk_GetDeviceImageMemoryRequirementsKHR(VkDevice device,
3789 const VkDeviceImageMemoryRequirements* pInfo,
3790 VkMemoryRequirements2* pMemoryRequirements) {
3791 MESA_TRACE_SCOPE("vkGetDeviceImageMemoryRequirementsKHR");
3792 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3793 {
3794 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3795 vkEnc->vkGetDeviceImageMemoryRequirementsKHR(gfxstream_device->internal_object, pInfo,
3796 pMemoryRequirements, true /* do lock */);
3797 }
3798 }
gfxstream_vk_GetDeviceImageSparseMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)3799 void gfxstream_vk_GetDeviceImageSparseMemoryRequirementsKHR(
3800 VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
3801 uint32_t* pSparseMemoryRequirementCount,
3802 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
3803 MESA_TRACE_SCOPE("vkGetDeviceImageSparseMemoryRequirementsKHR");
3804 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3805 {
3806 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3807 vkEnc->vkGetDeviceImageSparseMemoryRequirementsKHR(
3808 gfxstream_device->internal_object, pInfo, pSparseMemoryRequirementCount,
3809 pSparseMemoryRequirements, true /* do lock */);
3810 }
3811 }
3812 #endif
3813 #ifdef VK_KHR_maintenance5
gfxstream_vk_CmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkDeviceSize size,VkIndexType indexType)3814 void gfxstream_vk_CmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer, VkBuffer buffer,
3815 VkDeviceSize offset, VkDeviceSize size,
3816 VkIndexType indexType) {
3817 MESA_TRACE_SCOPE("vkCmdBindIndexBuffer2KHR");
3818 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3819 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_buffer, buffer);
3820 {
3821 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3822 gfxstream_commandBuffer->internal_object);
3823 vkEnc->vkCmdBindIndexBuffer2KHR(
3824 gfxstream_commandBuffer->internal_object,
3825 gfxstream_buffer ? gfxstream_buffer->internal_object : VK_NULL_HANDLE, offset, size,
3826 indexType, true /* do lock */);
3827 }
3828 }
gfxstream_vk_GetRenderingAreaGranularityKHR(VkDevice device,const VkRenderingAreaInfoKHR * pRenderingAreaInfo,VkExtent2D * pGranularity)3829 void gfxstream_vk_GetRenderingAreaGranularityKHR(VkDevice device,
3830 const VkRenderingAreaInfoKHR* pRenderingAreaInfo,
3831 VkExtent2D* pGranularity) {
3832 MESA_TRACE_SCOPE("vkGetRenderingAreaGranularityKHR");
3833 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3834 {
3835 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3836 vkEnc->vkGetRenderingAreaGranularityKHR(gfxstream_device->internal_object,
3837 pRenderingAreaInfo, pGranularity,
3838 true /* do lock */);
3839 }
3840 }
gfxstream_vk_GetDeviceImageSubresourceLayoutKHR(VkDevice device,const VkDeviceImageSubresourceInfoKHR * pInfo,VkSubresourceLayout2KHR * pLayout)3841 void gfxstream_vk_GetDeviceImageSubresourceLayoutKHR(VkDevice device,
3842 const VkDeviceImageSubresourceInfoKHR* pInfo,
3843 VkSubresourceLayout2KHR* pLayout) {
3844 MESA_TRACE_SCOPE("vkGetDeviceImageSubresourceLayoutKHR");
3845 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3846 {
3847 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3848 vkEnc->vkGetDeviceImageSubresourceLayoutKHR(gfxstream_device->internal_object, pInfo,
3849 pLayout, true /* do lock */);
3850 }
3851 }
gfxstream_vk_GetImageSubresourceLayout2KHR(VkDevice device,VkImage image,const VkImageSubresource2KHR * pSubresource,VkSubresourceLayout2KHR * pLayout)3852 void gfxstream_vk_GetImageSubresourceLayout2KHR(VkDevice device, VkImage image,
3853 const VkImageSubresource2KHR* pSubresource,
3854 VkSubresourceLayout2KHR* pLayout) {
3855 MESA_TRACE_SCOPE("vkGetImageSubresourceLayout2KHR");
3856 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3857 {
3858 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3859 vkEnc->vkGetImageSubresourceLayout2KHR(gfxstream_device->internal_object, image,
3860 pSubresource, pLayout, true /* do lock */);
3861 }
3862 }
3863 #endif
3864 #ifdef VK_KHR_line_rasterization
gfxstream_vk_CmdSetLineStippleKHR(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)3865 void gfxstream_vk_CmdSetLineStippleKHR(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor,
3866 uint16_t lineStipplePattern) {
3867 MESA_TRACE_SCOPE("vkCmdSetLineStippleKHR");
3868 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3869 {
3870 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3871 gfxstream_commandBuffer->internal_object);
3872 vkEnc->vkCmdSetLineStippleKHR(gfxstream_commandBuffer->internal_object, lineStippleFactor,
3873 lineStipplePattern, true /* do lock */);
3874 }
3875 }
3876 #endif
3877 #ifdef VK_ANDROID_native_buffer
gfxstream_vk_GetSwapchainGrallocUsageANDROID(VkDevice device,VkFormat format,VkImageUsageFlags imageUsage,int * grallocUsage)3878 VkResult gfxstream_vk_GetSwapchainGrallocUsageANDROID(VkDevice device, VkFormat format,
3879 VkImageUsageFlags imageUsage,
3880 int* grallocUsage) {
3881 MESA_TRACE_SCOPE("vkGetSwapchainGrallocUsageANDROID");
3882 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
3883 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3884 {
3885 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3886 vkGetSwapchainGrallocUsageANDROID_VkResult_return =
3887 vkEnc->vkGetSwapchainGrallocUsageANDROID(gfxstream_device->internal_object, format,
3888 imageUsage, grallocUsage, true /* do lock */);
3889 }
3890 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
3891 }
gfxstream_vk_AcquireImageANDROID(VkDevice device,VkImage image,int nativeFenceFd,VkSemaphore semaphore,VkFence fence)3892 VkResult gfxstream_vk_AcquireImageANDROID(VkDevice device, VkImage image, int nativeFenceFd,
3893 VkSemaphore semaphore, VkFence fence) {
3894 MESA_TRACE_SCOPE("vkAcquireImageANDROID");
3895 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
3896 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3897 VK_FROM_HANDLE(gfxstream_vk_semaphore, gfxstream_semaphore, semaphore);
3898 VK_FROM_HANDLE(gfxstream_vk_fence, gfxstream_fence, fence);
3899 {
3900 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3901 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(
3902 gfxstream_device->internal_object, image, nativeFenceFd,
3903 gfxstream_semaphore ? gfxstream_semaphore->internal_object : VK_NULL_HANDLE,
3904 gfxstream_fence ? gfxstream_fence->internal_object : VK_NULL_HANDLE,
3905 true /* do lock */);
3906 }
3907 return vkAcquireImageANDROID_VkResult_return;
3908 }
gfxstream_vk_QueueSignalReleaseImageANDROID(VkQueue queue,uint32_t waitSemaphoreCount,const VkSemaphore * pWaitSemaphores,VkImage image,int * pNativeFenceFd)3909 VkResult gfxstream_vk_QueueSignalReleaseImageANDROID(VkQueue queue, uint32_t waitSemaphoreCount,
3910 const VkSemaphore* pWaitSemaphores,
3911 VkImage image, int* pNativeFenceFd) {
3912 MESA_TRACE_SCOPE("vkQueueSignalReleaseImageANDROID");
3913 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
3914 VK_FROM_HANDLE(gfxstream_vk_queue, gfxstream_queue, queue);
3915 {
3916 auto vkEnc =
3917 gfxstream::vk::ResourceTracker::getQueueEncoder(gfxstream_queue->internal_object);
3918 std::vector<VkSemaphore> internal_pWaitSemaphores(waitSemaphoreCount);
3919 internal_pWaitSemaphores = transformVkSemaphoreList(pWaitSemaphores, waitSemaphoreCount);
3920 pWaitSemaphores = internal_pWaitSemaphores.data();
3921 waitSemaphoreCount = internal_pWaitSemaphores.size();
3922 auto resources = gfxstream::vk::ResourceTracker::get();
3923 vkQueueSignalReleaseImageANDROID_VkResult_return =
3924 resources->on_vkQueueSignalReleaseImageANDROID(
3925 vkEnc, VK_SUCCESS, gfxstream_queue->internal_object, waitSemaphoreCount,
3926 internal_pWaitSemaphores.data(), image, pNativeFenceFd);
3927 }
3928 return vkQueueSignalReleaseImageANDROID_VkResult_return;
3929 }
gfxstream_vk_GetSwapchainGrallocUsage2ANDROID(VkDevice device,VkFormat format,VkImageUsageFlags imageUsage,VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,uint64_t * grallocConsumerUsage,uint64_t * grallocProducerUsage)3930 VkResult gfxstream_vk_GetSwapchainGrallocUsage2ANDROID(
3931 VkDevice device, VkFormat format, VkImageUsageFlags imageUsage,
3932 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, uint64_t* grallocConsumerUsage,
3933 uint64_t* grallocProducerUsage) {
3934 MESA_TRACE_SCOPE("vkGetSwapchainGrallocUsage2ANDROID");
3935 VkResult vkGetSwapchainGrallocUsage2ANDROID_VkResult_return = (VkResult)0;
3936 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
3937 {
3938 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
3939 vkGetSwapchainGrallocUsage2ANDROID_VkResult_return =
3940 vkEnc->vkGetSwapchainGrallocUsage2ANDROID(
3941 gfxstream_device->internal_object, format, imageUsage, swapchainImageUsage,
3942 grallocConsumerUsage, grallocProducerUsage, true /* do lock */);
3943 }
3944 return vkGetSwapchainGrallocUsage2ANDROID_VkResult_return;
3945 }
3946 #endif
3947 #ifdef VK_EXT_transform_feedback
gfxstream_vk_CmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes)3948 void gfxstream_vk_CmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,
3949 uint32_t firstBinding, uint32_t bindingCount,
3950 const VkBuffer* pBuffers,
3951 const VkDeviceSize* pOffsets,
3952 const VkDeviceSize* pSizes) {
3953 MESA_TRACE_SCOPE("vkCmdBindTransformFeedbackBuffersEXT");
3954 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3955 {
3956 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3957 gfxstream_commandBuffer->internal_object);
3958 std::vector<VkBuffer> internal_pBuffers(bindingCount);
3959 for (uint32_t i = 0; i < bindingCount; ++i) {
3960 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_pBuffers, pBuffers[i]);
3961 internal_pBuffers[i] = gfxstream_pBuffers->internal_object;
3962 }
3963 vkEnc->vkCmdBindTransformFeedbackBuffersEXT(
3964 gfxstream_commandBuffer->internal_object, firstBinding, bindingCount,
3965 internal_pBuffers.data(), pOffsets, pSizes, true /* do lock */);
3966 }
3967 }
gfxstream_vk_CmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)3968 void gfxstream_vk_CmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,
3969 uint32_t firstCounterBuffer,
3970 uint32_t counterBufferCount,
3971 const VkBuffer* pCounterBuffers,
3972 const VkDeviceSize* pCounterBufferOffsets) {
3973 MESA_TRACE_SCOPE("vkCmdEndTransformFeedbackEXT");
3974 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3975 {
3976 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3977 gfxstream_commandBuffer->internal_object);
3978 std::vector<VkBuffer> internal_pCounterBuffers(counterBufferCount);
3979 for (uint32_t i = 0; i < counterBufferCount; ++i) {
3980 if (pCounterBuffers) {
3981 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_pCounterBuffers, pCounterBuffers[i]);
3982 internal_pCounterBuffers[i] = gfxstream_pCounterBuffers->internal_object;
3983 }
3984 }
3985 vkEnc->vkCmdEndTransformFeedbackEXT(
3986 gfxstream_commandBuffer->internal_object, firstCounterBuffer, counterBufferCount,
3987 internal_pCounterBuffers.data(), pCounterBufferOffsets, true /* do lock */);
3988 }
3989 }
gfxstream_vk_CmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index)3990 void gfxstream_vk_CmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
3991 uint32_t query, VkQueryControlFlags flags,
3992 uint32_t index) {
3993 MESA_TRACE_SCOPE("vkCmdBeginQueryIndexedEXT");
3994 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
3995 {
3996 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
3997 gfxstream_commandBuffer->internal_object);
3998 vkEnc->vkCmdBeginQueryIndexedEXT(gfxstream_commandBuffer->internal_object, queryPool, query,
3999 flags, index, true /* do lock */);
4000 }
4001 }
gfxstream_vk_CmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index)4002 void gfxstream_vk_CmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
4003 uint32_t query, uint32_t index) {
4004 MESA_TRACE_SCOPE("vkCmdEndQueryIndexedEXT");
4005 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4006 {
4007 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4008 gfxstream_commandBuffer->internal_object);
4009 vkEnc->vkCmdEndQueryIndexedEXT(gfxstream_commandBuffer->internal_object, queryPool, query,
4010 index, true /* do lock */);
4011 }
4012 }
gfxstream_vk_CmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride)4013 void gfxstream_vk_CmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
4014 uint32_t firstInstance, VkBuffer counterBuffer,
4015 VkDeviceSize counterBufferOffset,
4016 uint32_t counterOffset, uint32_t vertexStride) {
4017 MESA_TRACE_SCOPE("vkCmdDrawIndirectByteCountEXT");
4018 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4019 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_counterBuffer, counterBuffer);
4020 {
4021 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4022 gfxstream_commandBuffer->internal_object);
4023 vkEnc->vkCmdDrawIndirectByteCountEXT(
4024 gfxstream_commandBuffer->internal_object, instanceCount, firstInstance,
4025 gfxstream_counterBuffer->internal_object, counterBufferOffset, counterOffset,
4026 vertexStride, true /* do lock */);
4027 }
4028 }
4029 #endif
4030 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
gfxstream_vk_GetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties)4031 VkResult gfxstream_vk_GetAndroidHardwareBufferPropertiesANDROID(
4032 VkDevice device, const AHardwareBuffer* buffer,
4033 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
4034 MESA_TRACE_SCOPE("vkGetAndroidHardwareBufferPropertiesANDROID");
4035 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
4036 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
4037 {
4038 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
4039 auto resources = gfxstream::vk::ResourceTracker::get();
4040 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return =
4041 resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(
4042 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, buffer, pProperties);
4043 }
4044 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
4045 }
gfxstream_vk_GetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,AHardwareBuffer ** pBuffer)4046 VkResult gfxstream_vk_GetMemoryAndroidHardwareBufferANDROID(
4047 VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
4048 AHardwareBuffer** pBuffer) {
4049 MESA_TRACE_SCOPE("vkGetMemoryAndroidHardwareBufferANDROID");
4050 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
4051 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
4052 {
4053 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
4054 auto resources = gfxstream::vk::ResourceTracker::get();
4055 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return =
4056 resources->on_vkGetMemoryAndroidHardwareBufferANDROID(
4057 vkEnc, VK_SUCCESS, gfxstream_device->internal_object, pInfo, pBuffer);
4058 }
4059 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
4060 }
4061 #endif
4062 #ifdef VK_EXT_image_drm_format_modifier
gfxstream_vk_GetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties)4063 VkResult gfxstream_vk_GetImageDrmFormatModifierPropertiesEXT(
4064 VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) {
4065 MESA_TRACE_SCOPE("vkGetImageDrmFormatModifierPropertiesEXT");
4066 VkResult vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return = (VkResult)0;
4067 VK_FROM_HANDLE(gfxstream_vk_device, gfxstream_device, device);
4068 {
4069 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
4070 vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return =
4071 vkEnc->vkGetImageDrmFormatModifierPropertiesEXT(gfxstream_device->internal_object,
4072 image, pProperties, true /* do lock */);
4073 }
4074 return vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return;
4075 }
4076 #endif
4077 #ifdef VK_EXT_tooling_info
gfxstream_vk_GetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties)4078 VkResult gfxstream_vk_GetPhysicalDeviceToolPropertiesEXT(
4079 VkPhysicalDevice physicalDevice, uint32_t* pToolCount,
4080 VkPhysicalDeviceToolProperties* pToolProperties) {
4081 MESA_TRACE_SCOPE("vkGetPhysicalDeviceToolPropertiesEXT");
4082 VkResult vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return = (VkResult)0;
4083 VK_FROM_HANDLE(gfxstream_vk_physical_device, gfxstream_physicalDevice, physicalDevice);
4084 {
4085 auto vkEnc = gfxstream::vk::ResourceTracker::getThreadLocalEncoder();
4086 vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return =
4087 vkEnc->vkGetPhysicalDeviceToolPropertiesEXT(gfxstream_physicalDevice->internal_object,
4088 pToolCount, pToolProperties,
4089 true /* do lock */);
4090 }
4091 return vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return;
4092 }
4093 #endif
4094 #ifdef VK_EXT_line_rasterization
gfxstream_vk_CmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)4095 void gfxstream_vk_CmdSetLineStippleEXT(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor,
4096 uint16_t lineStipplePattern) {
4097 MESA_TRACE_SCOPE("vkCmdSetLineStippleEXT");
4098 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4099 {
4100 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4101 gfxstream_commandBuffer->internal_object);
4102 vkEnc->vkCmdSetLineStippleEXT(gfxstream_commandBuffer->internal_object, lineStippleFactor,
4103 lineStipplePattern, true /* do lock */);
4104 }
4105 }
4106 #endif
4107 #ifdef VK_EXT_extended_dynamic_state
gfxstream_vk_CmdSetCullModeEXT(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)4108 void gfxstream_vk_CmdSetCullModeEXT(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) {
4109 MESA_TRACE_SCOPE("vkCmdSetCullModeEXT");
4110 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4111 {
4112 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4113 gfxstream_commandBuffer->internal_object);
4114 vkEnc->vkCmdSetCullModeEXT(gfxstream_commandBuffer->internal_object, cullMode,
4115 true /* do lock */);
4116 }
4117 }
gfxstream_vk_CmdSetFrontFaceEXT(VkCommandBuffer commandBuffer,VkFrontFace frontFace)4118 void gfxstream_vk_CmdSetFrontFaceEXT(VkCommandBuffer commandBuffer, VkFrontFace frontFace) {
4119 MESA_TRACE_SCOPE("vkCmdSetFrontFaceEXT");
4120 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4121 {
4122 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4123 gfxstream_commandBuffer->internal_object);
4124 vkEnc->vkCmdSetFrontFaceEXT(gfxstream_commandBuffer->internal_object, frontFace,
4125 true /* do lock */);
4126 }
4127 }
gfxstream_vk_CmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)4128 void gfxstream_vk_CmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,
4129 VkPrimitiveTopology primitiveTopology) {
4130 MESA_TRACE_SCOPE("vkCmdSetPrimitiveTopologyEXT");
4131 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4132 {
4133 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4134 gfxstream_commandBuffer->internal_object);
4135 vkEnc->vkCmdSetPrimitiveTopologyEXT(gfxstream_commandBuffer->internal_object,
4136 primitiveTopology, true /* do lock */);
4137 }
4138 }
gfxstream_vk_CmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)4139 void gfxstream_vk_CmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer, uint32_t viewportCount,
4140 const VkViewport* pViewports) {
4141 MESA_TRACE_SCOPE("vkCmdSetViewportWithCountEXT");
4142 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4143 {
4144 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4145 gfxstream_commandBuffer->internal_object);
4146 vkEnc->vkCmdSetViewportWithCountEXT(gfxstream_commandBuffer->internal_object, viewportCount,
4147 pViewports, true /* do lock */);
4148 }
4149 }
gfxstream_vk_CmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)4150 void gfxstream_vk_CmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer, uint32_t scissorCount,
4151 const VkRect2D* pScissors) {
4152 MESA_TRACE_SCOPE("vkCmdSetScissorWithCountEXT");
4153 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4154 {
4155 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4156 gfxstream_commandBuffer->internal_object);
4157 vkEnc->vkCmdSetScissorWithCountEXT(gfxstream_commandBuffer->internal_object, scissorCount,
4158 pScissors, true /* do lock */);
4159 }
4160 }
gfxstream_vk_CmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)4161 void gfxstream_vk_CmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer, uint32_t firstBinding,
4162 uint32_t bindingCount, const VkBuffer* pBuffers,
4163 const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes,
4164 const VkDeviceSize* pStrides) {
4165 MESA_TRACE_SCOPE("vkCmdBindVertexBuffers2EXT");
4166 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4167 {
4168 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4169 gfxstream_commandBuffer->internal_object);
4170 std::vector<VkBuffer> internal_pBuffers(bindingCount);
4171 for (uint32_t i = 0; i < bindingCount; ++i) {
4172 if (pBuffers) {
4173 VK_FROM_HANDLE(gfxstream_vk_buffer, gfxstream_pBuffers, pBuffers[i]);
4174 internal_pBuffers[i] = gfxstream_pBuffers->internal_object;
4175 }
4176 }
4177 vkEnc->vkCmdBindVertexBuffers2EXT(gfxstream_commandBuffer->internal_object, firstBinding,
4178 bindingCount, internal_pBuffers.data(), pOffsets, pSizes,
4179 pStrides, true /* do lock */);
4180 }
4181 }
gfxstream_vk_CmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)4182 void gfxstream_vk_CmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,
4183 VkBool32 depthTestEnable) {
4184 MESA_TRACE_SCOPE("vkCmdSetDepthTestEnableEXT");
4185 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4186 {
4187 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4188 gfxstream_commandBuffer->internal_object);
4189 vkEnc->vkCmdSetDepthTestEnableEXT(gfxstream_commandBuffer->internal_object, depthTestEnable,
4190 true /* do lock */);
4191 }
4192 }
gfxstream_vk_CmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)4193 void gfxstream_vk_CmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,
4194 VkBool32 depthWriteEnable) {
4195 MESA_TRACE_SCOPE("vkCmdSetDepthWriteEnableEXT");
4196 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4197 {
4198 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4199 gfxstream_commandBuffer->internal_object);
4200 vkEnc->vkCmdSetDepthWriteEnableEXT(gfxstream_commandBuffer->internal_object,
4201 depthWriteEnable, true /* do lock */);
4202 }
4203 }
gfxstream_vk_CmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)4204 void gfxstream_vk_CmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,
4205 VkCompareOp depthCompareOp) {
4206 MESA_TRACE_SCOPE("vkCmdSetDepthCompareOpEXT");
4207 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4208 {
4209 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4210 gfxstream_commandBuffer->internal_object);
4211 vkEnc->vkCmdSetDepthCompareOpEXT(gfxstream_commandBuffer->internal_object, depthCompareOp,
4212 true /* do lock */);
4213 }
4214 }
gfxstream_vk_CmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)4215 void gfxstream_vk_CmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,
4216 VkBool32 depthBoundsTestEnable) {
4217 MESA_TRACE_SCOPE("vkCmdSetDepthBoundsTestEnableEXT");
4218 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4219 {
4220 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4221 gfxstream_commandBuffer->internal_object);
4222 vkEnc->vkCmdSetDepthBoundsTestEnableEXT(gfxstream_commandBuffer->internal_object,
4223 depthBoundsTestEnable, true /* do lock */);
4224 }
4225 }
gfxstream_vk_CmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)4226 void gfxstream_vk_CmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,
4227 VkBool32 stencilTestEnable) {
4228 MESA_TRACE_SCOPE("vkCmdSetStencilTestEnableEXT");
4229 VK_FROM_HANDLE(gfxstream_vk_command_buffer, gfxstream_commandBuffer, commandBuffer);
4230 {
4231 auto vkEnc = gfxstream::vk::ResourceTracker::getCommandBufferEncoder(
4232 gfxstream_commandBuffer->internal_object);
4233 vkEnc->vkCmdSetStencilTestEnableEXT(gfxstream_commandBuffer->internal_object,
4234 stencilTestEnable, true /* do lock */);
4235 }
4236 }
gfxstream_vk_CmdSetStencilOpEXT(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)4237