diff options
Diffstat (limited to 'src/gpu/vk/GrVkGpu.cpp')
-rw-r--r-- | src/gpu/vk/GrVkGpu.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp index 1d89566d9c..ba1f7caf2d 100644 --- a/src/gpu/vk/GrVkGpu.cpp +++ b/src/gpu/vk/GrVkGpu.cpp @@ -446,7 +446,6 @@ void GrVkGpu::resolveImage(GrSurface* dst, GrVkRenderTarget* src, const SkIRect& SkASSERT(dst->asTexture()); dstImage = static_cast<GrVkTexture*>(dst->asTexture()); } - SkASSERT(1 == dstImage->mipLevels()); dstImage->setImageLayout(this, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_ACCESS_TRANSFER_WRITE_BIT, @@ -1646,6 +1645,7 @@ void GrVkGpu::copySurfaceAsBlit(GrSurface* dst, GrSurfaceOrigin dstOrigin, &blitRegion, VK_FILTER_NEAREST); // We never scale so any filter works here + dstRect = SkIRect::MakeXYWH(dstPoint.fX, dstPoint.fY, srcRect.width(), srcRect.height()); this->didWriteToSurface(dst, dstOrigin, &dstRect); } @@ -1662,6 +1662,9 @@ void GrVkGpu::copySurfaceAsResolve(GrSurface* dst, GrSurfaceOrigin dstOrigin, Gr dstPoint.fY = dst->height() - dstPoint.fY - srcRect.height(); } this->resolveImage(dst, srcRT, srcRect, dstPoint); + SkIRect dstRect = SkIRect::MakeXYWH(origDstPoint.fX, origDstPoint.fY, + srcRect.width(), srcRect.height()); + this->didWriteToSurface(dst, dstOrigin, &dstRect); } bool GrVkGpu::onCopySurface(GrSurface* dst, GrSurfaceOrigin dstOrigin, |