diff options
author | Robert Phillips <robertphillips@google.com> | 2018-07-25 12:37:14 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-07-25 17:13:16 +0000 |
commit | ba5c439809fb2be3b1db159b29aeffaa39f786df (patch) | |
tree | 1020b8b095c1ef7e366bbdc4b6195735b60ef97e /src/image | |
parent | 73d7ffca4e12b4f227ebed447c84564285d36548 (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.cpp | 6 |
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 |