The QVulkanDeviceFunctions class provides cross-platform access to the device level core Vulkan 1.0 API. More...
Header: | #include <QVulkanDeviceFunctions> |
qmake: | QT += gui |
Since: | Qt 5.10 |
~QVulkanDeviceFunctions() | |
int | vkAllocateCommandBuffers(int, const int *, int *) |
int | vkAllocateDescriptorSets(int, const int *, int *) |
int | vkAllocateMemory(int, const int *, const int *, int *) |
int | vkBeginCommandBuffer(int, const int *) |
int | vkBindBufferMemory(int, int, int, int) |
int | vkBindImageMemory(int, int, int, int) |
void | vkCmdBeginQuery(int commandBuffer, int queryPool, uint32_t query, int flags) |
void | vkCmdBeginRenderPass(int commandBuffer, const int *pRenderPassBegin, int contents) |
void | vkCmdBindDescriptorSets(int commandBuffer, int pipelineBindPoint, int layout, uint32_t firstSet, uint32_t descriptorSetCount, const int *pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t *pDynamicOffsets) |
void | vkCmdBindIndexBuffer(int commandBuffer, int buffer, int offset, int indexType) |
void | vkCmdBindPipeline(int commandBuffer, int pipelineBindPoint, int pipeline) |
void | vkCmdBindVertexBuffers(int commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const int *pBuffers, const int *pOffsets) |
void | vkCmdBlitImage(int commandBuffer, int srcImage, int srcImageLayout, int dstImage, int dstImageLayout, uint32_t regionCount, const int *pRegions, int filter) |
void | vkCmdClearAttachments(int commandBuffer, uint32_t attachmentCount, const int *pAttachments, uint32_t rectCount, const int *pRects) |
void | vkCmdClearColorImage(int commandBuffer, int image, int imageLayout, const int *pColor, uint32_t rangeCount, const int *pRanges) |
void | vkCmdClearDepthStencilImage(int commandBuffer, int image, int imageLayout, const int *pDepthStencil, uint32_t rangeCount, const int *pRanges) |
void | vkCmdCopyBuffer(int commandBuffer, int srcBuffer, int dstBuffer, uint32_t regionCount, const int *pRegions) |
void | vkCmdCopyBufferToImage(int commandBuffer, int srcBuffer, int dstImage, int dstImageLayout, uint32_t regionCount, const int *pRegions) |
void | vkCmdCopyImage(int commandBuffer, int srcImage, int srcImageLayout, int dstImage, int dstImageLayout, uint32_t regionCount, const int *pRegions) |
void | vkCmdCopyImageToBuffer(int commandBuffer, int srcImage, int srcImageLayout, int dstBuffer, uint32_t regionCount, const int *pRegions) |
void | vkCmdCopyQueryPoolResults(int commandBuffer, int queryPool, uint32_t firstQuery, uint32_t queryCount, int dstBuffer, int dstOffset, int stride, int flags) |
void | vkCmdDispatch(int commandBuffer, uint32_t x, uint32_t y, uint32_t z) |
void | vkCmdDispatchIndirect(int commandBuffer, int buffer, int offset) |
void | vkCmdDraw(int commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) |
void | vkCmdDrawIndexed(int commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) |
void | vkCmdDrawIndexedIndirect(int commandBuffer, int buffer, int offset, uint32_t drawCount, uint32_t stride) |
void | vkCmdDrawIndirect(int commandBuffer, int buffer, int offset, uint32_t drawCount, uint32_t stride) |
void | vkCmdEndQuery(int commandBuffer, int queryPool, uint32_t query) |
void | vkCmdEndRenderPass(int commandBuffer) |
void | vkCmdExecuteCommands(int commandBuffer, uint32_t commandBufferCount, const int *pCommandBuffers) |
void | vkCmdFillBuffer(int commandBuffer, int dstBuffer, int dstOffset, int size, uint32_t data) |
void | vkCmdNextSubpass(int commandBuffer, int contents) |
void | vkCmdPipelineBarrier(int commandBuffer, int srcStageMask, int dstStageMask, int dependencyFlags, uint32_t memoryBarrierCount, const int *pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const int *pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const int *pImageMemoryBarriers) |
void | vkCmdPushConstants(int commandBuffer, int layout, int stageFlags, uint32_t offset, uint32_t size, const void *pValues) |
void | vkCmdResetEvent(int commandBuffer, int event, int stageMask) |
void | vkCmdResetQueryPool(int commandBuffer, int queryPool, uint32_t firstQuery, uint32_t queryCount) |
void | vkCmdResolveImage(int commandBuffer, int srcImage, int srcImageLayout, int dstImage, int dstImageLayout, uint32_t regionCount, const int *pRegions) |
void | vkCmdSetBlendConstants(int commandBuffer, const float [4] blendConstants = 4) |
void | vkCmdSetDepthBias(int commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) |
void | vkCmdSetDepthBounds(int commandBuffer, float minDepthBounds, float maxDepthBounds) |
void | vkCmdSetEvent(int commandBuffer, int event, int stageMask) |
void | vkCmdSetLineWidth(int commandBuffer, float lineWidth) |
void | vkCmdSetScissor(int commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const int *pScissors) |
void | vkCmdSetStencilCompareMask(int commandBuffer, int faceMask, uint32_t compareMask) |
void | vkCmdSetStencilReference(int commandBuffer, int faceMask, uint32_t reference) |
void | vkCmdSetStencilWriteMask(int commandBuffer, int faceMask, uint32_t writeMask) |
void | vkCmdSetViewport(int commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const int *pViewports) |
void | vkCmdUpdateBuffer(int commandBuffer, int dstBuffer, int dstOffset, int dataSize, const void *pData) |
void | vkCmdWaitEvents(int commandBuffer, uint32_t eventCount, const int *pEvents, int srcStageMask, int dstStageMask, uint32_t memoryBarrierCount, const int *pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const int *pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const int *pImageMemoryBarriers) |
void | vkCmdWriteTimestamp(int commandBuffer, int pipelineStage, int queryPool, uint32_t query) |
int | vkCreateBuffer(int, const int *, const int *, int *) |
int | vkCreateBufferView(int, const int *, const int *, int *) |
int | vkCreateCommandPool(int, const int *, const int *, int *) |
int | vkCreateComputePipelines(int, int, uint32_t, const int *, const int *, int *) |
int | vkCreateDescriptorPool(int, const int *, const int *, int *) |
int | vkCreateDescriptorSetLayout(int, const int *, const int *, int *) |
int | vkCreateEvent(int, const int *, const int *, int *) |
int | vkCreateFence(int, const int *, const int *, int *) |
int | vkCreateFramebuffer(int, const int *, const int *, int *) |
int | vkCreateGraphicsPipelines(int, int, uint32_t, const int *, const int *, int *) |
int | vkCreateImage(int, const int *, const int *, int *) |
int | vkCreateImageView(int, const int *, const int *, int *) |
int | vkCreatePipelineCache(int, const int *, const int *, int *) |
int | vkCreatePipelineLayout(int, const int *, const int *, int *) |
int | vkCreateQueryPool(int, const int *, const int *, int *) |
int | vkCreateRenderPass(int, const int *, const int *, int *) |
int | vkCreateSampler(int, const int *, const int *, int *) |
int | vkCreateSemaphore(int, const int *, const int *, int *) |
int | vkCreateShaderModule(int, const int *, const int *, int *) |
void | vkDestroyBuffer(int device, int buffer, const int *pAllocator) |
void | vkDestroyBufferView(int device, int bufferView, const int *pAllocator) |
void | vkDestroyCommandPool(int device, int commandPool, const int *pAllocator) |
void | vkDestroyDescriptorPool(int device, int descriptorPool, const int *pAllocator) |
void | vkDestroyDescriptorSetLayout(int device, int descriptorSetLayout, const int *pAllocator) |
void | vkDestroyDevice(int device, const int *pAllocator) |
void | vkDestroyEvent(int device, int event, const int *pAllocator) |
void | vkDestroyFence(int device, int fence, const int *pAllocator) |
void | vkDestroyFramebuffer(int device, int framebuffer, const int *pAllocator) |
void | vkDestroyImage(int device, int image, const int *pAllocator) |
void | vkDestroyImageView(int device, int imageView, const int *pAllocator) |
void | vkDestroyPipeline(int device, int pipeline, const int *pAllocator) |
void | vkDestroyPipelineCache(int device, int pipelineCache, const int *pAllocator) |
void | vkDestroyPipelineLayout(int device, int pipelineLayout, const int *pAllocator) |
void | vkDestroyQueryPool(int device, int queryPool, const int *pAllocator) |
void | vkDestroyRenderPass(int device, int renderPass, const int *pAllocator) |
void | vkDestroySampler(int device, int sampler, const int *pAllocator) |
void | vkDestroySemaphore(int device, int semaphore, const int *pAllocator) |
void | vkDestroyShaderModule(int device, int shaderModule, const int *pAllocator) |
int | vkDeviceWaitIdle(int) |
int | vkEndCommandBuffer(int) |
int | vkFlushMappedMemoryRanges(int, uint32_t, const int *) |
void | vkFreeCommandBuffers(int device, int commandPool, uint32_t commandBufferCount, const int *pCommandBuffers) |
int | vkFreeDescriptorSets(int, int, uint32_t, const int *) |
void | vkFreeMemory(int device, int memory, const int *pAllocator) |
void | vkGetBufferMemoryRequirements(int device, int buffer, int *pMemoryRequirements) |
void | vkGetDeviceMemoryCommitment(int device, int memory, int *pCommittedMemoryInBytes) |
void | vkGetDeviceQueue(int device, uint32_t queueFamilyIndex, uint32_t queueIndex, int *pQueue) |
int | vkGetEventStatus(int, int) |
int | vkGetFenceStatus(int, int) |
void | vkGetImageMemoryRequirements(int device, int image, int *pMemoryRequirements) |
void | vkGetImageSparseMemoryRequirements(int device, int image, uint32_t *pSparseMemoryRequirementCount, int *pSparseMemoryRequirements) |
void | vkGetImageSubresourceLayout(int device, int image, const int *pSubresource, int *pLayout) |
int | vkGetPipelineCacheData(int, int, size_t *, void *) |
int | vkGetQueryPoolResults(int, int, uint32_t, uint32_t, size_t, void *, int, int) |
void | vkGetRenderAreaGranularity(int device, int renderPass, int *pGranularity) |
int | vkInvalidateMappedMemoryRanges(int, uint32_t, const int *) |
int | vkMapMemory(int, int, int, int, int, void **) |
int | vkMergePipelineCaches(int, int, uint32_t, const int *) |
int | vkQueueBindSparse(int, uint32_t, const int *, int) |
int | vkQueueSubmit(int, uint32_t, const int *, int) |
int | vkQueueWaitIdle(int) |
int | vkResetCommandBuffer(int, int) |
int | vkResetCommandPool(int, int, int) |
int | vkResetDescriptorPool(int, int, int) |
int | vkResetEvent(int, int) |
int | vkResetFences(int, uint32_t, const int *) |
int | vkSetEvent(int, int) |
void | vkUnmapMemory(int device, int memory) |
void | vkUpdateDescriptorSets(int device, uint32_t descriptorWriteCount, const int *pDescriptorWrites, uint32_t descriptorCopyCount, const int *pDescriptorCopies) |
int | vkWaitForFences(int, uint32_t, const int *, int, uint64_t) |
The QVulkanDeviceFunctions class provides cross-platform access to the device level core Vulkan 1.0 API.
Qt and Qt applications do not link to any Vulkan libraries by default. Instead, all functions are resolved dynamically at run time. Each QVulkanInstance provides a QVulkanFunctions object retrievable via QVulkanInstance::functions(). This does not contain device level functions in order to avoid the potential overhead of an internal dispatching. Instead, functions that rely on a device, or a dispatchable child object of a device, are exposed via QVulkanDeviceFunctions and QVulkanInstance::deviceFunctions(). QVulkanFunctions and QVulkanDeviceFunctions together provides access to the full core Vulkan API, excluding any extensions.
Note: QVulkanDeviceFunctions instances cannot be constructed directly.
The typical usage is the following:
void Window::render() { QVulkanInstance *inst = vulkanInstance(); QVulkanDeviceFunctions *df = inst->deviceFunctions(device); VkResult err = df->vkAllocateCommandBuffers(device, &cmdBufInfo, &cmdBuf); ... }
The QVulkanDeviceFunctions object specific to the provided VkDevice is created when QVulkanInstance::deviceFunctions() is first called with the device in question. The object is then cached internally.
To access additional functions, applications can use QVulkanInstance::getInstanceProcAddr() and vkGetDeviceProcAddr(). Applications can also decide to link to a Vulkan library directly, as many implementations export function symbols for the core commands. See the man page for vkGetInstanceProcAddr for more information.
See also QVulkanInstance, QVulkanFunctions, QWindow::setVulkanInstance(), and QWindow::setSurfaceType().
Destroys the instance of QVulkanDeviceFunctions.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5/qvulkandevicefunctions.html