aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2018-07-25 12:37:14 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-07-25 17:13:16 +0000
commitba5c439809fb2be3b1db159b29aeffaa39f786df (patch)
tree1020b8b095c1ef7e366bbdc4b6195735b60ef97e /src/image
parent73d7ffca4e12b4f227ebed447c84564285d36548 (diff)
Fix GPU explicit resource allocation bug
The explicit resource allocator assumes that it has complete control over the resources it hands out thus, they can have no pre-existing pending IO. Change-Id: I59d8d079d8b8514688c458a54424329b86922cb6 Reviewed-on: https://skia-review.googlesource.com/143300 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/image')
-rw-r--r--src/image/SkImage_Gpu.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index 4ecfb22402..1dea80659a 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -425,8 +425,8 @@ sk_sp<SkImage> SkImage_Gpu::MakeFromYUVATexturesCopyImpl(GrContext* ctx,
paint.setPorterDuffXPFactory(SkBlendMode::kSrc);
// TODO: Modify the fragment processor to sample from different channel instead of taking nv12
// bool.
- paint.addColorFragmentProcessor(
- GrYUVtoRGBEffect::Make(yProxy, uProxy, vProxy, colorSpace, nv12));
+ paint.addColorFragmentProcessor(GrYUVtoRGBEffect::Make(std::move(yProxy), std::move(uProxy),
+ std::move(vProxy), colorSpace, nv12));
const SkRect rect = SkRect::MakeIWH(width, height);
@@ -435,6 +435,8 @@ sk_sp<SkImage> SkImage_Gpu::MakeFromYUVATexturesCopyImpl(GrContext* ctx,
if (!renderTargetContext->asSurfaceProxy()) {
return nullptr;
}
+
+ // DDL TODO: in the promise image version we must not flush here
ctx->contextPriv().flushSurfaceWrites(renderTargetContext->asSurfaceProxy());
// MDB: this call is okay bc we know 'renderTargetContext' was exact