Simplify promise image callbacks.
Remove done and release distinction. Chrome is not using either as
it tracks texture access using other synchronization mechanisms
(semaphores, flush finish procs). Now there is just fulfill and release
where release is called when the texture can be deleted. Also,
release proc can be null.
Simplify texture idle mechanism as the "flushed" state was only used to
implement the old idea of a release proc. The "finished" idle state is
still used to implement the new release proc. Though, it could also be
removed if GrTexture were to be removed for textures returned by fulfill.
Not directly tied to this bug, but a new YUVA factory will be required
and it's good to clean things up first to avoid adding another
instance of the current complexity.
Bug: skia:10632
Change-Id: I4fe3c0af3f5a591506b1b3c736fd3284a38465a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/331836
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/tools/DDLTileHelper.cpp b/tools/DDLTileHelper.cpp
index 687c3e0..9e50619 100644
--- a/tools/DDLTileHelper.cpp
+++ b/tools/DDLTileHelper.cpp
@@ -185,20 +185,18 @@
SkASSERT(fCallbackContext);
// The promise image gets a ref on the promise callback context
- sk_sp<SkImage> promiseImage = recorder->makePromiseTexture(
- fCallbackContext->backendFormat(),
- fClip.width(),
- fClip.height(),
- GrMipmapped::kNo,
- GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin,
- fCharacterization.colorType(),
- kPremul_SkAlphaType,
- fCharacterization.refColorSpace(),
- PromiseImageCallbackContext::PromiseImageFulfillProc,
- PromiseImageCallbackContext::PromiseImageReleaseProc,
- PromiseImageCallbackContext::PromiseImageDoneProc,
- (void*)this->refCallbackContext().release(),
- SkDeferredDisplayListRecorder::PromiseImageApiVersion::kNew);
+ sk_sp<SkImage> promiseImage =
+ recorder->makePromiseTexture(fCallbackContext->backendFormat(),
+ fClip.width(),
+ fClip.height(),
+ GrMipmapped::kNo,
+ GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin,
+ fCharacterization.colorType(),
+ kPremul_SkAlphaType,
+ fCharacterization.refColorSpace(),
+ PromiseImageCallbackContext::PromiseImageFulfillProc,
+ PromiseImageCallbackContext::PromiseImageReleaseProc,
+ (void*)this->refCallbackContext().release());
fCallbackContext->wasAddedToImage();
return promiseImage;