vulkan: Fix framebuffer creation with mip levels #36

Merged
cosmonaut merged 1 commits from TheSpydog/Refresh:rt-mips into main 2023-01-24 00:15:05 +00:00
1 changed files with 13 additions and 8 deletions

View File

@ -8306,6 +8306,7 @@ static void VULKAN_BeginRenderPass(
VulkanFramebuffer *framebuffer;
VulkanTexture *texture;
uint32_t w, h;
VkClearValue *clearValues;
uint32_t clearCount = colorAttachmentCount;
uint32_t multisampleAttachmentCount = 0;
@ -8321,30 +8322,34 @@ static void VULKAN_BeginRenderPass(
for (i = 0; i < colorAttachmentCount; i += 1)
{
texture = (VulkanTexture*) colorAttachmentInfos[i].texture;
w = texture->dimensions.width >> colorAttachmentInfos[i].level;
h = texture->dimensions.height >> colorAttachmentInfos[i].level;
if (texture->dimensions.width < framebufferWidth)
if (w < framebufferWidth)
{
framebufferWidth = texture->dimensions.width;
framebufferWidth = w;
}
if (texture->dimensions.height < framebufferHeight)
if (h < framebufferHeight)
{
framebufferHeight = texture->dimensions.height;
framebufferHeight = h;
}
}
if (depthStencilAttachmentInfo != NULL)
{
texture = (VulkanTexture*) depthStencilAttachmentInfo->texture;
w = texture->dimensions.width >> depthStencilAttachmentInfo->level;
h = texture->dimensions.height >> depthStencilAttachmentInfo->level;
if (texture->dimensions.width < framebufferWidth)
if (w < framebufferWidth)
{
framebufferWidth = texture->dimensions.width;
framebufferWidth = w;
}
if (texture->dimensions.height < framebufferHeight)
if (h < framebufferHeight)
{
framebufferHeight = texture->dimensions.height;
framebufferHeight = h;
}
}