1/* WARNING: This is auto-generated file. Do not modify, since changes will 2 * be lost! Modify the generating script instead. 3 * This file was generated by /scripts/gen_framework.py 4 */ 5 6 7PFN_vkVoidFunction DeviceDriverSC::getDeviceProcAddr (VkDevice device, const char* pName) const 8{ 9 return m_vk.getDeviceProcAddr(device, pName); 10} 11 12void DeviceDriverSC::destroyDevice (VkDevice device, const VkAllocationCallbacks* pAllocator) const 13{ 14 std::lock_guard<std::mutex> lock(functionMutex); 15 if (m_normalMode) 16 m_vk.destroyDevice(device, pAllocator); 17 else 18 destroyDeviceHandler(device, pAllocator); 19} 20 21void DeviceDriverSC::getDeviceQueue (VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) const 22{ 23 std::lock_guard<std::mutex> lock(functionMutex); 24 if (m_normalMode) 25 m_vk.getDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue); 26 else 27 m_vk.getDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue); 28} 29 30VkResult DeviceDriverSC::queueSubmit (VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) const 31{ 32 if (m_normalMode) 33 return m_vk.queueSubmit(queue, submitCount, pSubmits, fence); 34 return VK_SUCCESS; 35} 36 37VkResult DeviceDriverSC::queueWaitIdle (VkQueue queue) const 38{ 39 if (m_normalMode) 40 return m_vk.queueWaitIdle(queue); 41 return VK_SUCCESS; 42} 43 44VkResult DeviceDriverSC::deviceWaitIdle (VkDevice device) const 45{ 46 if (m_normalMode) 47 return m_vk.deviceWaitIdle(device); 48 return VK_SUCCESS; 49} 50 51VkResult DeviceDriverSC::allocateMemory (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) const 52{ 53 std::lock_guard<std::mutex> lock(functionMutex); 54 if (m_normalMode) 55 return m_vk.allocateMemory(device, pAllocateInfo, pAllocator, pMemory); 56 else 57 { 58 DDSTAT_LOCK(); 59 DDSTAT_HANDLE_CREATE(deviceMemoryRequestCount,1); 60 *pMemory = Handle<HANDLE_TYPE_DEVICE_MEMORY>(m_resourceInterface->incResourceCounter()); 61 } 62 return VK_SUCCESS; 63} 64 65VkResult DeviceDriverSC::mapMemory (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) const 66{ 67 std::lock_guard<std::mutex> lock(functionMutex); 68 if (m_normalMode) 69 return m_vk.mapMemory(device, memory, offset, size, flags, ppData); 70 else 71 { 72 DDSTAT_LOCK(); 73 if(m_falseMemory.size() < (static_cast<std::size_t>(offset+size))) 74 m_falseMemory.resize(static_cast<std::size_t>(offset+size)); 75 *ppData = (void*)m_falseMemory.data(); 76 } 77 return VK_SUCCESS; 78} 79 80void DeviceDriverSC::unmapMemory (VkDevice device, VkDeviceMemory memory) const 81{ 82 if (m_normalMode) 83 m_vk.unmapMemory(device, memory); 84} 85 86VkResult DeviceDriverSC::flushMappedMemoryRanges (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const 87{ 88 if (m_normalMode) 89 return m_vk.flushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges); 90 return VK_SUCCESS; 91} 92 93VkResult DeviceDriverSC::invalidateMappedMemoryRanges (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const 94{ 95 if (m_normalMode) 96 return m_vk.invalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges); 97 return VK_SUCCESS; 98} 99 100void DeviceDriverSC::getDeviceMemoryCommitment (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const 101{ 102 if (m_normalMode) 103 m_vk.getDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes); 104} 105 106void DeviceDriverSC::getBufferMemoryRequirements (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const 107{ 108 std::lock_guard<std::mutex> lock(functionMutex); 109 if (m_normalMode) 110 m_vk.getBufferMemoryRequirements(device, buffer, pMemoryRequirements); 111 else 112 { 113 DDSTAT_LOCK(); 114 pMemoryRequirements->size = 1048576U; 115 pMemoryRequirements->alignment = 1U; 116 pMemoryRequirements->memoryTypeBits = ~0U; 117 } 118} 119 120VkResult DeviceDriverSC::bindBufferMemory (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const 121{ 122 if (m_normalMode) 123 return m_vk.bindBufferMemory(device, buffer, memory, memoryOffset); 124 return VK_SUCCESS; 125} 126 127void DeviceDriverSC::getImageMemoryRequirements (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const 128{ 129 std::lock_guard<std::mutex> lock(functionMutex); 130 if (m_normalMode) 131 m_vk.getImageMemoryRequirements(device, image, pMemoryRequirements); 132 else 133 { 134 DDSTAT_LOCK(); 135 pMemoryRequirements->size = 1048576U; 136 pMemoryRequirements->alignment = 1U; 137 pMemoryRequirements->memoryTypeBits = ~0U; 138 } 139} 140 141VkResult DeviceDriverSC::bindImageMemory (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const 142{ 143 if (m_normalMode) 144 return m_vk.bindImageMemory(device, image, memory, memoryOffset); 145 return VK_SUCCESS; 146} 147 148VkResult DeviceDriverSC::createFence (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const 149{ 150 std::lock_guard<std::mutex> lock(functionMutex); 151 if (m_normalMode) 152 return m_vk.createFence(device, pCreateInfo, pAllocator, pFence); 153 else 154 { 155 DDSTAT_LOCK(); 156 DDSTAT_HANDLE_CREATE(fenceRequestCount,1); 157 *pFence = Handle<HANDLE_TYPE_FENCE>(m_resourceInterface->incResourceCounter()); 158 } 159 return VK_SUCCESS; 160} 161 162void DeviceDriverSC::destroyFence (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) const 163{ 164 std::lock_guard<std::mutex> lock(functionMutex); 165 if (m_normalMode) 166 m_vk.destroyFence(device, fence, pAllocator); 167 else 168 { 169 DDSTAT_LOCK(); 170 DDSTAT_HANDLE_DESTROY_IF(fence,fenceRequestCount,1); 171 } 172} 173 174VkResult DeviceDriverSC::resetFences (VkDevice device, uint32_t fenceCount, const VkFence* pFences) const 175{ 176 if (m_normalMode) 177 return m_vk.resetFences(device, fenceCount, pFences); 178 return VK_SUCCESS; 179} 180 181VkResult DeviceDriverSC::getFenceStatus (VkDevice device, VkFence fence) const 182{ 183 if (m_normalMode) 184 return m_vk.getFenceStatus(device, fence); 185 return VK_SUCCESS; 186} 187 188VkResult DeviceDriverSC::waitForFences (VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) const 189{ 190 if (m_normalMode) 191 return m_vk.waitForFences(device, fenceCount, pFences, waitAll, timeout); 192 return VK_SUCCESS; 193} 194 195VkResult DeviceDriverSC::createSemaphore (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) const 196{ 197 std::lock_guard<std::mutex> lock(functionMutex); 198 if (m_normalMode) 199 return m_vk.createSemaphore(device, pCreateInfo, pAllocator, pSemaphore); 200 else 201 { 202 DDSTAT_LOCK(); 203 DDSTAT_HANDLE_CREATE(semaphoreRequestCount,1); 204 *pSemaphore = Handle<HANDLE_TYPE_SEMAPHORE>(m_resourceInterface->incResourceCounter()); 205 } 206 return VK_SUCCESS; 207} 208 209void DeviceDriverSC::destroySemaphore (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) const 210{ 211 std::lock_guard<std::mutex> lock(functionMutex); 212 if (m_normalMode) 213 m_vk.destroySemaphore(device, semaphore, pAllocator); 214 else 215 { 216 DDSTAT_LOCK(); 217 DDSTAT_HANDLE_DESTROY_IF(semaphore,semaphoreRequestCount,1); 218 } 219} 220 221VkResult DeviceDriverSC::createEvent (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) const 222{ 223 std::lock_guard<std::mutex> lock(functionMutex); 224 if (m_normalMode) 225 return m_vk.createEvent(device, pCreateInfo, pAllocator, pEvent); 226 else 227 { 228 DDSTAT_LOCK(); 229 DDSTAT_HANDLE_CREATE(eventRequestCount,1); 230 *pEvent = Handle<HANDLE_TYPE_EVENT>(m_resourceInterface->incResourceCounter()); 231 } 232 return VK_SUCCESS; 233} 234 235void DeviceDriverSC::destroyEvent (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) const 236{ 237 std::lock_guard<std::mutex> lock(functionMutex); 238 if (m_normalMode) 239 m_vk.destroyEvent(device, event, pAllocator); 240 else 241 { 242 DDSTAT_LOCK(); 243 DDSTAT_HANDLE_DESTROY_IF(event,eventRequestCount,1); 244 } 245} 246 247VkResult DeviceDriverSC::getEventStatus (VkDevice device, VkEvent event) const 248{ 249 if (m_normalMode) 250 return m_vk.getEventStatus(device, event); 251 return VK_SUCCESS; 252} 253 254VkResult DeviceDriverSC::setEvent (VkDevice device, VkEvent event) const 255{ 256 if (m_normalMode) 257 return m_vk.setEvent(device, event); 258 return VK_SUCCESS; 259} 260 261VkResult DeviceDriverSC::resetEvent (VkDevice device, VkEvent event) const 262{ 263 if (m_normalMode) 264 return m_vk.resetEvent(device, event); 265 return VK_SUCCESS; 266} 267 268VkResult DeviceDriverSC::createQueryPool (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const 269{ 270 std::lock_guard<std::mutex> lock(functionMutex); 271 if (m_normalMode) 272 return m_vk.createQueryPool(device, pCreateInfo, pAllocator, pQueryPool); 273 else 274 createQueryPoolHandler(device, pCreateInfo, pAllocator, pQueryPool); 275 return VK_SUCCESS; 276} 277 278VkResult DeviceDriverSC::getQueryPoolResults (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const 279{ 280 if (m_normalMode) 281 return m_vk.getQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags); 282 return VK_SUCCESS; 283} 284 285void DeviceDriverSC::resetQueryPool (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const 286{ 287 if (m_normalMode) 288 m_vk.resetQueryPool(device, queryPool, firstQuery, queryCount); 289} 290 291VkResult DeviceDriverSC::createBuffer (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const 292{ 293 std::lock_guard<std::mutex> lock(functionMutex); 294 if (m_normalMode) 295 return m_vk.createBuffer(device, pCreateInfo, pAllocator, pBuffer); 296 else 297 { 298 DDSTAT_LOCK(); 299 DDSTAT_HANDLE_CREATE(bufferRequestCount,1); 300 *pBuffer = Handle<HANDLE_TYPE_BUFFER>(m_resourceInterface->incResourceCounter()); 301 } 302 return VK_SUCCESS; 303} 304 305void DeviceDriverSC::destroyBuffer (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const 306{ 307 std::lock_guard<std::mutex> lock(functionMutex); 308 if (m_normalMode) 309 m_vk.destroyBuffer(device, buffer, pAllocator); 310 else 311 { 312 DDSTAT_LOCK(); 313 DDSTAT_HANDLE_DESTROY_IF(buffer,bufferRequestCount,1); 314 } 315} 316 317VkResult DeviceDriverSC::createBufferView (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const 318{ 319 std::lock_guard<std::mutex> lock(functionMutex); 320 if (m_normalMode) 321 return m_vk.createBufferView(device, pCreateInfo, pAllocator, pView); 322 else 323 { 324 DDSTAT_LOCK(); 325 DDSTAT_HANDLE_CREATE(bufferViewRequestCount,1); 326 *pView = Handle<HANDLE_TYPE_BUFFER_VIEW>(m_resourceInterface->incResourceCounter()); 327 } 328 return VK_SUCCESS; 329} 330 331void DeviceDriverSC::destroyBufferView (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) const 332{ 333 std::lock_guard<std::mutex> lock(functionMutex); 334 if (m_normalMode) 335 m_vk.destroyBufferView(device, bufferView, pAllocator); 336 else 337 { 338 DDSTAT_LOCK(); 339 DDSTAT_HANDLE_DESTROY_IF(bufferView,bufferViewRequestCount,1); 340 } 341} 342 343VkResult DeviceDriverSC::createImage (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) const 344{ 345 std::lock_guard<std::mutex> lock(functionMutex); 346 if (m_normalMode) 347 return m_vk.createImage(device, pCreateInfo, pAllocator, pImage); 348 else 349 { 350 DDSTAT_LOCK(); 351 DDSTAT_HANDLE_CREATE(imageRequestCount,1); 352 *pImage = Handle<HANDLE_TYPE_IMAGE>(m_resourceInterface->incResourceCounter()); 353 } 354 return VK_SUCCESS; 355} 356 357void DeviceDriverSC::destroyImage (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) const 358{ 359 std::lock_guard<std::mutex> lock(functionMutex); 360 if (m_normalMode) 361 m_vk.destroyImage(device, image, pAllocator); 362 else 363 { 364 DDSTAT_LOCK(); 365 DDSTAT_HANDLE_DESTROY_IF(image,imageRequestCount,1); 366 } 367} 368 369void DeviceDriverSC::getImageSubresourceLayout (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) const 370{ 371 std::lock_guard<std::mutex> lock(functionMutex); 372 if (m_normalMode) 373 m_vk.getImageSubresourceLayout(device, image, pSubresource, pLayout); 374 else 375 { 376 DDSTAT_LOCK(); 377 pLayout->offset = 0U; 378 pLayout->size = 1048576U; 379 pLayout->rowPitch = 0U; 380 pLayout->arrayPitch = 0U; 381 pLayout->depthPitch = 0U; 382 } 383} 384 385VkResult DeviceDriverSC::createImageView (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) const 386{ 387 std::lock_guard<std::mutex> lock(functionMutex); 388 if (m_normalMode) 389 return m_vk.createImageView(device, pCreateInfo, pAllocator, pView); 390 else 391 createImageViewHandler(device, pCreateInfo, pAllocator, pView); 392 return VK_SUCCESS; 393} 394 395void DeviceDriverSC::destroyImageView (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) const 396{ 397 std::lock_guard<std::mutex> lock(functionMutex); 398 if (m_normalMode) 399 m_vk.destroyImageView(device, imageView, pAllocator); 400 else 401 destroyImageViewHandler(device, imageView, pAllocator); 402} 403 404VkResult DeviceDriverSC::createPipelineCache (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) const 405{ 406 std::lock_guard<std::mutex> lock(functionMutex); 407 if (m_normalMode) 408 return m_vk.createPipelineCache(device, pCreateInfo, pAllocator, pPipelineCache); 409 else 410 { 411 DDSTAT_LOCK(); 412 DDSTAT_HANDLE_CREATE(pipelineCacheRequestCount,1); 413 *pPipelineCache = Handle<HANDLE_TYPE_PIPELINE_CACHE>(m_resourceInterface->incResourceCounter()); 414 } 415 return VK_SUCCESS; 416} 417 418void DeviceDriverSC::destroyPipelineCache (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) const 419{ 420 std::lock_guard<std::mutex> lock(functionMutex); 421 if (m_normalMode) 422 m_vk.destroyPipelineCache(device, pipelineCache, pAllocator); 423 else 424 { 425 DDSTAT_LOCK(); 426 DDSTAT_HANDLE_DESTROY_IF(pipelineCache,pipelineCacheRequestCount,1); 427 } 428} 429 430VkResult DeviceDriverSC::createGraphicsPipelines (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const 431{ 432 std::lock_guard<std::mutex> lock(functionMutex); 433 if (m_normalMode) 434 return createGraphicsPipelinesHandlerNorm(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines); 435 else 436 createGraphicsPipelinesHandlerStat(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines); 437 return VK_SUCCESS; 438} 439 440VkResult DeviceDriverSC::createComputePipelines (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const 441{ 442 std::lock_guard<std::mutex> lock(functionMutex); 443 if (m_normalMode) 444 return createComputePipelinesHandlerNorm(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines); 445 else 446 createComputePipelinesHandlerStat(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines); 447 return VK_SUCCESS; 448} 449 450void DeviceDriverSC::destroyPipeline (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const 451{ 452 std::lock_guard<std::mutex> lock(functionMutex); 453 if (m_normalMode) 454 m_vk.destroyPipeline(device, pipeline, pAllocator); 455 else 456 destroyPipelineHandler(device, pipeline, pAllocator); 457} 458 459VkResult DeviceDriverSC::createPipelineLayout (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const 460{ 461 std::lock_guard<std::mutex> lock(functionMutex); 462 if (m_normalMode) 463 return createPipelineLayoutHandlerNorm(device, pCreateInfo, pAllocator, pPipelineLayout); 464 else 465 createPipelineLayoutHandlerStat(device, pCreateInfo, pAllocator, pPipelineLayout); 466 return VK_SUCCESS; 467} 468 469void DeviceDriverSC::destroyPipelineLayout (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const 470{ 471 std::lock_guard<std::mutex> lock(functionMutex); 472 if (m_normalMode) 473 m_vk.destroyPipelineLayout(device, pipelineLayout, pAllocator); 474 else 475 { 476 DDSTAT_LOCK(); 477 DDSTAT_HANDLE_DESTROY_IF(pipelineLayout,pipelineLayoutRequestCount,1); 478 } 479} 480 481VkResult DeviceDriverSC::createSampler (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) const 482{ 483 std::lock_guard<std::mutex> lock(functionMutex); 484 if (m_normalMode) 485 return createSamplerHandlerNorm(device, pCreateInfo, pAllocator, pSampler); 486 else 487 createSamplerHandlerStat(device, pCreateInfo, pAllocator, pSampler); 488 return VK_SUCCESS; 489} 490 491void DeviceDriverSC::destroySampler (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) const 492{ 493 std::lock_guard<std::mutex> lock(functionMutex); 494 if (m_normalMode) 495 m_vk.destroySampler(device, sampler, pAllocator); 496 else 497 { 498 DDSTAT_LOCK(); 499 DDSTAT_HANDLE_DESTROY_IF(sampler,samplerRequestCount,1); 500 } 501} 502 503VkResult DeviceDriverSC::createDescriptorSetLayout (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) const 504{ 505 std::lock_guard<std::mutex> lock(functionMutex); 506 if (m_normalMode) 507 return createDescriptorSetLayoutHandlerNorm(device, pCreateInfo, pAllocator, pSetLayout); 508 else 509 createDescriptorSetLayoutHandlerStat(device, pCreateInfo, pAllocator, pSetLayout); 510 return VK_SUCCESS; 511} 512 513void DeviceDriverSC::destroyDescriptorSetLayout (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) const 514{ 515 std::lock_guard<std::mutex> lock(functionMutex); 516 if (m_normalMode) 517 m_vk.destroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator); 518 else 519 destroyDescriptorSetLayoutHandler(device, descriptorSetLayout, pAllocator); 520} 521 522VkResult DeviceDriverSC::createDescriptorPool (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) const 523{ 524 std::lock_guard<std::mutex> lock(functionMutex); 525 if (m_normalMode) 526 return m_vk.createDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool); 527 else 528 { 529 DDSTAT_LOCK(); 530 DDSTAT_HANDLE_CREATE(descriptorPoolRequestCount,1); 531 *pDescriptorPool = Handle<HANDLE_TYPE_DESCRIPTOR_POOL>(m_resourceInterface->incResourceCounter()); 532 } 533 return VK_SUCCESS; 534} 535 536VkResult DeviceDriverSC::resetDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) const 537{ 538 std::lock_guard<std::mutex> lock(functionMutex); 539 if (m_normalMode) 540 return m_vk.resetDescriptorPool(device, descriptorPool, flags); 541 else 542 resetDescriptorPoolHandlerStat(device, descriptorPool, flags); 543 return VK_SUCCESS; 544} 545 546VkResult DeviceDriverSC::allocateDescriptorSets (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) const 547{ 548 std::lock_guard<std::mutex> lock(functionMutex); 549 if (m_normalMode) 550 return m_vk.allocateDescriptorSets(device, pAllocateInfo, pDescriptorSets); 551 else 552 allocateDescriptorSetsHandlerStat(device, pAllocateInfo, pDescriptorSets); 553 return VK_SUCCESS; 554} 555 556VkResult DeviceDriverSC::freeDescriptorSets (VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) const 557{ 558 std::lock_guard<std::mutex> lock(functionMutex); 559 if (m_normalMode) 560 return m_vk.freeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets); 561 else 562 freeDescriptorSetsHandlerStat(device, descriptorPool, descriptorSetCount, pDescriptorSets); 563 return VK_SUCCESS; 564} 565 566void DeviceDriverSC::updateDescriptorSets (VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) const 567{ 568 if (m_normalMode) 569 m_vk.updateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies); 570} 571 572VkResult DeviceDriverSC::createFramebuffer (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) const 573{ 574 std::lock_guard<std::mutex> lock(functionMutex); 575 if (m_normalMode) 576 return createFramebufferHandlerNorm(device, pCreateInfo, pAllocator, pFramebuffer); 577 else 578 createFramebufferHandlerStat(device, pCreateInfo, pAllocator, pFramebuffer); 579 return VK_SUCCESS; 580} 581 582void DeviceDriverSC::destroyFramebuffer (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) const 583{ 584 std::lock_guard<std::mutex> lock(functionMutex); 585 if (m_normalMode) 586 m_vk.destroyFramebuffer(device, framebuffer, pAllocator); 587 else 588 { 589 DDSTAT_LOCK(); 590 DDSTAT_HANDLE_DESTROY_IF(framebuffer,framebufferRequestCount,1); 591 } 592} 593 594VkResult DeviceDriverSC::createRenderPass (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const 595{ 596 std::lock_guard<std::mutex> lock(functionMutex); 597 if (m_normalMode) 598 return createRenderPassHandlerNorm(device, pCreateInfo, pAllocator, pRenderPass); 599 else 600 createRenderPassHandlerStat(device, pCreateInfo, pAllocator, pRenderPass); 601 return VK_SUCCESS; 602} 603 604void DeviceDriverSC::destroyRenderPass (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) const 605{ 606 std::lock_guard<std::mutex> lock(functionMutex); 607 if (m_normalMode) 608 m_vk.destroyRenderPass(device, renderPass, pAllocator); 609 else 610 destroyRenderPassHandler(device, renderPass, pAllocator); 611} 612 613void DeviceDriverSC::getRenderAreaGranularity (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) const 614{ 615 if (m_normalMode) 616 m_vk.getRenderAreaGranularity(device, renderPass, pGranularity); 617} 618 619VkResult DeviceDriverSC::createCommandPool (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) const 620{ 621 std::lock_guard<std::mutex> lock(functionMutex); 622 if (m_normalMode) 623 return createCommandPoolHandlerNorm(device, pCreateInfo, pAllocator, pCommandPool); 624 else 625 createCommandPoolHandlerStat(device, pCreateInfo, pAllocator, pCommandPool); 626 return VK_SUCCESS; 627} 628 629VkResult DeviceDriverSC::resetCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) const 630{ 631 std::lock_guard<std::mutex> lock(functionMutex); 632 if (m_normalMode) 633 return resetCommandPoolHandlerNorm(device, commandPool, flags); 634 else 635 resetCommandPoolHandlerStat(device, commandPool, flags); 636 return VK_SUCCESS; 637} 638 639VkResult DeviceDriverSC::allocateCommandBuffers (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) const 640{ 641 std::lock_guard<std::mutex> lock(functionMutex); 642 if (m_normalMode) 643 return m_vk.allocateCommandBuffers(device, pAllocateInfo, pCommandBuffers); 644 else 645 allocateCommandBuffersHandler(device, pAllocateInfo, pCommandBuffers); 646 return VK_SUCCESS; 647} 648 649void DeviceDriverSC::freeCommandBuffers (VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) const 650{ 651 std::lock_guard<std::mutex> lock(functionMutex); 652 if (m_normalMode) 653 m_vk.freeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers); 654 else 655 freeCommandBuffersHandler(device, commandPool, commandBufferCount, pCommandBuffers); 656} 657 658VkResult DeviceDriverSC::beginCommandBuffer (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) const 659{ 660 if (m_normalMode) 661 return m_vk.beginCommandBuffer(commandBuffer, pBeginInfo); 662 return VK_SUCCESS; 663} 664 665VkResult DeviceDriverSC::endCommandBuffer (VkCommandBuffer commandBuffer) const 666{ 667 if (m_normalMode) 668 return m_vk.endCommandBuffer(commandBuffer); 669 return VK_SUCCESS; 670} 671 672VkResult DeviceDriverSC::resetCommandBuffer (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) const 673{ 674 if (m_normalMode) 675 return m_vk.resetCommandBuffer(commandBuffer, flags); 676 return VK_SUCCESS; 677} 678 679void DeviceDriverSC::cmdBindPipeline (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const 680{ 681 if (m_normalMode) 682 m_vk.cmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline); 683 else 684 increaseCommandBufferSize(commandBuffer, 0u); 685} 686 687void DeviceDriverSC::cmdSetViewport (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) const 688{ 689 if (m_normalMode) 690 m_vk.cmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports); 691 else 692 increaseCommandBufferSize(commandBuffer, 0u); 693} 694 695void DeviceDriverSC::cmdSetScissor (VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) const 696{ 697 if (m_normalMode) 698 m_vk.cmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors); 699 else 700 increaseCommandBufferSize(commandBuffer, 0u); 701} 702 703void DeviceDriverSC::cmdSetLineWidth (VkCommandBuffer commandBuffer, float lineWidth) const 704{ 705 if (m_normalMode) 706 m_vk.cmdSetLineWidth(commandBuffer, lineWidth); 707 else 708 increaseCommandBufferSize(commandBuffer, 0u); 709} 710 711void DeviceDriverSC::cmdSetDepthBias (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const 712{ 713 if (m_normalMode) 714 m_vk.cmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor); 715 else 716 increaseCommandBufferSize(commandBuffer, 0u); 717} 718 719void DeviceDriverSC::cmdSetBlendConstants (VkCommandBuffer commandBuffer, const float blendConstants[4]) const 720{ 721 if (m_normalMode) 722 m_vk.cmdSetBlendConstants(commandBuffer, blendConstants); 723 else 724 increaseCommandBufferSize(commandBuffer, 0u); 725} 726 727void DeviceDriverSC::cmdSetDepthBounds (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) const 728{ 729 if (m_normalMode) 730 m_vk.cmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds); 731 else 732 increaseCommandBufferSize(commandBuffer, 0u); 733} 734 735void DeviceDriverSC::cmdSetStencilCompareMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) const 736{ 737 if (m_normalMode) 738 m_vk.cmdSetStencilCompareMask(commandBuffer, faceMask, compareMask); 739 else 740 increaseCommandBufferSize(commandBuffer, 0u); 741} 742 743void DeviceDriverSC::cmdSetStencilWriteMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) const 744{ 745 if (m_normalMode) 746 m_vk.cmdSetStencilWriteMask(commandBuffer, faceMask, writeMask); 747 else 748 increaseCommandBufferSize(commandBuffer, 0u); 749} 750 751void DeviceDriverSC::cmdSetStencilReference (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) const 752{ 753 if (m_normalMode) 754 m_vk.cmdSetStencilReference(commandBuffer, faceMask, reference); 755 else 756 increaseCommandBufferSize(commandBuffer, 0u); 757} 758 759void DeviceDriverSC::cmdBindDescriptorSets (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) const 760{ 761 if (m_normalMode) 762 m_vk.cmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); 763 else 764 increaseCommandBufferSize(commandBuffer, 0u); 765} 766 767void DeviceDriverSC::cmdBindIndexBuffer (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const 768{ 769 if (m_normalMode) 770 m_vk.cmdBindIndexBuffer(commandBuffer, buffer, offset, indexType); 771 else 772 increaseCommandBufferSize(commandBuffer, 0u); 773} 774 775void DeviceDriverSC::cmdBindVertexBuffers (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const 776{ 777 if (m_normalMode) 778 m_vk.cmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets); 779 else 780 increaseCommandBufferSize(commandBuffer, 0u); 781} 782 783void DeviceDriverSC::cmdDraw (VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) const 784{ 785 if (m_normalMode) 786 m_vk.cmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance); 787 else 788 increaseCommandBufferSize(commandBuffer, 0u); 789} 790 791void DeviceDriverSC::cmdDrawIndexed (VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const 792{ 793 if (m_normalMode) 794 m_vk.cmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); 795 else 796 increaseCommandBufferSize(commandBuffer, 0u); 797} 798 799void DeviceDriverSC::cmdDrawIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const 800{ 801 if (m_normalMode) 802 m_vk.cmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride); 803 else 804 increaseCommandBufferSize(commandBuffer, 0u); 805} 806 807void DeviceDriverSC::cmdDrawIndexedIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const 808{ 809 if (m_normalMode) 810 m_vk.cmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride); 811 else 812 increaseCommandBufferSize(commandBuffer, 0u); 813} 814 815void DeviceDriverSC::cmdDispatch (VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const 816{ 817 if (m_normalMode) 818 m_vk.cmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ); 819 else 820 increaseCommandBufferSize(commandBuffer, 0u); 821} 822 823void DeviceDriverSC::cmdDispatchIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const 824{ 825 if (m_normalMode) 826 m_vk.cmdDispatchIndirect(commandBuffer, buffer, offset); 827 else 828 increaseCommandBufferSize(commandBuffer, 0u); 829} 830 831void DeviceDriverSC::cmdCopyBuffer (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) const 832{ 833 if (m_normalMode) 834 m_vk.cmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions); 835 else 836 increaseCommandBufferSize(commandBuffer, 0u); 837} 838 839void DeviceDriverSC::cmdCopyImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) const 840{ 841 if (m_normalMode) 842 m_vk.cmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 843 else 844 increaseCommandBufferSize(commandBuffer, 0u); 845} 846 847void DeviceDriverSC::cmdBlitImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) const 848{ 849 if (m_normalMode) 850 m_vk.cmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); 851 else 852 increaseCommandBufferSize(commandBuffer, 0u); 853} 854 855void DeviceDriverSC::cmdCopyBufferToImage (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) const 856{ 857 if (m_normalMode) 858 m_vk.cmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions); 859 else 860 increaseCommandBufferSize(commandBuffer, 0u); 861} 862 863void DeviceDriverSC::cmdCopyImageToBuffer (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) const 864{ 865 if (m_normalMode) 866 m_vk.cmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions); 867 else 868 increaseCommandBufferSize(commandBuffer, 0u); 869} 870 871void DeviceDriverSC::cmdUpdateBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) const 872{ 873 std::lock_guard<std::mutex> lock(functionMutex); 874 if (m_normalMode) 875 m_vk.cmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData); 876 else 877 increaseCommandBufferSize(commandBuffer, dataSize); 878} 879 880void DeviceDriverSC::cmdFillBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) const 881{ 882 if (m_normalMode) 883 m_vk.cmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data); 884 else 885 increaseCommandBufferSize(commandBuffer, 0u); 886} 887 888void DeviceDriverSC::cmdClearColorImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) const 889{ 890 if (m_normalMode) 891 m_vk.cmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges); 892 else 893 increaseCommandBufferSize(commandBuffer, 0u); 894} 895 896void DeviceDriverSC::cmdClearDepthStencilImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) const 897{ 898 if (m_normalMode) 899 m_vk.cmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges); 900 else 901 increaseCommandBufferSize(commandBuffer, 0u); 902} 903 904void DeviceDriverSC::cmdClearAttachments (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) const 905{ 906 if (m_normalMode) 907 m_vk.cmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects); 908 else 909 increaseCommandBufferSize(commandBuffer, 0u); 910} 911 912void DeviceDriverSC::cmdResolveImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) const 913{ 914 if (m_normalMode) 915 m_vk.cmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); 916 else 917 increaseCommandBufferSize(commandBuffer, 0u); 918} 919 920void DeviceDriverSC::cmdSetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const 921{ 922 if (m_normalMode) 923 m_vk.cmdSetEvent(commandBuffer, event, stageMask); 924 else 925 increaseCommandBufferSize(commandBuffer, 0u); 926} 927 928void DeviceDriverSC::cmdResetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const 929{ 930 if (m_normalMode) 931 m_vk.cmdResetEvent(commandBuffer, event, stageMask); 932 else 933 increaseCommandBufferSize(commandBuffer, 0u); 934} 935 936void DeviceDriverSC::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) const 937{ 938 if (m_normalMode) 939 m_vk.cmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 940 else 941 increaseCommandBufferSize(commandBuffer, 0u); 942} 943 944void DeviceDriverSC::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) const 945{ 946 if (m_normalMode) 947 m_vk.cmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); 948 else 949 increaseCommandBufferSize(commandBuffer, 0u); 950} 951 952void DeviceDriverSC::cmdBeginQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) const 953{ 954 if (m_normalMode) 955 m_vk.cmdBeginQuery(commandBuffer, queryPool, query, flags); 956 else 957 increaseCommandBufferSize(commandBuffer, 0u); 958} 959 960void DeviceDriverSC::cmdEndQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) const 961{ 962 if (m_normalMode) 963 m_vk.cmdEndQuery(commandBuffer, queryPool, query); 964 else 965 increaseCommandBufferSize(commandBuffer, 0u); 966} 967 968void DeviceDriverSC::cmdResetQueryPool (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const 969{ 970 if (m_normalMode) 971 m_vk.cmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount); 972 else 973 increaseCommandBufferSize(commandBuffer, 0u); 974} 975 976void DeviceDriverSC::cmdWriteTimestamp (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) const 977{ 978 if (m_normalMode) 979 m_vk.cmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query); 980 else 981 increaseCommandBufferSize(commandBuffer, 0u); 982} 983 984void DeviceDriverSC::cmdCopyQueryPoolResults (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const 985{ 986 if (m_normalMode) 987 m_vk.cmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); 988 else 989 increaseCommandBufferSize(commandBuffer, 0u); 990} 991 992void DeviceDriverSC::cmdPushConstants (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) const 993{ 994 if (m_normalMode) 995 m_vk.cmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues); 996 else 997 increaseCommandBufferSize(commandBuffer, 0u); 998} 999 1000void DeviceDriverSC::cmdBeginRenderPass (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) const 1001{ 1002 if (m_normalMode) 1003 m_vk.cmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents); 1004 else 1005 increaseCommandBufferSize(commandBuffer, 0u); 1006} 1007 1008void DeviceDriverSC::cmdNextSubpass (VkCommandBuffer commandBuffer, VkSubpassContents contents) const 1009{ 1010 if (m_normalMode) 1011 m_vk.cmdNextSubpass(commandBuffer, contents); 1012 else 1013 increaseCommandBufferSize(commandBuffer, 0u); 1014} 1015 1016void DeviceDriverSC::cmdEndRenderPass (VkCommandBuffer commandBuffer) const 1017{ 1018 if (m_normalMode) 1019 m_vk.cmdEndRenderPass(commandBuffer); 1020 else 1021 increaseCommandBufferSize(commandBuffer, 0u); 1022} 1023 1024void DeviceDriverSC::cmdExecuteCommands (VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) const 1025{ 1026 if (m_normalMode) 1027 m_vk.cmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers); 1028 else 1029 increaseCommandBufferSize(commandBuffer, 0u); 1030} 1031 1032VkResult DeviceDriverSC::createSharedSwapchainsKHR (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const 1033{ 1034 if (m_normalMode) 1035 return m_vk.createSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains); 1036 return VK_SUCCESS; 1037} 1038 1039VkResult DeviceDriverSC::createSwapchainKHR (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const 1040{ 1041 if (m_normalMode) 1042 return m_vk.createSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain); 1043 return VK_SUCCESS; 1044} 1045 1046VkResult DeviceDriverSC::getSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) const 1047{ 1048 if (m_normalMode) 1049 return m_vk.getSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages); 1050 return VK_SUCCESS; 1051} 1052 1053VkResult DeviceDriverSC::acquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) const 1054{ 1055 if (m_normalMode) 1056 return m_vk.acquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex); 1057 return VK_SUCCESS; 1058} 1059 1060VkResult DeviceDriverSC::queuePresentKHR (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const 1061{ 1062 if (m_normalMode) 1063 return m_vk.queuePresentKHR(queue, pPresentInfo); 1064 return VK_SUCCESS; 1065} 1066 1067VkResult DeviceDriverSC::getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const 1068{ 1069 if (m_normalMode) 1070 return m_vk.getMemoryFdKHR(device, pGetFdInfo, pFd); 1071 return VK_SUCCESS; 1072} 1073 1074VkResult DeviceDriverSC::getMemoryFdPropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const 1075{ 1076 if (m_normalMode) 1077 return m_vk.getMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties); 1078 return VK_SUCCESS; 1079} 1080 1081VkResult DeviceDriverSC::getMemorySciBufNV (VkDevice device, const VkMemoryGetSciBufInfoNV* pGetSciBufInfo, pt::NvSciBufObj* pHandle) const 1082{ 1083 if (m_normalMode) 1084 return m_vk.getMemorySciBufNV(device, pGetSciBufInfo, pHandle); 1085 return VK_SUCCESS; 1086} 1087 1088VkResult DeviceDriverSC::getSemaphoreFdKHR (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const 1089{ 1090 if (m_normalMode) 1091 return m_vk.getSemaphoreFdKHR(device, pGetFdInfo, pFd); 1092 return VK_SUCCESS; 1093} 1094 1095VkResult DeviceDriverSC::importSemaphoreFdKHR (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const 1096{ 1097 if (m_normalMode) 1098 return m_vk.importSemaphoreFdKHR(device, pImportSemaphoreFdInfo); 1099 return VK_SUCCESS; 1100} 1101 1102VkResult DeviceDriverSC::getFenceFdKHR (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const 1103{ 1104 if (m_normalMode) 1105 return m_vk.getFenceFdKHR(device, pGetFdInfo, pFd); 1106 return VK_SUCCESS; 1107} 1108 1109VkResult DeviceDriverSC::importFenceFdKHR (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const 1110{ 1111 if (m_normalMode) 1112 return m_vk.importFenceFdKHR(device, pImportFenceFdInfo); 1113 return VK_SUCCESS; 1114} 1115 1116VkResult DeviceDriverSC::getFenceSciSyncFenceNV (VkDevice device, const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo, void* pHandle) const 1117{ 1118 if (m_normalMode) 1119 return m_vk.getFenceSciSyncFenceNV(device, pGetSciSyncHandleInfo, pHandle); 1120 return VK_SUCCESS; 1121} 1122 1123VkResult DeviceDriverSC::getFenceSciSyncObjNV (VkDevice device, const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo, void* pHandle) const 1124{ 1125 if (m_normalMode) 1126 return m_vk.getFenceSciSyncObjNV(device, pGetSciSyncHandleInfo, pHandle); 1127 return VK_SUCCESS; 1128} 1129 1130VkResult DeviceDriverSC::importFenceSciSyncFenceNV (VkDevice device, const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo) const 1131{ 1132 if (m_normalMode) 1133 return m_vk.importFenceSciSyncFenceNV(device, pImportFenceSciSyncInfo); 1134 return VK_SUCCESS; 1135} 1136 1137VkResult DeviceDriverSC::importFenceSciSyncObjNV (VkDevice device, const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo) const 1138{ 1139 if (m_normalMode) 1140 return m_vk.importFenceSciSyncObjNV(device, pImportFenceSciSyncInfo); 1141 return VK_SUCCESS; 1142} 1143 1144VkResult DeviceDriverSC::getSemaphoreSciSyncObjNV (VkDevice device, const VkSemaphoreGetSciSyncInfoNV* pGetSciSyncInfo, void* pHandle) const 1145{ 1146 if (m_normalMode) 1147 return m_vk.getSemaphoreSciSyncObjNV(device, pGetSciSyncInfo, pHandle); 1148 return VK_SUCCESS; 1149} 1150 1151VkResult DeviceDriverSC::importSemaphoreSciSyncObjNV (VkDevice device, const VkImportSemaphoreSciSyncInfoNV* pImportSemaphoreSciSyncInfo) const 1152{ 1153 if (m_normalMode) 1154 return m_vk.importSemaphoreSciSyncObjNV(device, pImportSemaphoreSciSyncInfo); 1155 return VK_SUCCESS; 1156} 1157 1158VkResult DeviceDriverSC::createSemaphoreSciSyncPoolNV (VkDevice device, const VkSemaphoreSciSyncPoolCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphoreSciSyncPoolNV* pSemaphorePool) const 1159{ 1160 if (m_normalMode) 1161 return m_vk.createSemaphoreSciSyncPoolNV(device, pCreateInfo, pAllocator, pSemaphorePool); 1162 return VK_SUCCESS; 1163} 1164 1165VkResult DeviceDriverSC::displayPowerControlEXT (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const 1166{ 1167 if (m_normalMode) 1168 return m_vk.displayPowerControlEXT(device, display, pDisplayPowerInfo); 1169 return VK_SUCCESS; 1170} 1171 1172VkResult DeviceDriverSC::registerDeviceEventEXT (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const 1173{ 1174 if (m_normalMode) 1175 return m_vk.registerDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence); 1176 return VK_SUCCESS; 1177} 1178 1179VkResult DeviceDriverSC::registerDisplayEventEXT (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const 1180{ 1181 if (m_normalMode) 1182 return m_vk.registerDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence); 1183 return VK_SUCCESS; 1184} 1185 1186VkResult DeviceDriverSC::getSwapchainCounterEXT (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue) const 1187{ 1188 if (m_normalMode) 1189 return m_vk.getSwapchainCounterEXT(device, swapchain, counter, pCounterValue); 1190 return VK_SUCCESS; 1191} 1192 1193void DeviceDriverSC::getDeviceGroupPeerMemoryFeatures (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const 1194{ 1195 if (m_normalMode) 1196 m_vk.getDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures); 1197} 1198 1199VkResult DeviceDriverSC::bindBufferMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const 1200{ 1201 if (m_normalMode) 1202 return m_vk.bindBufferMemory2(device, bindInfoCount, pBindInfos); 1203 return VK_SUCCESS; 1204} 1205 1206VkResult DeviceDriverSC::bindImageMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const 1207{ 1208 if (m_normalMode) 1209 return m_vk.bindImageMemory2(device, bindInfoCount, pBindInfos); 1210 return VK_SUCCESS; 1211} 1212 1213void DeviceDriverSC::cmdSetDeviceMask (VkCommandBuffer commandBuffer, uint32_t deviceMask) const 1214{ 1215 if (m_normalMode) 1216 m_vk.cmdSetDeviceMask(commandBuffer, deviceMask); 1217 else 1218 increaseCommandBufferSize(commandBuffer, 0u); 1219} 1220 1221VkResult DeviceDriverSC::getDeviceGroupPresentCapabilitiesKHR (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const 1222{ 1223 if (m_normalMode) 1224 return m_vk.getDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities); 1225 return VK_SUCCESS; 1226} 1227 1228VkResult DeviceDriverSC::getDeviceGroupSurfacePresentModesKHR (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const 1229{ 1230 if (m_normalMode) 1231 return m_vk.getDeviceGroupSurfacePresentModesKHR(device, surface, pModes); 1232 return VK_SUCCESS; 1233} 1234 1235VkResult DeviceDriverSC::acquireNextImage2KHR (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex) const 1236{ 1237 if (m_normalMode) 1238 return m_vk.acquireNextImage2KHR(device, pAcquireInfo, pImageIndex); 1239 return VK_SUCCESS; 1240} 1241 1242void DeviceDriverSC::cmdDispatchBase (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const 1243{ 1244 if (m_normalMode) 1245 m_vk.cmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ); 1246 else 1247 increaseCommandBufferSize(commandBuffer, 0u); 1248} 1249 1250void DeviceDriverSC::setHdrMetadataEXT (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const 1251{ 1252 if (m_normalMode) 1253 m_vk.setHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata); 1254} 1255 1256VkResult DeviceDriverSC::getSwapchainStatusKHR (VkDevice device, VkSwapchainKHR swapchain) const 1257{ 1258 if (m_normalMode) 1259 return m_vk.getSwapchainStatusKHR(device, swapchain); 1260 return VK_SUCCESS; 1261} 1262 1263void DeviceDriverSC::cmdSetDiscardRectangleEXT (VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles) const 1264{ 1265 if (m_normalMode) 1266 m_vk.cmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles); 1267 else 1268 increaseCommandBufferSize(commandBuffer, 0u); 1269} 1270 1271void DeviceDriverSC::cmdSetDiscardRectangleEnableEXT (VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable) const 1272{ 1273 if (m_normalMode) 1274 m_vk.cmdSetDiscardRectangleEnableEXT(commandBuffer, discardRectangleEnable); 1275 else 1276 increaseCommandBufferSize(commandBuffer, 0u); 1277} 1278 1279void DeviceDriverSC::cmdSetDiscardRectangleModeEXT (VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode) const 1280{ 1281 if (m_normalMode) 1282 m_vk.cmdSetDiscardRectangleModeEXT(commandBuffer, discardRectangleMode); 1283 else 1284 increaseCommandBufferSize(commandBuffer, 0u); 1285} 1286 1287void DeviceDriverSC::cmdSetSampleLocationsEXT (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const 1288{ 1289 if (m_normalMode) 1290 m_vk.cmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo); 1291 else 1292 increaseCommandBufferSize(commandBuffer, 0u); 1293} 1294 1295void DeviceDriverSC::getBufferMemoryRequirements2 (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const 1296{ 1297 std::lock_guard<std::mutex> lock(functionMutex); 1298 if (m_normalMode) 1299 m_vk.getBufferMemoryRequirements2(device, pInfo, pMemoryRequirements); 1300 else 1301 { 1302 DDSTAT_LOCK(); 1303 pMemoryRequirements->memoryRequirements.size = 1048576U; 1304 pMemoryRequirements->memoryRequirements.alignment = 1U; 1305 pMemoryRequirements->memoryRequirements.memoryTypeBits = ~0U; 1306 } 1307} 1308 1309void DeviceDriverSC::getImageMemoryRequirements2 (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const 1310{ 1311 std::lock_guard<std::mutex> lock(functionMutex); 1312 if (m_normalMode) 1313 m_vk.getImageMemoryRequirements2(device, pInfo, pMemoryRequirements); 1314 else 1315 { 1316 DDSTAT_LOCK(); 1317 pMemoryRequirements->memoryRequirements.size = 1048576U; 1318 pMemoryRequirements->memoryRequirements.alignment = 1U; 1319 pMemoryRequirements->memoryRequirements.memoryTypeBits = ~0U; 1320 } 1321} 1322 1323VkResult DeviceDriverSC::createSamplerYcbcrConversion (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const 1324{ 1325 std::lock_guard<std::mutex> lock(functionMutex); 1326 if (m_normalMode) 1327 return createSamplerYcbcrConversionHandlerNorm(device, pCreateInfo, pAllocator, pYcbcrConversion); 1328 else 1329 createSamplerYcbcrConversionHandlerStat(device, pCreateInfo, pAllocator, pYcbcrConversion); 1330 return VK_SUCCESS; 1331} 1332 1333void DeviceDriverSC::destroySamplerYcbcrConversion (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const 1334{ 1335 std::lock_guard<std::mutex> lock(functionMutex); 1336 if (m_normalMode) 1337 m_vk.destroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator); 1338 else 1339 { 1340 DDSTAT_LOCK(); 1341 DDSTAT_HANDLE_DESTROY_IF(ycbcrConversion,samplerYcbcrConversionRequestCount,1); 1342 } 1343} 1344 1345void DeviceDriverSC::getDeviceQueue2 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const 1346{ 1347 if (m_normalMode) 1348 m_vk.getDeviceQueue2(device, pQueueInfo, pQueue); 1349} 1350 1351void DeviceDriverSC::getDescriptorSetLayoutSupport (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const 1352{ 1353 std::lock_guard<std::mutex> lock(functionMutex); 1354 if (m_normalMode) 1355 m_vk.getDescriptorSetLayoutSupport(device, pCreateInfo, pSupport); 1356 else 1357 getDescriptorSetLayoutSupportHandler(device, pCreateInfo, pSupport); 1358} 1359 1360VkResult DeviceDriverSC::getCalibratedTimestampsEXT (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) const 1361{ 1362 if (m_normalMode) 1363 return m_vk.getCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation); 1364 return VK_SUCCESS; 1365} 1366 1367VkResult DeviceDriverSC::setDebugUtilsObjectNameEXT (VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo) const 1368{ 1369 if (m_normalMode) 1370 return m_vk.setDebugUtilsObjectNameEXT(device, pNameInfo); 1371 return VK_SUCCESS; 1372} 1373 1374VkResult DeviceDriverSC::setDebugUtilsObjectTagEXT (VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo) const 1375{ 1376 if (m_normalMode) 1377 return m_vk.setDebugUtilsObjectTagEXT(device, pTagInfo); 1378 return VK_SUCCESS; 1379} 1380 1381void DeviceDriverSC::queueBeginDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) const 1382{ 1383 if (m_normalMode) 1384 m_vk.queueBeginDebugUtilsLabelEXT(queue, pLabelInfo); 1385} 1386 1387void DeviceDriverSC::queueEndDebugUtilsLabelEXT (VkQueue queue) const 1388{ 1389 if (m_normalMode) 1390 m_vk.queueEndDebugUtilsLabelEXT(queue); 1391} 1392 1393void DeviceDriverSC::queueInsertDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) const 1394{ 1395 if (m_normalMode) 1396 m_vk.queueInsertDebugUtilsLabelEXT(queue, pLabelInfo); 1397} 1398 1399void DeviceDriverSC::cmdBeginDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const 1400{ 1401 if (m_normalMode) 1402 m_vk.cmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo); 1403 else 1404 increaseCommandBufferSize(commandBuffer, 0u); 1405} 1406 1407void DeviceDriverSC::cmdEndDebugUtilsLabelEXT (VkCommandBuffer commandBuffer) const 1408{ 1409 if (m_normalMode) 1410 m_vk.cmdEndDebugUtilsLabelEXT(commandBuffer); 1411 else 1412 increaseCommandBufferSize(commandBuffer, 0u); 1413} 1414 1415void DeviceDriverSC::cmdInsertDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const 1416{ 1417 if (m_normalMode) 1418 m_vk.cmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo); 1419 else 1420 increaseCommandBufferSize(commandBuffer, 0u); 1421} 1422 1423VkResult DeviceDriverSC::getMemoryHostPointerPropertiesEXT (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) const 1424{ 1425 if (m_normalMode) 1426 return m_vk.getMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties); 1427 return VK_SUCCESS; 1428} 1429 1430VkResult DeviceDriverSC::createRenderPass2 (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const 1431{ 1432 std::lock_guard<std::mutex> lock(functionMutex); 1433 if (m_normalMode) 1434 return createRenderPass2HandlerNorm(device, pCreateInfo, pAllocator, pRenderPass); 1435 else 1436 createRenderPass2HandlerStat(device, pCreateInfo, pAllocator, pRenderPass); 1437 return VK_SUCCESS; 1438} 1439 1440void DeviceDriverSC::cmdBeginRenderPass2 (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) const 1441{ 1442 if (m_normalMode) 1443 m_vk.cmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo); 1444 else 1445 increaseCommandBufferSize(commandBuffer, 0u); 1446} 1447 1448void DeviceDriverSC::cmdNextSubpass2 (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) const 1449{ 1450 if (m_normalMode) 1451 m_vk.cmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo); 1452 else 1453 increaseCommandBufferSize(commandBuffer, 0u); 1454} 1455 1456void DeviceDriverSC::cmdEndRenderPass2 (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) const 1457{ 1458 if (m_normalMode) 1459 m_vk.cmdEndRenderPass2(commandBuffer, pSubpassEndInfo); 1460 else 1461 increaseCommandBufferSize(commandBuffer, 0u); 1462} 1463 1464VkResult DeviceDriverSC::getSemaphoreCounterValue (VkDevice device, VkSemaphore semaphore, uint64_t* pValue) const 1465{ 1466 if (m_normalMode) 1467 return m_vk.getSemaphoreCounterValue(device, semaphore, pValue); 1468 return VK_SUCCESS; 1469} 1470 1471VkResult DeviceDriverSC::waitSemaphores (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) const 1472{ 1473 if (m_normalMode) 1474 return m_vk.waitSemaphores(device, pWaitInfo, timeout); 1475 return VK_SUCCESS; 1476} 1477 1478VkResult DeviceDriverSC::signalSemaphore (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) const 1479{ 1480 if (m_normalMode) 1481 return m_vk.signalSemaphore(device, pSignalInfo); 1482 return VK_SUCCESS; 1483} 1484 1485void DeviceDriverSC::cmdDrawIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const 1486{ 1487 if (m_normalMode) 1488 m_vk.cmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); 1489 else 1490 increaseCommandBufferSize(commandBuffer, 0u); 1491} 1492 1493void DeviceDriverSC::cmdDrawIndexedIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const 1494{ 1495 if (m_normalMode) 1496 m_vk.cmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride); 1497 else 1498 increaseCommandBufferSize(commandBuffer, 0u); 1499} 1500 1501void DeviceDriverSC::cmdSetCheckpointNV (VkCommandBuffer commandBuffer, const void* pCheckpointMarker) const 1502{ 1503 if (m_normalMode) 1504 m_vk.cmdSetCheckpointNV(commandBuffer, pCheckpointMarker); 1505 else 1506 increaseCommandBufferSize(commandBuffer, 0u); 1507} 1508 1509void DeviceDriverSC::getQueueCheckpointDataNV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) const 1510{ 1511 if (m_normalMode) 1512 m_vk.getQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData); 1513} 1514 1515VkResult DeviceDriverSC::acquireProfilingLockKHR (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const 1516{ 1517 if (m_normalMode) 1518 return m_vk.acquireProfilingLockKHR(device, pInfo); 1519 return VK_SUCCESS; 1520} 1521 1522void DeviceDriverSC::releaseProfilingLockKHR (VkDevice device) const 1523{ 1524 if (m_normalMode) 1525 m_vk.releaseProfilingLockKHR(device); 1526} 1527 1528VkResult DeviceDriverSC::getImageDrmFormatModifierPropertiesEXT (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) const 1529{ 1530 if (m_normalMode) 1531 return m_vk.getImageDrmFormatModifierPropertiesEXT(device, image, pProperties); 1532 return VK_SUCCESS; 1533} 1534 1535uint64_t DeviceDriverSC::getBufferOpaqueCaptureAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const 1536{ 1537 if (m_normalMode) 1538 return m_vk.getBufferOpaqueCaptureAddress(device, pInfo); 1539 return 0u; 1540} 1541 1542VkDeviceAddress DeviceDriverSC::getBufferDeviceAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const 1543{ 1544 if (m_normalMode) 1545 return m_vk.getBufferDeviceAddress(device, pInfo); 1546 return 0u; 1547} 1548 1549uint64_t DeviceDriverSC::getDeviceMemoryOpaqueCaptureAddress (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) const 1550{ 1551 if (m_normalMode) 1552 return m_vk.getDeviceMemoryOpaqueCaptureAddress(device, pInfo); 1553 return 0u; 1554} 1555 1556void DeviceDriverSC::cmdSetLineStippleEXT (VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern) const 1557{ 1558 if (m_normalMode) 1559 m_vk.cmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern); 1560 else 1561 increaseCommandBufferSize(commandBuffer, 0u); 1562} 1563 1564VkResult DeviceDriverSC::getFaultData (VkDevice device, VkFaultQueryBehavior faultQueryBehavior, VkBool32* pUnrecordedFaults, uint32_t* pFaultCount, VkFaultData* pFaults) const 1565{ 1566 if (m_normalMode) 1567 return m_vk.getFaultData(device, faultQueryBehavior, pUnrecordedFaults, pFaultCount, pFaults); 1568 return VK_SUCCESS; 1569} 1570 1571void DeviceDriverSC::cmdSetCullModeEXT (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const 1572{ 1573 if (m_normalMode) 1574 m_vk.cmdSetCullModeEXT(commandBuffer, cullMode); 1575 else 1576 increaseCommandBufferSize(commandBuffer, 0u); 1577} 1578 1579void DeviceDriverSC::cmdSetFrontFaceEXT (VkCommandBuffer commandBuffer, VkFrontFace frontFace) const 1580{ 1581 if (m_normalMode) 1582 m_vk.cmdSetFrontFaceEXT(commandBuffer, frontFace); 1583 else 1584 increaseCommandBufferSize(commandBuffer, 0u); 1585} 1586 1587void DeviceDriverSC::cmdSetPrimitiveTopologyEXT (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const 1588{ 1589 if (m_normalMode) 1590 m_vk.cmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology); 1591 else 1592 increaseCommandBufferSize(commandBuffer, 0u); 1593} 1594 1595void DeviceDriverSC::cmdSetViewportWithCountEXT (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) const 1596{ 1597 if (m_normalMode) 1598 m_vk.cmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports); 1599 else 1600 increaseCommandBufferSize(commandBuffer, 0u); 1601} 1602 1603void DeviceDriverSC::cmdSetScissorWithCountEXT (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors) const 1604{ 1605 if (m_normalMode) 1606 m_vk.cmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors); 1607 else 1608 increaseCommandBufferSize(commandBuffer, 0u); 1609} 1610 1611void DeviceDriverSC::cmdBindVertexBuffers2EXT (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const 1612{ 1613 if (m_normalMode) 1614 m_vk.cmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides); 1615 else 1616 increaseCommandBufferSize(commandBuffer, 0u); 1617} 1618 1619void DeviceDriverSC::cmdSetDepthTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const 1620{ 1621 if (m_normalMode) 1622 m_vk.cmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable); 1623 else 1624 increaseCommandBufferSize(commandBuffer, 0u); 1625} 1626 1627void DeviceDriverSC::cmdSetDepthWriteEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const 1628{ 1629 if (m_normalMode) 1630 m_vk.cmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable); 1631 else 1632 increaseCommandBufferSize(commandBuffer, 0u); 1633} 1634 1635void DeviceDriverSC::cmdSetDepthCompareOpEXT (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const 1636{ 1637 if (m_normalMode) 1638 m_vk.cmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp); 1639 else 1640 increaseCommandBufferSize(commandBuffer, 0u); 1641} 1642 1643void DeviceDriverSC::cmdSetDepthBoundsTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const 1644{ 1645 if (m_normalMode) 1646 m_vk.cmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable); 1647 else 1648 increaseCommandBufferSize(commandBuffer, 0u); 1649} 1650 1651void DeviceDriverSC::cmdSetStencilTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const 1652{ 1653 if (m_normalMode) 1654 m_vk.cmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable); 1655 else 1656 increaseCommandBufferSize(commandBuffer, 0u); 1657} 1658 1659void DeviceDriverSC::cmdSetStencilOpEXT (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const 1660{ 1661 if (m_normalMode) 1662 m_vk.cmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp); 1663 else 1664 increaseCommandBufferSize(commandBuffer, 0u); 1665} 1666 1667void DeviceDriverSC::cmdSetPatchControlPointsEXT (VkCommandBuffer commandBuffer, uint32_t patchControlPoints) const 1668{ 1669 if (m_normalMode) 1670 m_vk.cmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints); 1671 else 1672 increaseCommandBufferSize(commandBuffer, 0u); 1673} 1674 1675void DeviceDriverSC::cmdSetRasterizerDiscardEnableEXT (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) const 1676{ 1677 if (m_normalMode) 1678 m_vk.cmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable); 1679 else 1680 increaseCommandBufferSize(commandBuffer, 0u); 1681} 1682 1683void DeviceDriverSC::cmdSetDepthBiasEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) const 1684{ 1685 if (m_normalMode) 1686 m_vk.cmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable); 1687 else 1688 increaseCommandBufferSize(commandBuffer, 0u); 1689} 1690 1691void DeviceDriverSC::cmdSetLogicOpEXT (VkCommandBuffer commandBuffer, VkLogicOp logicOp) const 1692{ 1693 if (m_normalMode) 1694 m_vk.cmdSetLogicOpEXT(commandBuffer, logicOp); 1695 else 1696 increaseCommandBufferSize(commandBuffer, 0u); 1697} 1698 1699void DeviceDriverSC::cmdSetPrimitiveRestartEnableEXT (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) const 1700{ 1701 if (m_normalMode) 1702 m_vk.cmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable); 1703 else 1704 increaseCommandBufferSize(commandBuffer, 0u); 1705} 1706 1707void DeviceDriverSC::cmdCopyBuffer2KHR (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo) const 1708{ 1709 if (m_normalMode) 1710 m_vk.cmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo); 1711 else 1712 increaseCommandBufferSize(commandBuffer, 0u); 1713} 1714 1715void DeviceDriverSC::cmdCopyImage2KHR (VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo) const 1716{ 1717 if (m_normalMode) 1718 m_vk.cmdCopyImage2KHR(commandBuffer, pCopyImageInfo); 1719 else 1720 increaseCommandBufferSize(commandBuffer, 0u); 1721} 1722 1723void DeviceDriverSC::cmdBlitImage2KHR (VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo) const 1724{ 1725 if (m_normalMode) 1726 m_vk.cmdBlitImage2KHR(commandBuffer, pBlitImageInfo); 1727 else 1728 increaseCommandBufferSize(commandBuffer, 0u); 1729} 1730 1731void DeviceDriverSC::cmdCopyBufferToImage2KHR (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo) const 1732{ 1733 if (m_normalMode) 1734 m_vk.cmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo); 1735 else 1736 increaseCommandBufferSize(commandBuffer, 0u); 1737} 1738 1739void DeviceDriverSC::cmdCopyImageToBuffer2KHR (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo) const 1740{ 1741 if (m_normalMode) 1742 m_vk.cmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo); 1743 else 1744 increaseCommandBufferSize(commandBuffer, 0u); 1745} 1746 1747void DeviceDriverSC::cmdResolveImage2KHR (VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo) const 1748{ 1749 if (m_normalMode) 1750 m_vk.cmdResolveImage2KHR(commandBuffer, pResolveImageInfo); 1751 else 1752 increaseCommandBufferSize(commandBuffer, 0u); 1753} 1754 1755void DeviceDriverSC::cmdRefreshObjectsKHR (VkCommandBuffer commandBuffer, const VkRefreshObjectListKHR* pRefreshObjects) const 1756{ 1757 if (m_normalMode) 1758 m_vk.cmdRefreshObjectsKHR(commandBuffer, pRefreshObjects); 1759 else 1760 increaseCommandBufferSize(commandBuffer, 0u); 1761} 1762 1763void DeviceDriverSC::cmdSetFragmentShadingRateKHR (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const 1764{ 1765 if (m_normalMode) 1766 m_vk.cmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps); 1767 else 1768 increaseCommandBufferSize(commandBuffer, 0u); 1769} 1770 1771void DeviceDriverSC::cmdSetVertexInputEXT (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) const 1772{ 1773 if (m_normalMode) 1774 m_vk.cmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions); 1775 else 1776 increaseCommandBufferSize(commandBuffer, 0u); 1777} 1778 1779void DeviceDriverSC::cmdSetColorWriteEnableEXT (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables) const 1780{ 1781 if (m_normalMode) 1782 m_vk.cmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables); 1783 else 1784 increaseCommandBufferSize(commandBuffer, 0u); 1785} 1786 1787void DeviceDriverSC::cmdSetEvent2KHR (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfoKHR* pDependencyInfo) const 1788{ 1789 if (m_normalMode) 1790 m_vk.cmdSetEvent2KHR(commandBuffer, event, pDependencyInfo); 1791 else 1792 increaseCommandBufferSize(commandBuffer, 0u); 1793} 1794 1795void DeviceDriverSC::cmdResetEvent2KHR (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask) const 1796{ 1797 if (m_normalMode) 1798 m_vk.cmdResetEvent2KHR(commandBuffer, event, stageMask); 1799 else 1800 increaseCommandBufferSize(commandBuffer, 0u); 1801} 1802 1803void DeviceDriverSC::cmdWaitEvents2KHR (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfoKHR* pDependencyInfos) const 1804{ 1805 if (m_normalMode) 1806 m_vk.cmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos); 1807 else 1808 increaseCommandBufferSize(commandBuffer, 0u); 1809} 1810 1811void DeviceDriverSC::cmdPipelineBarrier2KHR (VkCommandBuffer commandBuffer, const VkDependencyInfoKHR* pDependencyInfo) const 1812{ 1813 if (m_normalMode) 1814 m_vk.cmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo); 1815 else 1816 increaseCommandBufferSize(commandBuffer, 0u); 1817} 1818 1819VkResult DeviceDriverSC::queueSubmit2KHR (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2KHR* pSubmits, VkFence fence) const 1820{ 1821 if (m_normalMode) 1822 return m_vk.queueSubmit2KHR(queue, submitCount, pSubmits, fence); 1823 return VK_SUCCESS; 1824} 1825 1826void DeviceDriverSC::cmdWriteTimestamp2KHR (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) const 1827{ 1828 if (m_normalMode) 1829 m_vk.cmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query); 1830 else 1831 increaseCommandBufferSize(commandBuffer, 0u); 1832} 1833 1834void DeviceDriverSC::getQueueCheckpointData2NV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData) const 1835{ 1836 if (m_normalMode) 1837 m_vk.getQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData); 1838} 1839 1840void DeviceDriverSC::getCommandPoolMemoryConsumption (VkDevice device, VkCommandPool commandPool, VkCommandBuffer commandBuffer, VkCommandPoolMemoryConsumption* pConsumption) const 1841{ 1842 if (m_normalMode) 1843 m_vk.getCommandPoolMemoryConsumption(device, commandPool, commandBuffer, pConsumption); 1844} 1845 1846VkResult DeviceDriverSC::getScreenBufferPropertiesQNX (VkDevice device, const struct _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties) const 1847{ 1848 if (m_normalMode) 1849 return m_vk.getScreenBufferPropertiesQNX(device, buffer, pProperties); 1850 return VK_SUCCESS; 1851} 1852