From b78483f6673eb541c00678b4d60db9c4e02f10bf Mon Sep 17 00:00:00 2001 From: Andrew Woloszyn Date: Mon, 27 Feb 2017 14:38:57 -0500 Subject: [PATCH] Added some Vulkan documentation --- README.md | 1 + docs/vulkan.md | 183 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 docs/vulkan.md diff --git a/README.md b/README.md index 855a917b15..8c61d4cbb8 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ GAPID is a collection of tools that allows you to inspect, tweak and replay call ## Status GAPID is still in development but already can be used to debug many Android OpenGL ES and Vulkan applications. Downloadable prebuilts will be available once the project reaches beta quality. +Vulkan is still a work in progress. Current status can be found [here](docs/vulkan.md). ## Building See [Building GAPID](docs/building.md). diff --git a/docs/vulkan.md b/docs/vulkan.md new file mode 100644 index 0000000000..a3b5107303 --- /dev/null +++ b/docs/vulkan.md @@ -0,0 +1,183 @@ +# Vulkan Status + +## Trace and Replay +Vulkan is currently WIP. Many samples, and applications do work correctly, +but not all. + +## Mid-Execution Capture +Mid-Execution capture is currently in progress. Currently there is no way +exposed to start a capture at any frame other than 0, but this will +be exposed once the functionality is at parity with non mid-execution capture. + +## Current Support +The current status of support for the Vulkan API on a method by method basis +are as follows. + +| Command Name | Capture | Mid-Execution | +|-------------------------------------------------------|:-------:|:-------------:| +| vkAllocateCommandBuffers | :white_check_mark: | :white_check_mark: | +| vkCreateDevice | :white_check_mark: | :white_check_mark: | +| vkCreateInstance | :white_check_mark: | :white_check_mark: | +| vkDestroyDevice | :white_check_mark: | :white_check_mark: | +| vkDestroyInstance | :white_check_mark: | :white_check_mark: | +| vkEnumerateDeviceExtensionProperties | :white_check_mark: | :heavy_minus_sign: | +| vkEnumerateDeviceLayerProperties | :white_check_mark: | :heavy_minus_sign: | +| vkEnumerateInstanceExtensionProperties | :white_check_mark: | :heavy_minus_sign: | +| vkEnumerateInstanceLayerProperties | :white_check_mark: | :heavy_minus_sign: | +| vkEnumeratePhysicalDevices | :white_check_mark: | :heavy_minus_sign: | +| vkFreeCommandBuffers | :white_check_mark: | :white_check_mark: | +| vkGetDeviceProcAddr | :white_check_mark: | :heavy_minus_sign: | +| vkGetDeviceQueue | :white_check_mark: | :white_check_mark: | +| vkGetInstanceProcAddr | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceSparseImageFormatProperties | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceFeatures | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceFormatProperties | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceImageFormatProperties | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceMemoryProperties | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceProperties | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceQueueFamilyProperties | :white_check_mark: | :heavy_minus_sign: | +| vkAcquireNextImageKHR | :white_check_mark: | :heavy_minus_sign: | +| vkAllocateDescriptorSets | :white_check_mark: | :white_check_mark: | +| vkAllocateMemory | :white_check_mark: | :white_check_mark: | +| vkBeginCommandBuffer | :white_check_mark: | :white_check_mark: | +| vkBindBufferMemory | :white_check_mark: | :white_check_mark: | +| vkBindImageMemory | :white_check_mark: | :white_check_mark: | +| vkCmdBeginQuery | :white_check_mark: | :white_medium_square: | +| vkCmdBeginRenderPass | :white_check_mark: | :white_check_mark: | +| vkCmdBindDescriptorSets | :white_check_mark: | :white_check_mark: | +| vkCmdBindIndexBuffer | :white_check_mark: | :white_check_mark: | +| vkCmdBindPipeline | :white_check_mark: | :white_check_mark: | +| vkCmdBindVertexBuffers | :white_check_mark: | :white_check_mark: | +| vkCmdBlitImage | :white_check_mark: | :white_medium_square: | +| vkCmdClearAttachments | :white_check_mark: | :white_medium_square: | +| vkCmdClearColorImage | :white_check_mark: | :white_medium_square: | +| vkCmdClearDepthStencilImage | :white_check_mark: | :white_medium_square: | +| vkCmdCopyBuffer | :white_check_mark: | :white_check_mark: | +| vkCmdCopyBufferToImage | :white_check_mark: | :white_check_mark: | +| vkCmdCopyImage | :white_check_mark: | :white_check_mark: | +| vkCmdCopyImageToBuffer | :white_check_mark: | :white_medium_square: | +| vkCmdCopyQueryPoolResults | :white_check_mark: | :white_medium_square: | +| vkCmdDispatch | :white_check_mark: | :white_check_mark: | +| vkCmdDispatchIndirect | :white_check_mark: | :white_medium_square: | +| vkCmdDraw | :white_check_mark: | :white_check_mark: | +| vkCmdDrawIndexed | :white_check_mark: | :white_check_mark: | +| vkCmdDrawIndexedIndirect | :white_check_mark: | :white_check_mark: | +| vkCmdDrawIndirect | :white_check_mark: | :white_check_mark: | +| vkCmdEndQuery | :white_check_mark: | :white_medium_square: | +| vkCmdEndRenderPass | :white_check_mark: | :white_check_mark: | +| vkCmdExecuteCommands | :white_check_mark: | :white_medium_square: | +| vkCmdFillBuffer | :white_check_mark: | :white_medium_square: | +| vkCmdNextSubpass | :white_medium_square: | :white_medium_square: | +| vkCmdPipelineBarrier | :white_check_mark: | :white_check_mark: | +| vkCmdPushConstants | :white_check_mark: | :white_check_mark: | +| vkCmdResetEvent | :white_medium_square: | :white_medium_square: | +| vkCmdResetQueryPool | :white_check_mark: | :white_medium_square: | +| vkCmdResolveImage | :white_check_mark: | :white_medium_square: | +| vkCmdSetBlendConstants | :white_check_mark: | :white_medium_square: | +| vkCmdSetDepthBias | :white_check_mark: | :white_medium_square: | +| vkCmdSetDepthBounds | :white_medium_square: | :white_medium_square: | +| vkCmdSetEvent | :white_medium_square: | :white_medium_square: | +| vkCmdSetLineWidth | :white_check_mark: | :white_medium_square: | +| vkCmdSetScissor | :white_check_mark: | :white_check_mark: | +| vkCmdSetStencilCompareMask | :white_medium_square: | :white_medium_square: | +| vkCmdSetStencilReference | :white_medium_square: | :white_medium_square: | +| vkCmdSetStencilWriteMask | :white_medium_square: | :white_medium_square: | +| vkCmdSetViewport | :white_check_mark: | :white_check_mark: | +| vkCmdUpdateBuffer | :white_check_mark: | :white_check_mark: | +| vkCmdWaitEvents | :white_medium_square: | :white_medium_square: | +| vkCmdWriteTimestamp | :white_medium_square: | :white_medium_square: | +| vkCreateAndroidSurfaceKHR | :white_check_mark: | :white_check_mark: | +| vkCreateBuffer | :white_check_mark: | :white_check_mark: | +| vkCreateBufferView | :white_check_mark: | :white_medium_square: | +| vkCreateCommandPool | :white_check_mark: | :white_check_mark: | +| vkCreateComputePipelines | :white_check_mark: | :white_check_mark: | +| vkCreateDescriptorPool | :white_check_mark: | :white_check_mark: | +| vkCreateDescriptorSetLayout | :white_check_mark: | :white_check_mark: | +| vkCreateDisplayModeKHR | :white_medium_square: | :white_medium_square: | +| vkCreateDisplayPlaneSurfaceKHR | :white_medium_square: | :white_medium_square: | +| vkCreateEvent | :white_medium_square: | :white_medium_square: | +| vkCreateFramebuffer | :white_check_mark: | :white_check_mark: | +| vkCreateGraphicsPipelines | :white_check_mark: | :white_check_mark: | +| vkCreateImage | :white_check_mark: | :white_check_mark: | +| vkCreateImageView | :white_check_mark: | :white_check_mark: | +| vkCreateMirSurfaceKHR | :white_medium_square: | :white_medium_square: | +| vkCreatePipelineCache | :white_check_mark: | :white_check_mark: | +| vkCreatePipelineLayout | :white_check_mark: | :white_check_mark: | +| vkCreateQueryPool | :white_check_mark: | :white_medium_square: | +| vkCreateRenderPass | :white_check_mark: | :white_check_mark: | +| vkCreateSampler | :white_check_mark: | :white_check_mark: | +| vkCreateSemaphore | :white_check_mark: | :white_check_mark: | +| vkCreateShaderModule | :white_check_mark: | :white_check_mark: | +| vkCreateSharedSwapchainsKHR | :white_medium_square: | :white_medium_square: | +| vkCreateSwapchainKHR | :white_check_mark: | :white_check_mark: | +| vkCreateWaylandSurfaceKHR | :white_medium_square: | :white_medium_square: | +| vkCreateWin32SurfaceKHR | :white_check_mark: | :white_medium_square: | +| vkCreateXcbSurfaceKHR | :white_check_mark: | :white_check_mark: | +| vkCreateXlibSurfaceKHR | :white_medium_square: | :white_medium_square: | +| vkDestroyBuffer | :white_check_mark: | :white_check_mark: | +| vkDestroyBufferView | :white_check_mark: | :white_medium_square: | +| vkDestroyCommandPool | :white_check_mark: | :white_check_mark: | +| vkDestroyDescriptorPool | :white_check_mark: | :white_check_mark: | +| vkDestroyDescriptorSetLayout | :white_check_mark: | :white_check_mark: | +| vkDestroyEvent | :white_medium_square: | :white_medium_square: | +| vkDestroyFramebuffer | :white_check_mark: | :white_check_mark: | +| vkDestroyImage | :white_check_mark: | :white_check_mark: | +| vkDestroyImageView | :white_check_mark: | :white_check_mark: | +| vkDestroyPipeline | :white_check_mark: | :white_check_mark: | +| vkDestroyPipelineCache | :white_check_mark: | :white_check_mark: | +| vkDestroyPipelineLayout | :white_check_mark: | :white_check_mark: | +| vkDestroyQueryPool | :white_check_mark: | :white_medium_square: | +| vkDestroyRenderPass | :white_check_mark: | :white_check_mark: | +| vkDestroySampler | :white_check_mark: | :white_check_mark: | +| vkDestroySemaphore | :white_check_mark: | :white_check_mark: | +| vkDestroyShaderModule | :white_check_mark: | :white_check_mark: | +| vkDestroySwapchainKHR | :white_check_mark: | :white_check_mark: | +| vkDeviceWaitIdle | :white_check_mark: | :white_check_mark: | +| vkEndCommandBuffer | :white_check_mark: | :white_check_mark: | +| vkFlushMappedMemoryRanges | :white_check_mark: | :heavy_minus_sign: | +| vkFreeDescriptorSets | :white_check_mark: | :white_check_mark: | +| vkFreeMemory | :white_check_mark: | :white_check_mark: | +| vkGetBufferMemoryRequirements | :white_check_mark: | :heavy_minus_sign: | +| vkGetDeviceMemoryCommitment | :white_medium_square: | :heavy_minus_sign: | +| vkGetDisplayModePropertiesKHR | :white_medium_square: | :heavy_minus_sign: | +| vkGetDisplayPlaneCapabilitiesKHR | :white_medium_square: | :heavy_minus_sign: | +| vkGetDisplayPlaneSupportedDisplaysKHR | :white_medium_square: | :heavy_minus_sign: | +| vkGetEventStatus | :white_medium_square: | :heavy_minus_sign: | +| vkGetFenceStatus | :white_check_mark: | :heavy_minus_sign: | +| vkGetImageMemoryRequirements | :white_check_mark: | :heavy_minus_sign: | +| vkGetImageSparseMemoryRequirements | :white_medium_square: | :heavy_minus_sign: | +| vkGetImageSubresourceLayout | :white_medium_square: | :heavy_minus_sign: | +| vkGetPhysicalDeviceDisplayPlanePropertiesKHR | :white_medium_square: | :heavy_minus_sign: | +| vkGetPhysicalDeviceDisplayPropertiesKHR | :white_medium_square: | :heavy_minus_sign: | +| vkGetPhysicalDeviceMirPresentationSupportKHR | :white_medium_square: | :heavy_minus_sign: | +| vkGetPhysicalDeviceSurfaceCapabilitiesKHR | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceSurfaceFormatsKHR | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceSurfacePresentModesKHR | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceSurfaceSupportKHR | :white_check_mark: | :heavy_minus_sign: | +| vkGetPhysicalDeviceWaylandPresentationSupportKHR | :white_medium_square: | :heavy_minus_sign: | +| vkGetPhysicalDeviceWin32PresentationSupportKHR | :white_medium_square: | :heavy_minus_sign: | +| vkGetPhysicalDeviceXcbPresentationSupportKHR | :white_medium_square: | :heavy_minus_sign: | +| vkGetPhysicalDeviceXlibPresentationSupportKHR | :white_medium_square: | :heavy_minus_sign: | +| vkGetPipelineCacheData | :white_check_mark: | :heavy_minus_sign: | +| vkGetQueryPoolResults | :white_check_mark: | :heavy_minus_sign: | +| vkGetRenderAreaGranularity | :white_medium_square: | :heavy_minus_sign: | +| vkGetSwapchainImagesKHR | :white_check_mark: | :heavy_minus_sign: | +| vkInvalidateMappedMemoryRanges | :white_check_mark: | :heavy_minus_sign: | +| vkMapMemory | :white_check_mark: | :white_check_mark: | +| vkMergePipelineCaches | :white_medium_square: | :heavy_minus_sign: | +| vkQueueBindSparse | :white_medium_square: | :white_medium_square: | +| vkQueuePresentKHR | :white_check_mark: | :heavy_minus_sign: | +| vkQueueSubmit | :white_check_mark: | :white_check_mark: | +| vkQueueWaitIdle | :white_check_mark: | :heavy_minus_sign: | +| vkResetCommandBuffer | :white_check_mark: | :white_check_mark: | +| vkResetCommandPool | :white_medium_square: | :white_medium_square: | +| vkResetDescriptorPool | :white_check_mark: | :white_medium_square: | +| vkResetEvent | :white_medium_square: | :white_medium_square: | +| vkResetFences | :white_check_mark: | :white_check_mark: | +| vkSetEvent | :white_medium_square: | :heavy_minus_sign: | +| vkUnmapMemory | :white_check_mark: | :white_check_mark: | +| vkUpdateDescriptorSets | :white_check_mark: | :white_check_mark: | +| vkWaitForFences | :white_check_mark: | :heavy_minus_sign: | +| vkCreateFence | :white_check_mark: | :white_check_mark: | +| vkDestroyFence | :white_check_mark: | :white_check_mark: | +| vkDestroySurfaceKHR | :white_check_mark: | :white_check_mark: |