mirror of
https://github.com/ZDoom/gzdoom.git
synced 2025-02-18 02:01:18 +00:00
Fix view index binding error
This commit is contained in:
parent
aec3c62d6a
commit
f55d2675b9
2 changed files with 16 additions and 1 deletions
|
@ -415,16 +415,27 @@ void VkLightmap::CopyResult()
|
||||||
// Create framebuffer object if it doesn't exist
|
// Create framebuffer object if it doesn't exist
|
||||||
if (i >= destTexture->LMFramebuffers.size())
|
if (i >= destTexture->LMFramebuffers.size())
|
||||||
{
|
{
|
||||||
|
destTexture->LMViews.resize(i + 1);
|
||||||
destTexture->LMFramebuffers.resize(i + 1);
|
destTexture->LMFramebuffers.resize(i + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto& framebuffer = destTexture->LMFramebuffers[i];
|
auto& framebuffer = destTexture->LMFramebuffers[i];
|
||||||
if (!framebuffer)
|
if (!framebuffer)
|
||||||
{
|
{
|
||||||
|
auto& view = destTexture->LMViews[i];
|
||||||
|
if (!view)
|
||||||
|
{
|
||||||
|
view = ImageViewBuilder()
|
||||||
|
.Type(VK_IMAGE_VIEW_TYPE_2D)
|
||||||
|
.Image(destTexture->Image.get(), VK_FORMAT_R16G16B16A16_SFLOAT, VK_IMAGE_ASPECT_COLOR_BIT, 0, i, 1, 1)
|
||||||
|
.DebugName("LMView")
|
||||||
|
.Create(fb->GetDevice());
|
||||||
|
}
|
||||||
|
|
||||||
framebuffer = FramebufferBuilder()
|
framebuffer = FramebufferBuilder()
|
||||||
.RenderPass(copy.renderPass.get())
|
.RenderPass(copy.renderPass.get())
|
||||||
.Size(destSize, destSize)
|
.Size(destSize, destSize)
|
||||||
.AddAttachment(destTexture->View.get())
|
.AddAttachment(view.get())
|
||||||
.DebugName("LMFramebuffer")
|
.DebugName("LMFramebuffer")
|
||||||
.Create(fb->GetDevice());
|
.Create(fb->GetDevice());
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,9 @@ public:
|
||||||
for (auto& framebuffer : LMFramebuffers)
|
for (auto& framebuffer : LMFramebuffers)
|
||||||
deletelist->Add(std::move(framebuffer));
|
deletelist->Add(std::move(framebuffer));
|
||||||
LMFramebuffers.clear();
|
LMFramebuffers.clear();
|
||||||
|
for (auto& view : LMViews)
|
||||||
|
deletelist->Add(std::move(view));
|
||||||
|
LMViews.clear();
|
||||||
deletelist->Add(std::move(DepthOnlyView));
|
deletelist->Add(std::move(DepthOnlyView));
|
||||||
deletelist->Add(std::move(View));
|
deletelist->Add(std::move(View));
|
||||||
deletelist->Add(std::move(Image));
|
deletelist->Add(std::move(Image));
|
||||||
|
@ -36,6 +39,7 @@ public:
|
||||||
VkImageAspectFlags AspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
VkImageAspectFlags AspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||||
std::unique_ptr<VulkanFramebuffer> PPFramebuffer;
|
std::unique_ptr<VulkanFramebuffer> PPFramebuffer;
|
||||||
std::map<VkRenderPassKey, std::unique_ptr<VulkanFramebuffer>> RSFramebuffers;
|
std::map<VkRenderPassKey, std::unique_ptr<VulkanFramebuffer>> RSFramebuffers;
|
||||||
|
std::vector<std::unique_ptr<VulkanImageView>> LMViews;
|
||||||
std::vector<std::unique_ptr<VulkanFramebuffer>> LMFramebuffers;
|
std::vector<std::unique_ptr<VulkanFramebuffer>> LMFramebuffers;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue