Bind a dummy SSBO for mesh vertex shader in triangle size overlay

This commit is contained in:
baldurk
2023-12-11 10:55:24 +00:00
parent bc63167f02
commit 454e2f9d8d
2 changed files with 9 additions and 0 deletions
+8
View File
@@ -3908,6 +3908,7 @@ void VulkanReplay::OverlayRendering::Init(WrappedVulkan *driver, VkDescriptorPoo
CREATE_OBJECT(m_TriSizeDescSetLayout,
{
{0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1, VK_SHADER_STAGE_ALL, NULL},
{1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1, VK_SHADER_STAGE_VERTEX_BIT, NULL},
{2, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1, VK_SHADER_STAGE_ALL, NULL},
});
@@ -3933,6 +3934,8 @@ void VulkanReplay::OverlayRendering::Init(WrappedVulkan *driver, VkDescriptorPoo
m_CheckerUBO.Create(driver, driver->GetDev(), 128, 10, 0);
RDCCOMPILE_ASSERT(sizeof(CheckerboardUBOData) <= 128, "checkerboard UBO size");
m_DummyMeshletSSBO.Create(driver, driver->GetDev(), sizeof(Vec4f) * 2, 1,
GPUBuffer::eGPUBufferSSBO);
m_TriSizeUBO.Create(driver, driver->GetDev(), sizeof(Vec4f), 4096, 0);
ConciseGraphicsPipeline pipeInfo = {
@@ -4262,10 +4265,15 @@ void VulkanReplay::OverlayRendering::Init(WrappedVulkan *driver, VkDescriptorPoo
RDCERR("Overlay failed to find default depth stencil format");
}
VkDescriptorBufferInfo meshssbo = {};
m_DummyMeshletSSBO.FillDescriptor(meshssbo);
VkDescriptorBufferInfo checkerboard = {};
m_CheckerUBO.FillDescriptor(checkerboard);
VkWriteDescriptorSet writes[] = {
{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, NULL, Unwrap(m_TriSizeDescSet), 1, 0, 1,
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, NULL, &meshssbo, NULL},
{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, NULL, Unwrap(m_CheckerDescSet), 0, 0, 1,
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, NULL, &checkerboard, NULL},
};
+1
View File
@@ -680,6 +680,7 @@ private:
VkPipelineLayout m_DepthResolvePipeLayout = VK_NULL_HANDLE;
VkPipeline m_DepthResolvePipeline[2][5];
GPUBuffer m_DummyMeshletSSBO;
GPUBuffer m_TriSizeUBO;
VkDescriptorSetLayout m_TriSizeDescSetLayout = VK_NULL_HANDLE;
VkDescriptorSet m_TriSizeDescSet = VK_NULL_HANDLE;