Vulkan: Correct RenderTargetVk extents to image mip
RenderTargetVk::getImageExtents() was always returning the base level
extents of the image it was viewing. This resulted in incorrect extents
being provided to various framebuffer- and renderpass-related
declarations. The function is renamed to `getExtents()` and returns the
appropriate mip extents.
Bug: angleproject:2361
Change-Id: I059a8d19fcb140c9095107d935aa3e5cb1852fc2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1537327
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
index 2a66698..7d36c30 100644
--- a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
+++ b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
@@ -45,7 +45,7 @@
RenderTargetVk *renderTarget,
gl::Rectangle *rectOut)
{
- const gl::Extents &renderTargetExtents = renderTarget->getImageExtents();
+ const gl::Extents renderTargetExtents = renderTarget->getExtents();
gl::Rectangle renderTargetRect(0, 0, renderTargetExtents.width, renderTargetExtents.height);
return ClipRectangle(area, renderTargetRect, rectOut);
}
@@ -679,7 +679,7 @@
vk::ImageHelper *srcImage = readRenderTarget->getImageForRead(
&mFramebuffer, vk::ImageLayout::TransferSrc, commandBuffer);
- const gl::Extents sourceFrameBufferExtents = readRenderTarget->getImageExtents();
+ const gl::Extents sourceFrameBufferExtents = readRenderTarget->getExtents();
gl::Rectangle readRect = readRectIn;
if (flipSource)
@@ -699,8 +699,8 @@
blit.dstSubresource.baseArrayLayer = 0;
blit.dstSubresource.layerCount = 1;
- const gl::Extents &drawFrameBufferExtents = drawRenderTarget->getImageExtents();
- gl::Rectangle drawRect = drawRectIn;
+ const gl::Extents drawFrameBufferExtents = drawRenderTarget->getExtents();
+ gl::Rectangle drawRect = drawRectIn;
if (flipDest)
{
@@ -858,8 +858,8 @@
ASSERT(colorRenderTarget);
attachments.push_back(colorRenderTarget->getDrawImageView()->getHandle());
- ASSERT(attachmentsSize.empty() || attachmentsSize == colorRenderTarget->getImageExtents());
- attachmentsSize = colorRenderTarget->getImageExtents();
+ ASSERT(attachmentsSize.empty() || attachmentsSize == colorRenderTarget->getExtents());
+ attachmentsSize = colorRenderTarget->getExtents();
}
RenderTargetVk *depthStencilRenderTarget = mRenderTargetCache.getDepthStencil();
@@ -868,8 +868,8 @@
attachments.push_back(depthStencilRenderTarget->getDrawImageView()->getHandle());
ASSERT(attachmentsSize.empty() ||
- attachmentsSize == depthStencilRenderTarget->getImageExtents());
- attachmentsSize = depthStencilRenderTarget->getImageExtents();
+ attachmentsSize == depthStencilRenderTarget->getExtents());
+ attachmentsSize = depthStencilRenderTarget->getExtents();
}
ASSERT(!attachments.empty());
@@ -1167,9 +1167,9 @@
return angle::Result::Continue;
}
-const gl::Extents &FramebufferVk::getReadImageExtents() const
+gl::Extents FramebufferVk::getReadImageExtents() const
{
- return getColorReadRenderTarget()->getImageExtents();
+ return getColorReadRenderTarget()->getExtents();
}
RenderTargetVk *FramebufferVk::getFirstRenderTarget() const