blob: 0441d3219c242644262325a6ab2eeefea516b4d0 [file] [log] [blame]
/*
* 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