| /* |
| * Copyright 2015, The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| * THIS FILE WAS GENERATED BY apic. DO NOT EDIT. |
| */ |
| |
| |
| #ifndef GAPII_VULKAN_SPY_H |
| #define GAPII_VULKAN_SPY_H |
| |
| #include "vulkan_imports.h" |
| #include "vulkan_types.h" |
| |
| #include "gles_spy.h" |
| #include "call_observer.h" |
| |
| #define __STDC_FORMAT_MACROS |
| #include <inttypes.h> |
| |
| namespace gapii { |
| |
| class VulkanSpy : public virtual SpyBase { |
| public: |
| inline void init(); |
| |
| inline const VulkanImports& imports() const; |
| |
| template<typename Payload, typename Func> |
| void addCmd(CallObserver* observer, VkCommandBuffer cmdBuf, Payload payload, Func func); |
| void execCommands(CallObserver* observer, VkCommandBuffer cmdBuf); |
| bool hasDynamicProperty(CallObserver* observer, VkPipelineDynamicStateCreateInfo* info, uint32_t state); |
| void mapMemory(CallObserver* observer, void** mem, Slice<uint8_t> slice); |
| void resetCmd(CallObserver* observer, VkCommandBuffer cmdBuf); |
| void unmapMemory(CallObserver* observer, Slice<uint8_t> slice); |
| void validate(CallObserver* observer, const char* layerName, bool condition, const char* message); |
| std::shared_ptr<SurfaceObject> subCreateAndroidSurfaceObject(CallObserver* observer, const std::function<void()>& call, VkAndroidSurfaceCreateInfoKHR* data); |
| std::shared_ptr<SurfaceObject> subCreateXCBSurfaceObject(CallObserver* observer, const std::function<void()>& call, VkXcbSurfaceCreateInfoKHR* data); |
| void subQueryExtensionProperties(CallObserver* observer, const std::function<void()>& call, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); |
| void subQueryLayerProperties(CallObserver* observer, const std::function<void()>& call, uint32_t* pPropertyCount, VkLayerProperties* pProperties); |
| bool subIsMemoryCoherent(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<DeviceMemoryObject> memory); |
| void subReadMemoryIfCoherent(CallObserver* observer, const std::function<void()>& call, std::shared_ptr<DeviceMemoryObject> memory, VkDeviceSize offset, VkDeviceSize numBytes); |
| uint32_t subRoundUpTo(CallObserver* observer, const std::function<void()>& call, uint32_t dividend, uint32_t divisor); |
| void subDoCmdBindPipeline(CallObserver* observer, const std::function<void()>& call, CmdBindPipeline args); |
| void subDoCmdBindIndexBuffer(CallObserver* observer, const std::function<void()>& call, BoundIndexBuffer buffer); |
| void subDoCmdBindVertexBuffers(CallObserver* observer, const std::function<void()>& call, CmdBindBuffer bind); |
| void subDoCmdBindBuffers(CallObserver* observer, const std::function<void()>& call, CmdBindBuffer bind); |
| bool subAreAnyVertexBuffersCoherent(CallObserver* observer, const std::function<void()>& call); |
| void subReadCoherentVertexBuffers(CallObserver* observer, const std::function<void()>& call, uint32_t firstVertex, uint32_t firstInstance, uint32_t vertexCount, uint32_t instanceCount); |
| void subDoCmdDraw(CallObserver* observer, const std::function<void()>& call, CmdDraw draw); |
| void subDoCmdDrawIndexed(CallObserver* observer, const std::function<void()>& call, CmdDrawIndexed draw); |
| void subDoCmdCopyBuffer(CallObserver* observer, const std::function<void()>& call, CmdCopyBuffer buffer); |
| void subDoCmdCopyImage(CallObserver* observer, const std::function<void()>& call, CmdCopyImage args); |
| ElementAndTexelBlockSize subGetElementAndTexelBlockSize(CallObserver* observer, const std::function<void()>& call, uint32_t format); |
| RowLengthAndImageHeight subGetRowLengthAndImageHeight(CallObserver* observer, const std::function<void()>& call, VkBufferImageCopy region); |
| void subDoCmdCopyBufferToImage(CallObserver* observer, const std::function<void()>& call, CmdCopyBufferToImage args); |
| void subDoCmdPipelineBarrier(CallObserver* observer, const std::function<void()>& call, CmdPipelineBarrier args); |
| void subDoCmdBeginRenderPass(CallObserver* observer, const std::function<void()>& call, CmdBeginRenderPass args); |
| uint32_t subReadVkApplicationInfo(CallObserver* observer, const std::function<void()>& call, VkApplicationInfo* applicationInfo); |
| std::shared_ptr<InstanceObject> subCreateInstanceObject(CallObserver* observer, const std::function<void()>& call, VkInstanceCreateInfo* createInfo); |
| void subReadVkDeviceQueueCreateInfo(CallObserver* observer, const std::function<void()>& call, VkDeviceQueueCreateInfo info); |
| std::shared_ptr<DeviceObject> subCreateDeviceObject(CallObserver* observer, const std::function<void()>& call, VkDeviceCreateInfo* data); |
| VkQueueFlags subAddQueueFlag(CallObserver* observer, const std::function<void()>& call, VkQueueFlags flags, uint32_t bit); |
| |
| uint32_t vkCreateAndroidSurfaceKHR(CallObserver* observer, VkInstance instance, VkAndroidSurfaceCreateInfoKHR* pCreateInfo, VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); |
| uint32_t vkGetSwapchainGrallocUsageANDROID(CallObserver* observer, VkDevice device, uint32_t format, VkImageUsageFlags imageUsage, int* grallocUsage); |
| uint32_t vkAcquireImageANDROID(CallObserver* observer, VkDevice device, VkImage image, int nativeFenceFd, VkSemaphore semaphore, VkFence fence); |
| uint32_t vkQueueSignalReleaseImageANDROID(CallObserver* observer, VkQueue queue, uint32_t waitSemaphoreCount, VkSemaphore* pWaitSemaphores, VkImage image, int* pNativeFenceFd); |
| uint32_t vkCreateXlibSurfaceKHR(CallObserver* observer, VkInstance instance, VkXlibSurfaceCreateInfoKHR* pCreateInfo, VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); |
| VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID); |
| uint32_t vkCreateXcbSurfaceKHR(CallObserver* observer, VkInstance instance, VkXcbSurfaceCreateInfoKHR* pCreateInfo, VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); |
| VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id); |
| uint32_t vkCreateWaylandSurfaceKHR(CallObserver* observer, VkInstance instance, VkWaylandSurfaceCreateInfoKHR* pCreateInfo, VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); |
| VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, wl_display* display); |
| uint32_t vkCreateMirSurfaceKHR(CallObserver* observer, VkInstance instance, VkMirSurfaceCreateInfoKHR* pCreateInfo, VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); |
| VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection); |
| uint32_t replayCreateVkInstance(CallObserver* observer, VkInstanceCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkInstance* pInstance); |
| uint32_t ReplayCreateVkDevice(CallObserver* observer, VkPhysicalDevice physicalDevice, VkDeviceCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkDevice* pDevice); |
| void replayRegisterVkInstance(CallObserver* observer, VkInstance instance); |
| void replayUnregisterVkInstance(CallObserver* observer, VkInstance instance); |
| void replayRegisterVkDevice(CallObserver* observer, VkPhysicalDevice physicalDevice, VkDevice device, VkDeviceCreateInfo* createInfo); |
| void replayUnregisterVkDevice(CallObserver* observer, VkDevice device); |
| void replayRegisterVkCommandBuffers(CallObserver* observer, VkDevice device, uint32_t count, VkCommandBuffer* commandBuffers); |
| void replayUnregisterVkCommandBuffers(CallObserver* observer, uint32_t count, VkCommandBuffer* commandBuffers); |
| void toggleVirtualSwapchainReturnAcquiredImage(CallObserver* observer, VkSwapchainKHR* pSwapchain); |
| uint32_t replayGetFenceStatus(CallObserver* observer, VkDevice device, VkFence fence, uint32_t expected); |
| uint32_t replayAllocateImageMemory(CallObserver* observer, VkDevice device, VkPhysicalDeviceMemoryProperties* pPhysicalDeviceMemoryProperties, VkImage image, VkDeviceMemory* pMemory); |
| uint32_t vkCreateInstance(CallObserver* observer, VkInstanceCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkInstance* pInstance); |
| void vkDestroyInstance(CallObserver* observer, VkInstance instance, VkAllocationCallbacks* pAllocator); |
| uint32_t vkEnumeratePhysicalDevices(CallObserver* observer, VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); |
| void vkGetPhysicalDeviceFeatures(CallObserver* observer, VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures); |
| void vkGetPhysicalDeviceFormatProperties(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t format, VkFormatProperties* pFormatProperties); |
| uint32_t vkGetPhysicalDeviceImageFormatProperties(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t format, uint32_t type, uint32_t tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties); |
| void vkGetPhysicalDeviceProperties(CallObserver* observer, VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties); |
| void vkGetPhysicalDeviceQueueFamilyProperties(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties); |
| void vkGetPhysicalDeviceMemoryProperties(CallObserver* observer, VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties); |
| PFN_vkVoidFunction vkGetInstanceProcAddr(CallObserver* observer, VkInstance instance, const char* pName); |
| PFN_vkVoidFunction vkGetDeviceProcAddr(CallObserver* observer, VkDevice device, const char* pName); |
| uint32_t vkCreateDevice(CallObserver* observer, VkPhysicalDevice physicalDevice, VkDeviceCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkDevice* pDevice); |
| void vkDestroyDevice(CallObserver* observer, VkDevice device, VkAllocationCallbacks* pAllocator); |
| uint32_t vkEnumerateInstanceExtensionProperties(CallObserver* observer, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); |
| uint32_t vkEnumerateDeviceExtensionProperties(CallObserver* observer, VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); |
| uint32_t vkEnumerateInstanceLayerProperties(CallObserver* observer, uint32_t* pPropertyCount, VkLayerProperties* pProperties); |
| uint32_t vkEnumerateDeviceLayerProperties(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties); |
| void vkGetDeviceQueue(CallObserver* observer, VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue); |
| uint32_t vkQueueSubmit(CallObserver* observer, VkQueue queue, uint32_t submitCount, VkSubmitInfo* pSubmits, VkFence fence); |
| uint32_t vkQueueWaitIdle(CallObserver* observer, VkQueue queue); |
| uint32_t vkDeviceWaitIdle(CallObserver* observer, VkDevice device); |
| uint32_t vkAllocateMemory(CallObserver* observer, VkDevice device, VkMemoryAllocateInfo* pAllocateInfo, VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory); |
| void vkFreeMemory(CallObserver* observer, VkDevice device, VkDeviceMemory memory, VkAllocationCallbacks* pAllocator); |
| uint32_t vkMapMemory(CallObserver* observer, VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData); |
| void vkUnmapMemory(CallObserver* observer, VkDevice device, VkDeviceMemory memory); |
| uint32_t vkFlushMappedMemoryRanges(CallObserver* observer, VkDevice device, uint32_t memoryRangeCount, VkMappedMemoryRange* pMemoryRanges); |
| uint32_t vkInvalidateMappedMemoryRanges(CallObserver* observer, VkDevice device, uint32_t memoryRangeCount, VkMappedMemoryRange* pMemoryRanges); |
| void vkGetDeviceMemoryCommitment(CallObserver* observer, VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes); |
| uint32_t vkBindBufferMemory(CallObserver* observer, VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset); |
| uint32_t vkBindImageMemory(CallObserver* observer, VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset); |
| void vkGetBufferMemoryRequirements(CallObserver* observer, VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements); |
| void vkGetImageMemoryRequirements(CallObserver* observer, VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements); |
| void vkGetImageSparseMemoryRequirements(CallObserver* observer, VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements); |
| void vkGetPhysicalDeviceSparseImageFormatProperties(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t format, uint32_t type, uint32_t samples, VkImageUsageFlags usage, uint32_t tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties); |
| uint32_t vkQueueBindSparse(CallObserver* observer, VkQueue queue, uint32_t bindInfoCount, VkBindSparseInfo* pBindInfo, VkFence fence); |
| uint32_t vkCreateFence(CallObserver* observer, VkDevice device, VkFenceCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkFence* pFence); |
| void vkDestroyFence(CallObserver* observer, VkDevice device, VkFence fence, VkAllocationCallbacks* pAllocator); |
| uint32_t vkResetFences(CallObserver* observer, VkDevice device, uint32_t fenceCount, VkFence* pFences); |
| uint32_t vkGetFenceStatus(CallObserver* observer, VkDevice device, VkFence fence); |
| uint32_t vkWaitForFences(CallObserver* observer, VkDevice device, uint32_t fenceCount, VkFence* pFences, VkBool32 waitAll, uint64_t timeout); |
| uint32_t vkCreateSemaphore(CallObserver* observer, VkDevice device, VkSemaphoreCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore); |
| void vkDestroySemaphore(CallObserver* observer, VkDevice device, VkSemaphore semaphore, VkAllocationCallbacks* pAllocator); |
| uint32_t vkCreateEvent(CallObserver* observer, VkDevice device, VkEventCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkEvent* pEvent); |
| void vkDestroyEvent(CallObserver* observer, VkDevice device, VkEvent event, VkAllocationCallbacks* pAllocator); |
| uint32_t vkGetEventStatus(CallObserver* observer, VkDevice device, VkEvent event); |
| uint32_t vkSetEvent(CallObserver* observer, VkDevice device, VkEvent event); |
| uint32_t vkResetEvent(CallObserver* observer, VkDevice device, VkEvent event); |
| uint32_t vkCreateQueryPool(CallObserver* observer, VkDevice device, VkQueryPoolCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool); |
| void vkDestroyQueryPool(CallObserver* observer, VkDevice device, VkQueryPool queryPool, VkAllocationCallbacks* pAllocator); |
| uint32_t vkGetQueryPoolResults(CallObserver* observer, VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_val dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags); |
| uint32_t vkCreateBuffer(CallObserver* observer, VkDevice device, VkBufferCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer); |
| void vkDestroyBuffer(CallObserver* observer, VkDevice device, VkBuffer buffer, VkAllocationCallbacks* pAllocator); |
| uint32_t vkCreateBufferView(CallObserver* observer, VkDevice device, VkBufferViewCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkBufferView* pView); |
| void vkDestroyBufferView(CallObserver* observer, VkDevice device, VkBufferView bufferView, VkAllocationCallbacks* pAllocator); |
| uint32_t vkCreateImage(CallObserver* observer, VkDevice device, VkImageCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkImage* pImage); |
| void vkDestroyImage(CallObserver* observer, VkDevice device, VkImage image, VkAllocationCallbacks* pAllocator); |
| void vkGetImageSubresourceLayout(CallObserver* observer, VkDevice device, VkImage image, VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout); |
| uint32_t vkCreateImageView(CallObserver* observer, VkDevice device, VkImageViewCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkImageView* pView); |
| void vkDestroyImageView(CallObserver* observer, VkDevice device, VkImageView imageView, VkAllocationCallbacks* pAllocator); |
| uint32_t vkCreateShaderModule(CallObserver* observer, VkDevice device, VkShaderModuleCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule); |
| void vkDestroyShaderModule(CallObserver* observer, VkDevice device, VkShaderModule shaderModule, VkAllocationCallbacks* pAllocator); |
| uint32_t vkCreatePipelineCache(CallObserver* observer, VkDevice device, VkPipelineCacheCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache); |
| void vkDestroyPipelineCache(CallObserver* observer, VkDevice device, VkPipelineCache pipelineCache, VkAllocationCallbacks* pAllocator); |
| uint32_t vkGetPipelineCacheData(CallObserver* observer, VkDevice device, VkPipelineCache pipelineCache, size_val* pDataSize, void* pData); |
| uint32_t vkMergePipelineCaches(CallObserver* observer, VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, VkPipelineCache* pSrcCaches); |
| uint32_t vkCreateGraphicsPipelines(CallObserver* observer, VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, VkGraphicsPipelineCreateInfo* pCreateInfos, VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); |
| uint32_t vkCreateComputePipelines(CallObserver* observer, VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, VkComputePipelineCreateInfo* pCreateInfos, VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); |
| void vkDestroyPipeline(CallObserver* observer, VkDevice device, VkPipeline pipeline, VkAllocationCallbacks* pAllocator); |
| uint32_t vkCreatePipelineLayout(CallObserver* observer, VkDevice device, VkPipelineLayoutCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout); |
| void vkDestroyPipelineLayout(CallObserver* observer, VkDevice device, VkPipelineLayout pipelineLayout, VkAllocationCallbacks* pAllocator); |
| uint32_t vkCreateSampler(CallObserver* observer, VkDevice device, VkSamplerCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkSampler* pSampler); |
| void vkDestroySampler(CallObserver* observer, VkDevice device, VkSampler sampler, VkAllocationCallbacks* pAllocator); |
| uint32_t vkCreateDescriptorSetLayout(CallObserver* observer, VkDevice device, VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout); |
| void vkDestroyDescriptorSetLayout(CallObserver* observer, VkDevice device, VkDescriptorSetLayout descriptorSetLayout, VkAllocationCallbacks* pAllocator); |
| uint32_t vkCreateDescriptorPool(CallObserver* observer, VkDevice device, VkDescriptorPoolCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool); |
| void vkDestroyDescriptorPool(CallObserver* observer, VkDevice device, VkDescriptorPool descriptorPool, VkAllocationCallbacks* pAllocator); |
| uint32_t vkResetDescriptorPool(CallObserver* observer, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags); |
| uint32_t vkAllocateDescriptorSets(CallObserver* observer, VkDevice device, VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets); |
| uint32_t vkFreeDescriptorSets(CallObserver* observer, VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, VkDescriptorSet* pDescriptorSets); |
| void vkUpdateDescriptorSets(CallObserver* observer, VkDevice device, uint32_t descriptorWriteCount, VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, VkCopyDescriptorSet* pDescriptorCopies); |
| uint32_t vkCreateFramebuffer(CallObserver* observer, VkDevice device, VkFramebufferCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer); |
| void vkDestroyFramebuffer(CallObserver* observer, VkDevice device, VkFramebuffer framebuffer, VkAllocationCallbacks* pAllocator); |
| uint32_t vkCreateRenderPass(CallObserver* observer, VkDevice device, VkRenderPassCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); |
| void vkDestroyRenderPass(CallObserver* observer, VkDevice device, VkRenderPass renderPass, VkAllocationCallbacks* pAllocator); |
| void vkGetRenderAreaGranularity(CallObserver* observer, VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity); |
| uint32_t vkCreateCommandPool(CallObserver* observer, VkDevice device, VkCommandPoolCreateInfo* pCreateInfo, VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool); |
| void vkDestroyCommandPool(CallObserver* observer, VkDevice device, VkCommandPool commandPool, VkAllocationCallbacks* pAllocator); |
| uint32_t vkResetCommandPool(CallObserver* observer, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags); |
| uint32_t vkAllocateCommandBuffers(CallObserver* observer, VkDevice device, VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers); |
| void vkFreeCommandBuffers(CallObserver* observer, VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, VkCommandBuffer* pCommandBuffers); |
| uint32_t vkBeginCommandBuffer(CallObserver* observer, VkCommandBuffer commandBuffer, VkCommandBufferBeginInfo* pBeginInfo); |
| uint32_t vkEndCommandBuffer(CallObserver* observer, VkCommandBuffer commandBuffer); |
| uint32_t vkResetCommandBuffer(CallObserver* observer, VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags); |
| void vkCmdBindPipeline(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t pipelineBindPoint, VkPipeline pipeline); |
| void vkCmdSetViewport(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, VkViewport* pViewports); |
| void vkCmdSetScissor(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, VkRect2D* pScissors); |
| void vkCmdSetLineWidth(CallObserver* observer, VkCommandBuffer commandBuffer, float lineWidth); |
| void vkCmdSetDepthBias(CallObserver* observer, VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor); |
| void vkCmdSetBlendConstants(CallObserver* observer, VkCommandBuffer commandBuffer, float blendConstants[4]); |
| void vkCmdSetDepthBounds(CallObserver* observer, VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds); |
| void vkCmdSetStencilCompareMask(CallObserver* observer, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask); |
| void vkCmdSetStencilWriteMask(CallObserver* observer, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask); |
| void vkCmdSetStencilReference(CallObserver* observer, VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference); |
| void vkCmdBindDescriptorSets(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, uint32_t* pDynamicOffsets); |
| void vkCmdBindIndexBuffer(CallObserver* observer, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t indexType); |
| void vkCmdBindVertexBuffers(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, VkBuffer* pBuffers, VkDeviceSize* pOffsets); |
| void vkCmdDraw(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance); |
| void vkCmdDrawIndexed(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance); |
| void vkCmdDrawIndirect(CallObserver* observer, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); |
| void vkCmdDrawIndexedIndirect(CallObserver* observer, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); |
| void vkCmdDispatch(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z); |
| void vkCmdDispatchIndirect(CallObserver* observer, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset); |
| void vkCmdCopyBuffer(CallObserver* observer, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, VkBufferCopy* pRegions); |
| void vkCmdCopyImage(CallObserver* observer, VkCommandBuffer commandBuffer, VkImage srcImage, uint32_t srcImageLayout, VkImage dstImage, uint32_t dstImageLayout, uint32_t regionCount, VkImageCopy* pRegions); |
| void vkCmdBlitImage(CallObserver* observer, VkCommandBuffer commandBuffer, VkImage srcImage, uint32_t srcImageLayout, VkImage dstImage, uint32_t dstImageLayout, uint32_t regionCount, VkImageBlit* pRegions, uint32_t filter); |
| void vkCmdCopyBufferToImage(CallObserver* observer, VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, uint32_t dstImageLayout, uint32_t regionCount, VkBufferImageCopy* pRegions); |
| void vkCmdCopyImageToBuffer(CallObserver* observer, VkCommandBuffer commandBuffer, VkImage srcImage, uint32_t srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, VkBufferImageCopy* pRegions); |
| void vkCmdUpdateBuffer(CallObserver* observer, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, void* pData); |
| void vkCmdFillBuffer(CallObserver* observer, VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data); |
| void vkCmdClearColorImage(CallObserver* observer, VkCommandBuffer commandBuffer, VkImage image, uint32_t imageLayout, VkClearColorValue* pColor, uint32_t rangeCount, VkImageSubresourceRange* pRanges); |
| void vkCmdClearDepthStencilImage(CallObserver* observer, VkCommandBuffer commandBuffer, VkImage image, uint32_t imageLayout, VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, VkImageSubresourceRange* pRanges); |
| void vkCmdClearAttachments(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t attachmentCount, VkClearAttachment* pAttachments, uint32_t rectCount, VkClearRect* pRects); |
| void vkCmdResolveImage(CallObserver* observer, VkCommandBuffer commandBuffer, VkImage srcImage, uint32_t srcImageLayout, VkImage dstImage, uint32_t dstImageLayout, uint32_t regionCount, VkImageResolve* pRegions); |
| void vkCmdSetEvent(CallObserver* observer, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); |
| void vkCmdResetEvent(CallObserver* observer, VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); |
| void vkCmdWaitEvents(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t eventCount, VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, VkImageMemoryBarrier* pImageMemoryBarriers); |
| void vkCmdPipelineBarrier(CallObserver* observer, VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, VkImageMemoryBarrier* pImageMemoryBarriers); |
| void vkCmdBeginQuery(CallObserver* observer, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags); |
| void vkCmdEndQuery(CallObserver* observer, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query); |
| void vkCmdResetQueryPool(CallObserver* observer, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); |
| void vkCmdWriteTimestamp(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t pipelineStage, VkQueryPool queryPool, uint32_t query); |
| void vkCmdCopyQueryPoolResults(CallObserver* observer, VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags); |
| void vkCmdPushConstants(CallObserver* observer, VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, void* pValues); |
| void vkCmdBeginRenderPass(CallObserver* observer, VkCommandBuffer commandBuffer, VkRenderPassBeginInfo* pRenderPassBegin, uint32_t contents); |
| void vkCmdNextSubpass(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t contents); |
| void vkCmdEndRenderPass(CallObserver* observer, VkCommandBuffer commandBuffer); |
| void vkCmdExecuteCommands(CallObserver* observer, VkCommandBuffer commandBuffer, uint32_t commandBufferCount, VkCommandBuffer* pCommandBuffers); |
| void vkDestroySurfaceKHR(CallObserver* observer, VkInstance instance, VkSurfaceKHR surface, VkAllocationCallbacks* pAllocator); |
| uint32_t vkGetPhysicalDeviceSurfaceSupportKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); |
| uint32_t vkGetPhysicalDeviceSurfaceCapabilitiesKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); |
| uint32_t vkGetPhysicalDeviceSurfaceFormatsKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); |
| uint32_t vkGetPhysicalDeviceSurfacePresentModesKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, uint32_t* pPresentModes); |
| uint32_t vkCreateSwapchainKHR(CallObserver* observer, VkDevice device, VkSwapchainCreateInfoKHR* pCreateInfo, VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); |
| void vkDestroySwapchainKHR(CallObserver* observer, VkDevice device, VkSwapchainKHR swapchain, VkAllocationCallbacks* pAllocator); |
| uint32_t vkGetSwapchainImagesKHR(CallObserver* observer, VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); |
| uint32_t vkAcquireNextImageKHR(CallObserver* observer, VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex); |
| uint32_t vkQueuePresentKHR(CallObserver* observer, VkQueue queue, VkPresentInfoKHR* pPresentInfo); |
| uint32_t vkGetPhysicalDeviceDisplayPropertiesKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); |
| uint32_t vkGetPhysicalDeviceDisplayPlanePropertiesKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); |
| uint32_t vkGetDisplayPlaneSupportedDisplaysKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); |
| uint32_t vkGetDisplayModePropertiesKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties); |
| uint32_t vkCreateDisplayModeKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, VkDisplayKHR display, VkDisplayModeCreateInfoKHR* pCreateInfo, VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode); |
| uint32_t vkGetDisplayPlaneCapabilitiesKHR(CallObserver* observer, VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities); |
| uint32_t vkCreateDisplayPlaneSurfaceKHR(CallObserver* observer, VkInstance instance, VkDisplaySurfaceCreateInfoKHR* pCreateInfo, VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); |
| uint32_t vkCreateSharedSwapchainsKHR(CallObserver* observer, VkDevice device, uint32_t swapchainCount, VkSwapchainCreateInfoKHR* pCreateInfos, VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); |
| uint32_t vkCreateDebugReportCallbackEXT(CallObserver* observer, VkInstance instance, VkDebugReportCallbackCreateInfoEXT* pCreateInfo, VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); |
| void vkDestroyDebugReportCallbackEXT(CallObserver* observer, VkInstance instance, VkDebugReportCallbackEXT callback, VkAllocationCallbacks* pAllocator); |
| void vkDebugReportMessageEXT(CallObserver* observer, VkInstance instance, VkDebugReportFlagsEXT flags, uint32_t objectType, uint64_t object, size_val location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage); |
| |
| // Globals |
| VkInstanceToInstanceObject__R Instances; |
| VkPhysicalDeviceToPhysicalDeviceObject__R PhysicalDevices; |
| VkDeviceToDeviceObject__R Devices; |
| VkQueueToQueueObject__R Queues; |
| VkCommandBufferToCommandBufferObject__R CommandBuffers; |
| VkDeviceMemoryToDeviceMemoryObject__R DeviceMemories; |
| VkBufferToBufferObject__R Buffers; |
| VkBufferViewToBufferViewObject__R BufferViews; |
| VkImageToImageObject__R Images; |
| VkImageViewToImageViewObject__R ImageViews; |
| VkShaderModuleToShaderModuleObject__R ShaderModules; |
| VkPipelineToGraphicsPipelineObject__R GraphicsPipelines; |
| VkPipelineToComputePipelineObject__R ComputePipelines; |
| VkPipelineLayoutToPipelineLayoutObject__R PipelineLayouts; |
| VkSamplerToSamplerObject__R Samplers; |
| VkDescriptorSetToDescriptorSetObject__R DescriptorSets; |
| VkDescriptorSetLayoutToDescriptorSetLayoutObject__R DescriptorSetLayouts; |
| VkDescriptorPoolToDescriptorPoolObject__R DescriptorPools; |
| VkFenceToFenceObject__R Fences; |
| VkSemaphoreToSemaphoreObject__R Semaphores; |
| VkEventToEventObject__R Events; |
| VkQueryPoolToQueryPoolObject__R QueryPools; |
| VkFramebufferToFramebufferObject__R Framebuffers; |
| VkRenderPassToRenderPassObject__R RenderPasses; |
| VkPipelineCacheToPipelineCacheObject__R PipelineCaches; |
| VkCommandPoolToCommandPoolObject__R CommandPools; |
| VkSurfaceKHRToSurfaceObject__R Surfaces; |
| VkSwapchainKHRToSwapchainObject__R Swapchains; |
| VkDisplayModeKHRToDisplayModeObject__R DisplayModes; |
| VkFramebuffer LastUsedFramebuffer; |
| VkQueue LastBoundQueue; |
| BoundIndexBuffer CurrentIndexBuffer; |
| U32ToBoundBuffer CurrentVertexBuffers; |
| VkPipeline CurrentGraphicsPipeline; |
| VkPipeline CurrentComputePipeline; |
| |
| protected: |
| VulkanImports mImports; |
| |
| #include "vulkan_extras.inl" |
| }; |
| |
| // Inline methods |
| inline void VulkanSpy::init() { |
| mImports.resolve(); |
| Instances = VkInstanceToInstanceObject__R(); |
| PhysicalDevices = VkPhysicalDeviceToPhysicalDeviceObject__R(); |
| Devices = VkDeviceToDeviceObject__R(); |
| Queues = VkQueueToQueueObject__R(); |
| CommandBuffers = VkCommandBufferToCommandBufferObject__R(); |
| DeviceMemories = VkDeviceMemoryToDeviceMemoryObject__R(); |
| Buffers = VkBufferToBufferObject__R(); |
| BufferViews = VkBufferViewToBufferViewObject__R(); |
| Images = VkImageToImageObject__R(); |
| ImageViews = VkImageViewToImageViewObject__R(); |
| ShaderModules = VkShaderModuleToShaderModuleObject__R(); |
| GraphicsPipelines = VkPipelineToGraphicsPipelineObject__R(); |
| ComputePipelines = VkPipelineToComputePipelineObject__R(); |
| PipelineLayouts = VkPipelineLayoutToPipelineLayoutObject__R(); |
| Samplers = VkSamplerToSamplerObject__R(); |
| DescriptorSets = VkDescriptorSetToDescriptorSetObject__R(); |
| DescriptorSetLayouts = VkDescriptorSetLayoutToDescriptorSetLayoutObject__R(); |
| DescriptorPools = VkDescriptorPoolToDescriptorPoolObject__R(); |
| Fences = VkFenceToFenceObject__R(); |
| Semaphores = VkSemaphoreToSemaphoreObject__R(); |
| Events = VkEventToEventObject__R(); |
| QueryPools = VkQueryPoolToQueryPoolObject__R(); |
| Framebuffers = VkFramebufferToFramebufferObject__R(); |
| RenderPasses = VkRenderPassToRenderPassObject__R(); |
| PipelineCaches = VkPipelineCacheToPipelineCacheObject__R(); |
| CommandPools = VkCommandPoolToCommandPoolObject__R(); |
| Surfaces = VkSurfaceKHRToSurfaceObject__R(); |
| Swapchains = VkSwapchainKHRToSwapchainObject__R(); |
| DisplayModes = VkDisplayModeKHRToDisplayModeObject__R(); |
| LastUsedFramebuffer = 0; |
| LastBoundQueue = 0; |
| CurrentIndexBuffer = BoundIndexBuffer(); |
| CurrentVertexBuffers = U32ToBoundBuffer(); |
| CurrentGraphicsPipeline = 0; |
| CurrentComputePipeline = 0; |
| } |
| |
| inline const VulkanImports& VulkanSpy::imports() const { |
| return mImports; |
| } |
| |
| #include "vulkan_inlines.inl" |
| |
| } // namespace gapii |
| |
| #endif // GAPII_VULKAN_SPY_H |