Reland "Add backend texture and backend render target versions snapshot GMs"

This is a reland of fa87f9c7b9873c63ffbc3471f2169feab478522e

Went back to original approach of checking isFramebufferOnly outside
GrCopyRenderTask::Make().

Original change's description:
> Add backend texture and backend render target versions snapshot GMs
>
> GPU may behave differently depending on whether the SkSurface backing
> store is wrapped and whether it is a texture or not.
>
> Bug: skia:11208
> Change-Id: I5e9921d56c0840cfe34ed2926a55be7460409b23
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/364639
> Reviewed-by: Adlai Holler <adlai@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

Bug: skia:11208
Change-Id: I7af6078e904fdd772b97ad3a27e26cab577fc6a3
Cq-Include-Trybots: luci.skia.skia.primary:Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-PreAbandonGpuContext
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/365702
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrDrawingManager.cpp b/src/gpu/GrDrawingManager.cpp
index 9a30130..9446d3f 100644
--- a/src/gpu/GrDrawingManager.cpp
+++ b/src/gpu/GrDrawingManager.cpp
@@ -835,6 +835,16 @@
     SkDEBUGCODE(this->validate());
     SkASSERT(fContext);
 
+    // It'd be nicer to check this in GrCopyRenderTask::Make. This gets complicated because of
+    // "active ops task" tracking. dst will be the target of our copy task but it might also be the
+    // target of the active ops task. We currently require the active ops task to be closed before
+    // making a new task that targets the same proxy. However, if we first close the active ops
+    // task, then fail to make a copy task, the next active ops task may target the same proxy. This
+    // will trip an assert related to unnecessary ops task splitting.
+    if (src->framebufferOnly()) {
+        return false;
+    }
+
     this->closeActiveOpsTask();
 
     GrRenderTask* task = this->appendTask(GrCopyRenderTask::Make(this,