forked from MoonsideGames/Refresh
fix framebuffer creation with mip levels
parent
05900bee14
commit
7e23ce97ce
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue