• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 DeviceDriver::getDeviceProcAddr (VkDevice device, const char* pName) const
8{
9    return m_vk.getDeviceProcAddr(device, pName);
10}
11
12void DeviceDriver::destroyDevice (VkDevice device, const VkAllocationCallbacks* pAllocator) const
13{
14    m_vk.destroyDevice(device, pAllocator);
15}
16
17void DeviceDriver::getDeviceQueue (VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) const
18{
19    m_vk.getDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
20}
21
22VkResult DeviceDriver::queueSubmit (VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) const
23{
24    return m_vk.queueSubmit(queue, submitCount, pSubmits, fence);
25}
26
27VkResult DeviceDriver::queueWaitIdle (VkQueue queue) const
28{
29    return m_vk.queueWaitIdle(queue);
30}
31
32VkResult DeviceDriver::deviceWaitIdle (VkDevice device) const
33{
34    return m_vk.deviceWaitIdle(device);
35}
36
37VkResult DeviceDriver::allocateMemory (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) const
38{
39    return m_vk.allocateMemory(device, pAllocateInfo, pAllocator, pMemory);
40}
41
42VkResult DeviceDriver::mapMemory (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) const
43{
44    return m_vk.mapMemory(device, memory, offset, size, flags, ppData);
45}
46
47void DeviceDriver::unmapMemory (VkDevice device, VkDeviceMemory memory) const
48{
49    m_vk.unmapMemory(device, memory);
50}
51
52VkResult DeviceDriver::flushMappedMemoryRanges (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const
53{
54    return m_vk.flushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
55}
56
57VkResult DeviceDriver::invalidateMappedMemoryRanges (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const
58{
59    return m_vk.invalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
60}
61
62void DeviceDriver::getDeviceMemoryCommitment (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const
63{
64    m_vk.getDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
65}
66
67void DeviceDriver::getBufferMemoryRequirements (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const
68{
69    m_vk.getBufferMemoryRequirements(device, buffer, pMemoryRequirements);
70}
71
72VkResult DeviceDriver::bindBufferMemory (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const
73{
74    return m_vk.bindBufferMemory(device, buffer, memory, memoryOffset);
75}
76
77void DeviceDriver::getImageMemoryRequirements (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const
78{
79    m_vk.getImageMemoryRequirements(device, image, pMemoryRequirements);
80}
81
82VkResult DeviceDriver::bindImageMemory (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const
83{
84    return m_vk.bindImageMemory(device, image, memory, memoryOffset);
85}
86
87VkResult DeviceDriver::createFence (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const
88{
89    return m_vk.createFence(device, pCreateInfo, pAllocator, pFence);
90}
91
92void DeviceDriver::destroyFence (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) const
93{
94    m_vk.destroyFence(device, fence, pAllocator);
95}
96
97VkResult DeviceDriver::resetFences (VkDevice device, uint32_t fenceCount, const VkFence* pFences) const
98{
99    return m_vk.resetFences(device, fenceCount, pFences);
100}
101
102VkResult DeviceDriver::getFenceStatus (VkDevice device, VkFence fence) const
103{
104    return m_vk.getFenceStatus(device, fence);
105}
106
107VkResult DeviceDriver::waitForFences (VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) const
108{
109    return m_vk.waitForFences(device, fenceCount, pFences, waitAll, timeout);
110}
111
112VkResult DeviceDriver::createSemaphore (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) const
113{
114    return m_vk.createSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
115}
116
117void DeviceDriver::destroySemaphore (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) const
118{
119    m_vk.destroySemaphore(device, semaphore, pAllocator);
120}
121
122VkResult DeviceDriver::createEvent (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) const
123{
124    return m_vk.createEvent(device, pCreateInfo, pAllocator, pEvent);
125}
126
127void DeviceDriver::destroyEvent (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) const
128{
129    m_vk.destroyEvent(device, event, pAllocator);
130}
131
132VkResult DeviceDriver::getEventStatus (VkDevice device, VkEvent event) const
133{
134    return m_vk.getEventStatus(device, event);
135}
136
137VkResult DeviceDriver::setEvent (VkDevice device, VkEvent event) const
138{
139    return m_vk.setEvent(device, event);
140}
141
142VkResult DeviceDriver::resetEvent (VkDevice device, VkEvent event) const
143{
144    return m_vk.resetEvent(device, event);
145}
146
147VkResult DeviceDriver::createQueryPool (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const
148{
149    return m_vk.createQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
150}
151
152VkResult DeviceDriver::getQueryPoolResults (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const
153{
154    return m_vk.getQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
155}
156
157void DeviceDriver::resetQueryPool (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const
158{
159    m_vk.resetQueryPool(device, queryPool, firstQuery, queryCount);
160}
161
162VkResult DeviceDriver::createBuffer (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const
163{
164	if( m_computeOnlyMode )
165	{
166		if ((pCreateInfo->usage & ( VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT )) !=0) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
167	}
168    return m_vk.createBuffer(device, pCreateInfo, pAllocator, pBuffer);
169}
170
171void DeviceDriver::destroyBuffer (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const
172{
173    m_vk.destroyBuffer(device, buffer, pAllocator);
174}
175
176VkResult DeviceDriver::createBufferView (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const
177{
178    return m_vk.createBufferView(device, pCreateInfo, pAllocator, pView);
179}
180
181void DeviceDriver::destroyBufferView (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) const
182{
183    m_vk.destroyBufferView(device, bufferView, pAllocator);
184}
185
186VkResult DeviceDriver::createImage (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) const
187{
188    return m_vk.createImage(device, pCreateInfo, pAllocator, pImage);
189}
190
191void DeviceDriver::destroyImage (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) const
192{
193    m_vk.destroyImage(device, image, pAllocator);
194}
195
196void DeviceDriver::getImageSubresourceLayout (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) const
197{
198    m_vk.getImageSubresourceLayout(device, image, pSubresource, pLayout);
199}
200
201VkResult DeviceDriver::createImageView (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) const
202{
203    return m_vk.createImageView(device, pCreateInfo, pAllocator, pView);
204}
205
206void DeviceDriver::destroyImageView (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) const
207{
208    m_vk.destroyImageView(device, imageView, pAllocator);
209}
210
211VkResult DeviceDriver::createPipelineCache (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) const
212{
213    return m_vk.createPipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
214}
215
216void DeviceDriver::destroyPipelineCache (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) const
217{
218    m_vk.destroyPipelineCache(device, pipelineCache, pAllocator);
219}
220
221VkResult DeviceDriver::createGraphicsPipelines (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const
222{
223    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
224    return m_vk.createGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
225}
226
227VkResult DeviceDriver::createComputePipelines (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const
228{
229	if( m_computeOnlyMode )
230	{
231		for (uint32_t i=0; i<createInfoCount; ++i)
232			if ((pCreateInfos[i].stage.stage & VK_SHADER_STAGE_ALL_GRAPHICS) != 0) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
233	}
234    return m_vk.createComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
235}
236
237void DeviceDriver::destroyPipeline (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const
238{
239    m_vk.destroyPipeline(device, pipeline, pAllocator);
240}
241
242VkResult DeviceDriver::createPipelineLayout (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const
243{
244    return m_vk.createPipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
245}
246
247void DeviceDriver::destroyPipelineLayout (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const
248{
249    m_vk.destroyPipelineLayout(device, pipelineLayout, pAllocator);
250}
251
252VkResult DeviceDriver::createSampler (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) const
253{
254    return m_vk.createSampler(device, pCreateInfo, pAllocator, pSampler);
255}
256
257void DeviceDriver::destroySampler (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) const
258{
259    m_vk.destroySampler(device, sampler, pAllocator);
260}
261
262VkResult DeviceDriver::createDescriptorSetLayout (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) const
263{
264    return m_vk.createDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
265}
266
267void DeviceDriver::destroyDescriptorSetLayout (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) const
268{
269    m_vk.destroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
270}
271
272VkResult DeviceDriver::createDescriptorPool (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) const
273{
274    return m_vk.createDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
275}
276
277VkResult DeviceDriver::resetDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) const
278{
279    return m_vk.resetDescriptorPool(device, descriptorPool, flags);
280}
281
282VkResult DeviceDriver::allocateDescriptorSets (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) const
283{
284    return m_vk.allocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
285}
286
287VkResult DeviceDriver::freeDescriptorSets (VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) const
288{
289    return m_vk.freeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
290}
291
292void DeviceDriver::updateDescriptorSets (VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) const
293{
294    m_vk.updateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
295}
296
297VkResult DeviceDriver::createFramebuffer (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) const
298{
299    return m_vk.createFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
300}
301
302void DeviceDriver::destroyFramebuffer (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) const
303{
304    m_vk.destroyFramebuffer(device, framebuffer, pAllocator);
305}
306
307VkResult DeviceDriver::createRenderPass (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const
308{
309    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
310    return m_vk.createRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
311}
312
313void DeviceDriver::destroyRenderPass (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) const
314{
315    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
316    m_vk.destroyRenderPass(device, renderPass, pAllocator);
317}
318
319void DeviceDriver::getRenderAreaGranularity (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) const
320{
321    m_vk.getRenderAreaGranularity(device, renderPass, pGranularity);
322}
323
324VkResult DeviceDriver::createCommandPool (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) const
325{
326    return m_vk.createCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
327}
328
329VkResult DeviceDriver::resetCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) const
330{
331    return m_vk.resetCommandPool(device, commandPool, flags);
332}
333
334VkResult DeviceDriver::allocateCommandBuffers (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) const
335{
336    return m_vk.allocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
337}
338
339void DeviceDriver::freeCommandBuffers (VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) const
340{
341    m_vk.freeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
342}
343
344VkResult DeviceDriver::beginCommandBuffer (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) const
345{
346    return m_vk.beginCommandBuffer(commandBuffer, pBeginInfo);
347}
348
349VkResult DeviceDriver::endCommandBuffer (VkCommandBuffer commandBuffer) const
350{
351    return m_vk.endCommandBuffer(commandBuffer);
352}
353
354VkResult DeviceDriver::resetCommandBuffer (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) const
355{
356    return m_vk.resetCommandBuffer(commandBuffer, flags);
357}
358
359void DeviceDriver::cmdBindPipeline (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const
360{
361    m_vk.cmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
362}
363
364void DeviceDriver::cmdSetViewport (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) const
365{
366    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
367    m_vk.cmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
368}
369
370void DeviceDriver::cmdSetScissor (VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) const
371{
372    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
373    m_vk.cmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
374}
375
376void DeviceDriver::cmdSetLineWidth (VkCommandBuffer commandBuffer, float lineWidth) const
377{
378    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
379    m_vk.cmdSetLineWidth(commandBuffer, lineWidth);
380}
381
382void DeviceDriver::cmdSetDepthBias (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const
383{
384    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
385    m_vk.cmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
386}
387
388void DeviceDriver::cmdSetBlendConstants (VkCommandBuffer commandBuffer, const float blendConstants[4]) const
389{
390    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
391    m_vk.cmdSetBlendConstants(commandBuffer, blendConstants);
392}
393
394void DeviceDriver::cmdSetDepthBounds (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) const
395{
396    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
397    m_vk.cmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
398}
399
400void DeviceDriver::cmdSetStencilCompareMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) const
401{
402    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
403    m_vk.cmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
404}
405
406void DeviceDriver::cmdSetStencilWriteMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) const
407{
408    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
409    m_vk.cmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
410}
411
412void DeviceDriver::cmdSetStencilReference (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) const
413{
414    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
415    m_vk.cmdSetStencilReference(commandBuffer, faceMask, reference);
416}
417
418void DeviceDriver::cmdBindDescriptorSets (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) const
419{
420    m_vk.cmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
421}
422
423void DeviceDriver::cmdBindIndexBuffer (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const
424{
425    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
426    m_vk.cmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
427}
428
429void DeviceDriver::cmdBindVertexBuffers (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const
430{
431    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
432    m_vk.cmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
433}
434
435void DeviceDriver::cmdDraw (VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) const
436{
437    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
438    m_vk.cmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
439}
440
441void DeviceDriver::cmdDrawIndexed (VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const
442{
443    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
444    m_vk.cmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
445}
446
447void DeviceDriver::cmdDrawIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const
448{
449    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
450    m_vk.cmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
451}
452
453void DeviceDriver::cmdDrawIndexedIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const
454{
455    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
456    m_vk.cmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
457}
458
459void DeviceDriver::cmdDispatch (VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const
460{
461    m_vk.cmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
462}
463
464void DeviceDriver::cmdDispatchIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const
465{
466    m_vk.cmdDispatchIndirect(commandBuffer, buffer, offset);
467}
468
469void DeviceDriver::cmdCopyBuffer (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) const
470{
471    m_vk.cmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
472}
473
474void DeviceDriver::cmdCopyImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) const
475{
476    m_vk.cmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
477}
478
479void DeviceDriver::cmdBlitImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) const
480{
481    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
482    m_vk.cmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
483}
484
485void DeviceDriver::cmdCopyBufferToImage (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) const
486{
487    m_vk.cmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
488}
489
490void DeviceDriver::cmdCopyImageToBuffer (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) const
491{
492    m_vk.cmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
493}
494
495void DeviceDriver::cmdUpdateBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) const
496{
497    m_vk.cmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
498}
499
500void DeviceDriver::cmdFillBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) const
501{
502    m_vk.cmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
503}
504
505void DeviceDriver::cmdClearColorImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) const
506{
507    m_vk.cmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
508}
509
510void DeviceDriver::cmdClearDepthStencilImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) const
511{
512    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
513    m_vk.cmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
514}
515
516void DeviceDriver::cmdClearAttachments (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) const
517{
518    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
519    m_vk.cmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
520}
521
522void DeviceDriver::cmdResolveImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) const
523{
524    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
525    m_vk.cmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
526}
527
528void DeviceDriver::cmdSetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const
529{
530    m_vk.cmdSetEvent(commandBuffer, event, stageMask);
531}
532
533void DeviceDriver::cmdResetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const
534{
535    m_vk.cmdResetEvent(commandBuffer, event, stageMask);
536}
537
538void DeviceDriver::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
539{
540    m_vk.cmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
541}
542
543void DeviceDriver::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
544{
545    m_vk.cmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
546}
547
548void DeviceDriver::cmdBeginQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) const
549{
550    m_vk.cmdBeginQuery(commandBuffer, queryPool, query, flags);
551}
552
553void DeviceDriver::cmdEndQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) const
554{
555    m_vk.cmdEndQuery(commandBuffer, queryPool, query);
556}
557
558void DeviceDriver::cmdResetQueryPool (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const
559{
560    m_vk.cmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
561}
562
563void DeviceDriver::cmdWriteTimestamp (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) const
564{
565    m_vk.cmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
566}
567
568void DeviceDriver::cmdCopyQueryPoolResults (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const
569{
570    m_vk.cmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
571}
572
573void DeviceDriver::cmdPushConstants (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues) const
574{
575    m_vk.cmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
576}
577
578void DeviceDriver::cmdBeginRenderPass (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) const
579{
580    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
581    m_vk.cmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
582}
583
584void DeviceDriver::cmdNextSubpass (VkCommandBuffer commandBuffer, VkSubpassContents contents) const
585{
586    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
587    m_vk.cmdNextSubpass(commandBuffer, contents);
588}
589
590void DeviceDriver::cmdEndRenderPass (VkCommandBuffer commandBuffer) const
591{
592    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
593    m_vk.cmdEndRenderPass(commandBuffer);
594}
595
596void DeviceDriver::cmdExecuteCommands (VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) const
597{
598    m_vk.cmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
599}
600
601VkResult DeviceDriver::createSharedSwapchainsKHR (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const
602{
603    return m_vk.createSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
604}
605
606VkResult DeviceDriver::createSwapchainKHR (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const
607{
608    return m_vk.createSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
609}
610
611VkResult DeviceDriver::getSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) const
612{
613    return m_vk.getSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
614}
615
616VkResult DeviceDriver::acquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) const
617{
618    return m_vk.acquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
619}
620
621VkResult DeviceDriver::queuePresentKHR (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const
622{
623    return m_vk.queuePresentKHR(queue, pPresentInfo);
624}
625
626VkResult DeviceDriver::getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const
627{
628    return m_vk.getMemoryFdKHR(device, pGetFdInfo, pFd);
629}
630
631VkResult DeviceDriver::getMemoryFdPropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const
632{
633    return m_vk.getMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
634}
635
636VkResult DeviceDriver::getMemorySciBufNV (VkDevice device, const VkMemoryGetSciBufInfoNV* pGetSciBufInfo, pt::NvSciBufObj* pHandle) const
637{
638    return m_vk.getMemorySciBufNV(device, pGetSciBufInfo, pHandle);
639}
640
641VkResult DeviceDriver::getSemaphoreFdKHR (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const
642{
643    return m_vk.getSemaphoreFdKHR(device, pGetFdInfo, pFd);
644}
645
646VkResult DeviceDriver::importSemaphoreFdKHR (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const
647{
648    return m_vk.importSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
649}
650
651VkResult DeviceDriver::getFenceFdKHR (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const
652{
653    return m_vk.getFenceFdKHR(device, pGetFdInfo, pFd);
654}
655
656VkResult DeviceDriver::importFenceFdKHR (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const
657{
658    return m_vk.importFenceFdKHR(device, pImportFenceFdInfo);
659}
660
661VkResult DeviceDriver::getFenceSciSyncFenceNV (VkDevice device, const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo, void* pHandle) const
662{
663    return m_vk.getFenceSciSyncFenceNV(device, pGetSciSyncHandleInfo, pHandle);
664}
665
666VkResult DeviceDriver::getFenceSciSyncObjNV (VkDevice device, const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo, void* pHandle) const
667{
668    return m_vk.getFenceSciSyncObjNV(device, pGetSciSyncHandleInfo, pHandle);
669}
670
671VkResult DeviceDriver::importFenceSciSyncFenceNV (VkDevice device, const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo) const
672{
673    return m_vk.importFenceSciSyncFenceNV(device, pImportFenceSciSyncInfo);
674}
675
676VkResult DeviceDriver::importFenceSciSyncObjNV (VkDevice device, const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo) const
677{
678    return m_vk.importFenceSciSyncObjNV(device, pImportFenceSciSyncInfo);
679}
680
681VkResult DeviceDriver::getSemaphoreSciSyncObjNV (VkDevice device, const VkSemaphoreGetSciSyncInfoNV* pGetSciSyncInfo, void* pHandle) const
682{
683    return m_vk.getSemaphoreSciSyncObjNV(device, pGetSciSyncInfo, pHandle);
684}
685
686VkResult DeviceDriver::importSemaphoreSciSyncObjNV (VkDevice device, const VkImportSemaphoreSciSyncInfoNV* pImportSemaphoreSciSyncInfo) const
687{
688    return m_vk.importSemaphoreSciSyncObjNV(device, pImportSemaphoreSciSyncInfo);
689}
690
691VkResult DeviceDriver::createSemaphoreSciSyncPoolNV (VkDevice device, const VkSemaphoreSciSyncPoolCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphoreSciSyncPoolNV* pSemaphorePool) const
692{
693    return m_vk.createSemaphoreSciSyncPoolNV(device, pCreateInfo, pAllocator, pSemaphorePool);
694}
695
696VkResult DeviceDriver::displayPowerControlEXT (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const
697{
698    return m_vk.displayPowerControlEXT(device, display, pDisplayPowerInfo);
699}
700
701VkResult DeviceDriver::registerDeviceEventEXT (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const
702{
703    return m_vk.registerDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
704}
705
706VkResult DeviceDriver::registerDisplayEventEXT (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const
707{
708    return m_vk.registerDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
709}
710
711VkResult DeviceDriver::getSwapchainCounterEXT (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue) const
712{
713    return m_vk.getSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
714}
715
716void DeviceDriver::getDeviceGroupPeerMemoryFeatures (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const
717{
718    m_vk.getDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
719}
720
721VkResult DeviceDriver::bindBufferMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const
722{
723    return m_vk.bindBufferMemory2(device, bindInfoCount, pBindInfos);
724}
725
726VkResult DeviceDriver::bindImageMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const
727{
728    return m_vk.bindImageMemory2(device, bindInfoCount, pBindInfos);
729}
730
731void DeviceDriver::cmdSetDeviceMask (VkCommandBuffer commandBuffer, uint32_t deviceMask) const
732{
733    m_vk.cmdSetDeviceMask(commandBuffer, deviceMask);
734}
735
736VkResult DeviceDriver::getDeviceGroupPresentCapabilitiesKHR (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const
737{
738    return m_vk.getDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
739}
740
741VkResult DeviceDriver::getDeviceGroupSurfacePresentModesKHR (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const
742{
743    return m_vk.getDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
744}
745
746VkResult DeviceDriver::acquireNextImage2KHR (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex) const
747{
748    return m_vk.acquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
749}
750
751void DeviceDriver::cmdDispatchBase (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const
752{
753    m_vk.cmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
754}
755
756void DeviceDriver::setHdrMetadataEXT (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const
757{
758    m_vk.setHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
759}
760
761VkResult DeviceDriver::getSwapchainStatusKHR (VkDevice device, VkSwapchainKHR swapchain) const
762{
763    return m_vk.getSwapchainStatusKHR(device, swapchain);
764}
765
766void DeviceDriver::cmdSetDiscardRectangleEXT (VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles) const
767{
768    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
769    m_vk.cmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
770}
771
772void DeviceDriver::cmdSetDiscardRectangleEnableEXT (VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable) const
773{
774    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
775    m_vk.cmdSetDiscardRectangleEnableEXT(commandBuffer, discardRectangleEnable);
776}
777
778void DeviceDriver::cmdSetDiscardRectangleModeEXT (VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode) const
779{
780    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
781    m_vk.cmdSetDiscardRectangleModeEXT(commandBuffer, discardRectangleMode);
782}
783
784void DeviceDriver::cmdSetSampleLocationsEXT (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const
785{
786    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
787    m_vk.cmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
788}
789
790void DeviceDriver::getBufferMemoryRequirements2 (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
791{
792    m_vk.getBufferMemoryRequirements2(device, pInfo, pMemoryRequirements);
793}
794
795void DeviceDriver::getImageMemoryRequirements2 (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
796{
797    m_vk.getImageMemoryRequirements2(device, pInfo, pMemoryRequirements);
798}
799
800VkResult DeviceDriver::createSamplerYcbcrConversion (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const
801{
802    return m_vk.createSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion);
803}
804
805void DeviceDriver::destroySamplerYcbcrConversion (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const
806{
807    m_vk.destroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
808}
809
810void DeviceDriver::getDeviceQueue2 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const
811{
812    m_vk.getDeviceQueue2(device, pQueueInfo, pQueue);
813}
814
815void DeviceDriver::getDescriptorSetLayoutSupport (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const
816{
817    m_vk.getDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
818}
819
820VkResult DeviceDriver::getCalibratedTimestampsKHR (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) const
821{
822    return m_vk.getCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
823}
824
825VkResult DeviceDriver::setDebugUtilsObjectNameEXT (VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo) const
826{
827    return m_vk.setDebugUtilsObjectNameEXT(device, pNameInfo);
828}
829
830VkResult DeviceDriver::setDebugUtilsObjectTagEXT (VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo) const
831{
832    return m_vk.setDebugUtilsObjectTagEXT(device, pTagInfo);
833}
834
835void DeviceDriver::queueBeginDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) const
836{
837    m_vk.queueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
838}
839
840void DeviceDriver::queueEndDebugUtilsLabelEXT (VkQueue queue) const
841{
842    m_vk.queueEndDebugUtilsLabelEXT(queue);
843}
844
845void DeviceDriver::queueInsertDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) const
846{
847    m_vk.queueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
848}
849
850void DeviceDriver::cmdBeginDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const
851{
852    m_vk.cmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
853}
854
855void DeviceDriver::cmdEndDebugUtilsLabelEXT (VkCommandBuffer commandBuffer) const
856{
857    m_vk.cmdEndDebugUtilsLabelEXT(commandBuffer);
858}
859
860void DeviceDriver::cmdInsertDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const
861{
862    m_vk.cmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
863}
864
865VkResult DeviceDriver::getMemoryHostPointerPropertiesEXT (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) const
866{
867    return m_vk.getMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
868}
869
870VkResult DeviceDriver::createRenderPass2 (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const
871{
872    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
873    return m_vk.createRenderPass2(device, pCreateInfo, pAllocator, pRenderPass);
874}
875
876void DeviceDriver::cmdBeginRenderPass2 (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) const
877{
878    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
879    m_vk.cmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
880}
881
882void DeviceDriver::cmdNextSubpass2 (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) const
883{
884    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
885    m_vk.cmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
886}
887
888void DeviceDriver::cmdEndRenderPass2 (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) const
889{
890    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
891    m_vk.cmdEndRenderPass2(commandBuffer, pSubpassEndInfo);
892}
893
894VkResult DeviceDriver::getSemaphoreCounterValue (VkDevice device, VkSemaphore semaphore, uint64_t* pValue) const
895{
896    return m_vk.getSemaphoreCounterValue(device, semaphore, pValue);
897}
898
899VkResult DeviceDriver::waitSemaphores (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) const
900{
901    return m_vk.waitSemaphores(device, pWaitInfo, timeout);
902}
903
904VkResult DeviceDriver::signalSemaphore (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) const
905{
906    return m_vk.signalSemaphore(device, pSignalInfo);
907}
908
909void DeviceDriver::cmdDrawIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const
910{
911    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
912    m_vk.cmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
913}
914
915void DeviceDriver::cmdDrawIndexedIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const
916{
917    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
918    m_vk.cmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
919}
920
921void DeviceDriver::cmdSetCheckpointNV (VkCommandBuffer commandBuffer, const void* pCheckpointMarker) const
922{
923    m_vk.cmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
924}
925
926void DeviceDriver::getQueueCheckpointDataNV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) const
927{
928    m_vk.getQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
929}
930
931VkResult DeviceDriver::acquireProfilingLockKHR (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const
932{
933    return m_vk.acquireProfilingLockKHR(device, pInfo);
934}
935
936void DeviceDriver::releaseProfilingLockKHR (VkDevice device) const
937{
938    m_vk.releaseProfilingLockKHR(device);
939}
940
941VkResult DeviceDriver::getImageDrmFormatModifierPropertiesEXT (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) const
942{
943    return m_vk.getImageDrmFormatModifierPropertiesEXT(device, image, pProperties);
944}
945
946uint64_t DeviceDriver::getBufferOpaqueCaptureAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const
947{
948    return m_vk.getBufferOpaqueCaptureAddress(device, pInfo);
949}
950
951VkDeviceAddress DeviceDriver::getBufferDeviceAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const
952{
953    return m_vk.getBufferDeviceAddress(device, pInfo);
954}
955
956uint64_t DeviceDriver::getDeviceMemoryOpaqueCaptureAddress (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) const
957{
958    return m_vk.getDeviceMemoryOpaqueCaptureAddress(device, pInfo);
959}
960
961void DeviceDriver::cmdSetLineStippleKHR (VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern) const
962{
963    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
964    m_vk.cmdSetLineStippleKHR(commandBuffer, lineStippleFactor, lineStipplePattern);
965}
966
967VkResult DeviceDriver::getFaultData (VkDevice device, VkFaultQueryBehavior faultQueryBehavior, VkBool32* pUnrecordedFaults, uint32_t* pFaultCount, VkFaultData* pFaults) const
968{
969    return m_vk.getFaultData(device, faultQueryBehavior, pUnrecordedFaults, pFaultCount, pFaults);
970}
971
972void DeviceDriver::cmdSetCullModeEXT (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const
973{
974    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
975    m_vk.cmdSetCullModeEXT(commandBuffer, cullMode);
976}
977
978void DeviceDriver::cmdSetFrontFaceEXT (VkCommandBuffer commandBuffer, VkFrontFace frontFace) const
979{
980    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
981    m_vk.cmdSetFrontFaceEXT(commandBuffer, frontFace);
982}
983
984void DeviceDriver::cmdSetPrimitiveTopologyEXT (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const
985{
986    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
987    m_vk.cmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology);
988}
989
990void DeviceDriver::cmdSetViewportWithCountEXT (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) const
991{
992    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
993    m_vk.cmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports);
994}
995
996void DeviceDriver::cmdSetScissorWithCountEXT (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors) const
997{
998    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
999    m_vk.cmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors);
1000}
1001
1002void DeviceDriver::cmdBindVertexBuffers2EXT (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const
1003{
1004    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1005    m_vk.cmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides);
1006}
1007
1008void DeviceDriver::cmdSetDepthTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const
1009{
1010    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1011    m_vk.cmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable);
1012}
1013
1014void DeviceDriver::cmdSetDepthWriteEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const
1015{
1016    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1017    m_vk.cmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable);
1018}
1019
1020void DeviceDriver::cmdSetDepthCompareOpEXT (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const
1021{
1022    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1023    m_vk.cmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp);
1024}
1025
1026void DeviceDriver::cmdSetDepthBoundsTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const
1027{
1028    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1029    m_vk.cmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable);
1030}
1031
1032void DeviceDriver::cmdSetStencilTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const
1033{
1034    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1035    m_vk.cmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable);
1036}
1037
1038void DeviceDriver::cmdSetStencilOpEXT (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const
1039{
1040    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1041    m_vk.cmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp);
1042}
1043
1044void DeviceDriver::cmdSetPatchControlPointsEXT (VkCommandBuffer commandBuffer, uint32_t patchControlPoints) const
1045{
1046    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1047    m_vk.cmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints);
1048}
1049
1050void DeviceDriver::cmdSetRasterizerDiscardEnableEXT (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) const
1051{
1052    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1053    m_vk.cmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable);
1054}
1055
1056void DeviceDriver::cmdSetDepthBiasEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) const
1057{
1058    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1059    m_vk.cmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable);
1060}
1061
1062void DeviceDriver::cmdSetLogicOpEXT (VkCommandBuffer commandBuffer, VkLogicOp logicOp) const
1063{
1064    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1065    m_vk.cmdSetLogicOpEXT(commandBuffer, logicOp);
1066}
1067
1068void DeviceDriver::cmdSetPrimitiveRestartEnableEXT (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) const
1069{
1070    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1071    m_vk.cmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable);
1072}
1073
1074void DeviceDriver::cmdCopyBuffer2KHR (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo) const
1075{
1076    m_vk.cmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo);
1077}
1078
1079void DeviceDriver::cmdCopyImage2KHR (VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo) const
1080{
1081    m_vk.cmdCopyImage2KHR(commandBuffer, pCopyImageInfo);
1082}
1083
1084void DeviceDriver::cmdBlitImage2KHR (VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo) const
1085{
1086    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1087    m_vk.cmdBlitImage2KHR(commandBuffer, pBlitImageInfo);
1088}
1089
1090void DeviceDriver::cmdCopyBufferToImage2KHR (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo) const
1091{
1092    m_vk.cmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo);
1093}
1094
1095void DeviceDriver::cmdCopyImageToBuffer2KHR (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo) const
1096{
1097    m_vk.cmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo);
1098}
1099
1100void DeviceDriver::cmdResolveImage2KHR (VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo) const
1101{
1102    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1103    m_vk.cmdResolveImage2KHR(commandBuffer, pResolveImageInfo);
1104}
1105
1106void DeviceDriver::cmdRefreshObjectsKHR (VkCommandBuffer commandBuffer, const VkRefreshObjectListKHR* pRefreshObjects) const
1107{
1108    m_vk.cmdRefreshObjectsKHR(commandBuffer, pRefreshObjects);
1109}
1110
1111void DeviceDriver::cmdSetFragmentShadingRateKHR (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const
1112{
1113    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1114    m_vk.cmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps);
1115}
1116
1117void DeviceDriver::cmdSetVertexInputEXT (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) const
1118{
1119    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1120    m_vk.cmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions);
1121}
1122
1123void DeviceDriver::cmdSetColorWriteEnableEXT (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables) const
1124{
1125    if( m_computeOnlyMode ) THROW_NOT_SUPPORTED_COMPUTE_ONLY();
1126    m_vk.cmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables);
1127}
1128
1129void DeviceDriver::cmdSetEvent2KHR (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfoKHR* pDependencyInfo) const
1130{
1131    m_vk.cmdSetEvent2KHR(commandBuffer, event, pDependencyInfo);
1132}
1133
1134void DeviceDriver::cmdResetEvent2KHR (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask) const
1135{
1136    m_vk.cmdResetEvent2KHR(commandBuffer, event, stageMask);
1137}
1138
1139void DeviceDriver::cmdWaitEvents2KHR (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfoKHR* pDependencyInfos) const
1140{
1141    m_vk.cmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos);
1142}
1143
1144void DeviceDriver::cmdPipelineBarrier2KHR (VkCommandBuffer commandBuffer, const VkDependencyInfoKHR* pDependencyInfo) const
1145{
1146    m_vk.cmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo);
1147}
1148
1149VkResult DeviceDriver::queueSubmit2KHR (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2KHR* pSubmits, VkFence fence) const
1150{
1151    return m_vk.queueSubmit2KHR(queue, submitCount, pSubmits, fence);
1152}
1153
1154void DeviceDriver::cmdWriteTimestamp2KHR (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) const
1155{
1156    m_vk.cmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query);
1157}
1158
1159void DeviceDriver::getQueueCheckpointData2NV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData) const
1160{
1161    m_vk.getQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData);
1162}
1163
1164void DeviceDriver::getCommandPoolMemoryConsumption (VkDevice device, VkCommandPool commandPool, VkCommandBuffer commandBuffer, VkCommandPoolMemoryConsumption* pConsumption) const
1165{
1166    m_vk.getCommandPoolMemoryConsumption(device, commandPool, commandBuffer, pConsumption);
1167}
1168
1169VkResult DeviceDriver::getScreenBufferPropertiesQNX (VkDevice device, const struct _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties) const
1170{
1171    return m_vk.getScreenBufferPropertiesQNX(device, buffer, pProperties);
1172}
1173