diff --git a/renderdoc/driver/vulkan/vk_common.h b/renderdoc/driver/vulkan/vk_common.h index 5207a9bc9..8da081dce 100644 --- a/renderdoc/driver/vulkan/vk_common.h +++ b/renderdoc/driver/vulkan/vk_common.h @@ -140,6 +140,17 @@ template<> void Serialiser::Deserialise(const VkDescriptorPoolCreateInfo* const template<> void Serialiser::Deserialise(const VkWriteDescriptorSet* const el) const; template<> void Serialiser::Deserialise(const VkDescriptorSetLayoutCreateInfo* const el) const; +// the possible contents of a descriptor set slot, +// taken from the VkWriteDescriptorSet +struct DescriptorSetSlot +{ + VkDescriptorBufferInfo imageView; + VkDescriptorImageInfo imageLayout; + VkBufferView bufferInfo; +}; + +#define NUM_VK_IMAGE_ASPECTS 4 + #pragma region Chunks enum VulkanChunkType diff --git a/renderdoc/driver/vulkan/vk_core.h b/renderdoc/driver/vulkan/vk_core.h index 0b151546e..75dfaf520 100644 --- a/renderdoc/driver/vulkan/vk_core.h +++ b/renderdoc/driver/vulkan/vk_core.h @@ -182,7 +182,7 @@ private: VkPhysicalDeviceFeatures features; VkPhysicalDeviceProperties props; VkPhysicalDeviceMemoryProperties memProps; - VkFormatProperties fmtprops[VK_FORMAT_NUM]; + VkFormatProperties fmtprops[VK_FORMAT_RANGE_SIZE]; }; VkInstance m_Instance; // the instance corresponding to this WrappedVulkan @@ -335,7 +335,7 @@ private: struct DescriptorSetInfo { ResourceId layout; - vector currentBindings; + vector currentBindings; }; // capture-side data @@ -381,7 +381,8 @@ private: void FinishCapture(); void EndCaptureFrame(VkImage presentImage); - RENDERDOC_WindowHandle GetHandleForSurface(const VkSurfaceDescriptionKHR* surf); + // TODO - replace this with wrapping VkSurfaceKHRs and + //RENDERDOC_WindowHandle GetHandleForSurface(const VkSurfaceDescriptionKHR* surf); string MakeRenderPassOpString(bool store); diff --git a/renderdoc/driver/vulkan/vk_info.h b/renderdoc/driver/vulkan/vk_info.h index 86e3475df..a429e4466 100644 --- a/renderdoc/driver/vulkan/vk_info.h +++ b/renderdoc/driver/vulkan/vk_info.h @@ -35,7 +35,7 @@ struct DescSetLayout { void Init(VulkanResourceManager *resourceMan, VulkanCreationInfo &info, const VkDescriptorSetLayoutCreateInfo* pCreateInfo); - void CreateBindingsArray(vector &descBindings); + void CreateBindingsArray(vector &descBindings); struct Binding { @@ -99,11 +99,11 @@ struct VulkanCreationInfo vector viewports; vector scissors; - // VkPipelineRasterStateCreateInfo - bool depthClipEnable; + // VkPipelineRasterizationStateCreateInfo + bool depthClampEnable; bool rasterizerDiscardEnable; - VkFillMode fillMode; - VkCullMode cullMode; + VkPolygonMode polygonMode; + VkCullModeFlags cullMode; VkFrontFace frontFace; bool depthBiasEnable; float depthBias; @@ -141,8 +141,8 @@ struct VulkanCreationInfo struct BlendOp { - VkBlend Source; - VkBlend Destination; + VkBlendFactor Source; + VkBlendFactor Destination; VkBlendOp Operation; } blend, alphaBlend; @@ -151,7 +151,7 @@ struct VulkanCreationInfo vector attachments; // VkPipelineDynamicStateCreateInfo - bool dynamicStates[VK_DYNAMIC_STATE_NUM]; + bool dynamicStates[VK_DYNAMIC_STATE_RANGE_SIZE]; }; map m_Pipeline; @@ -206,7 +206,7 @@ struct VulkanCreationInfo struct Memory { - void Init(VulkanResourceManager *resourceMan, VulkanCreationInfo &info, const VkMemoryAllocInfo* pAllocInfo); + void Init(VulkanResourceManager *resourceMan, VulkanCreationInfo &info, const VkMemoryAllocateInfo* pAllocInfo); uint64_t size; @@ -253,10 +253,10 @@ struct VulkanCreationInfo { void Init(VulkanResourceManager *resourceMan, VulkanCreationInfo &info, const VkSamplerCreateInfo* pCreateInfo); - VkTexFilter magFilter; - VkTexFilter minFilter; - VkTexMipmapMode mipMode; - VkTexAddressMode address[3]; + VkFilter magFilter; + VkFilter minFilter; + VkSamplerMipmapMode mipMode; + VkSamplerAddressMode address[3]; float mipLodBias; float maxAnisotropy; bool compareEnable; @@ -288,17 +288,6 @@ struct VulkanCreationInfo }; map m_ShaderModule; - struct Shader - { - void Init(VulkanResourceManager *resourceMan, VulkanCreationInfo &info, const VkShaderCreateInfo* pCreateInfo, VulkanCreationInfo::ShaderModule &moduleinfo); - - ResourceId module; - string entry; - ShaderReflection refl; - ShaderBindpointMapping mapping; - }; - map m_Shader; - map m_Names; map m_SwapChain; map m_DescSetLayout; diff --git a/renderdoc/driver/vulkan/vk_replay.h b/renderdoc/driver/vulkan/vk_replay.h index 08f567fc6..dd65217ff 100644 --- a/renderdoc/driver/vulkan/vk_replay.h +++ b/renderdoc/driver/vulkan/vk_replay.h @@ -35,7 +35,7 @@ #undef CreateSemaphore #endif -#include +#include #if defined(WIN32) @@ -179,13 +179,14 @@ class VulkanReplay : public IReplayDriver void Destroy(WrappedVulkan *driver, VkDevice device); // implemented in vk_replay_platform.cpp - void InitSurfaceDescription(VkSurfaceDescriptionWindowKHR &surfDesc); + void CreateSurface(); void SetWindowHandle(void *wn); WINDOW_HANDLE_DECL int32_t width, height; + VkSurfaceKHR surface; VkSwapchainKHR swap; uint32_t numImgs; VkImage colimg[8]; diff --git a/renderdoc/driver/vulkan/vk_resources.h b/renderdoc/driver/vulkan/vk_resources.h index 3944bb266..af42d49dc 100644 --- a/renderdoc/driver/vulkan/vk_resources.h +++ b/renderdoc/driver/vulkan/vk_resources.h @@ -582,7 +582,7 @@ struct SparseMapping VkExtent3D pagedim; // pagetable per image aspect (some may be NULL) color, depth, stencil, metadata // in order of width first, then height, then depth - pair *pages[4]; + pair *pages[NUM_VK_IMAGE_ASPECTS]; void Update(uint32_t numBindings, const VkSparseMemoryBind *pBindings); void Update(uint32_t numBindings, const VkSparseImageMemoryBind *pBindings); @@ -612,15 +612,6 @@ struct CmdBufferRecordingInfo struct DescSetLayout; -// the possible contents of a descriptor set slot, -// taken from the VkWriteDescriptorSet -struct DescriptorSetSlot -{ - VkDescriptorBufferInfo imageView; - VkDescriptorImageInfo imageLayout; - VkBufferView bufferInfo; -}; - struct DescriptorSetData { DescriptorSetData() : layout(NULL) {}