Vulkan Pixel History: secondary command buffers

Also:
- support for choosing mip level and slice
- tests for secondary command buffers
- adds a callback around vkCmdExecuteCommands
- refactors pixel history occlusion callback into its own
callback. Allows processing fewer events later on, and getting colour
information separately.
- keep track of subpassContents for vkCmdBeginRenderPass (inline or
  secondary)
This commit is contained in:
Aliya Pazylbekova
2020-04-23 19:13:42 +01:00
committed by Baldur Karlsson
parent dfb2b2c025
commit f63dd71221
10 changed files with 597 additions and 128 deletions
+27
View File
@@ -400,6 +400,15 @@ struct VulkanAMDDrawCallback : public VulkanDrawcallCallback
{
m_AliasEvents.push_back(make_rdcpair(primary, alias));
}
bool SplitSecondary() override { return false; }
void PreCmdExecute(uint32_t baseEid, uint32_t secondaryFirst, uint32_t secondaryLast,
VkCommandBuffer cmd) override
{
}
void PostCmdExecute(uint32_t baseEid, uint32_t secondaryFirst, uint32_t secondaryLast,
VkCommandBuffer cmd) override
{
}
uint32_t *m_pSampleId;
WrappedVulkan *m_pDriver;
@@ -556,6 +565,15 @@ struct VulkanKHRCallback : public VulkanDrawcallCallback
{
m_AliasEvents.push_back(std::make_pair(primary, alias));
}
bool SplitSecondary() override { return false; }
void PreCmdExecute(uint32_t baseEid, uint32_t secondaryFirst, uint32_t secondaryLast,
VkCommandBuffer cmd) override
{
}
void PostCmdExecute(uint32_t baseEid, uint32_t secondaryFirst, uint32_t secondaryLast,
VkCommandBuffer cmd) override
{
}
void PreEndCommandBuffer(VkCommandBuffer cmd) override {}
WrappedVulkan *m_pDriver;
@@ -758,6 +776,15 @@ struct VulkanGPUTimerCallback : public VulkanDrawcallCallback
{
m_AliasEvents.push_back(make_rdcpair(primary, alias));
}
bool SplitSecondary() override { return false; }
void PreCmdExecute(uint32_t baseEid, uint32_t secondaryFirst, uint32_t secondaryLast,
VkCommandBuffer cmd) override
{
}
void PostCmdExecute(uint32_t baseEid, uint32_t secondaryFirst, uint32_t secondaryLast,
VkCommandBuffer cmd) override
{
}
void PreEndCommandBuffer(VkCommandBuffer cmd) override {}
WrappedVulkan *m_pDriver;