fix framebuffer creation with mip levels

rt-mips
Caleb Cornett 2023-01-22 23:14:45 -05:00
parent 05900bee14
commit 7e23ce97ce
1 changed files with 13 additions and 8 deletions

View File

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