Separate GrCaps for semaphores and fence syncs.

GrGpu implements CPU/GPU synchronization using GrFence and GPU/GPU
synchronization using GrSemaphore. However, it currently uses one cap,
fenceSyncSupport(), to check for availability of both.

This change separates these caps.

Change-Id: I3e976c7f8e5355c0c212c8de3cc8d8cb77d921d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/212720
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrCaps.cpp b/src/gpu/GrCaps.cpp
index d3f6374..7543820 100644
--- a/src/gpu/GrCaps.cpp
+++ b/src/gpu/GrCaps.cpp
@@ -36,6 +36,7 @@
     fShouldInitializeTextures = false;
     fSupportsAHardwareBufferImages = false;
     fFenceSyncSupport = false;
+    fSemaphoreSupport = false;
     fCrossContextTextureSupport = false;
     fHalfFloatVertexAttributeSupport = false;
     fDynamicStateArrayGeometryProcessorTextureSupport = false;
@@ -210,6 +211,7 @@
     writer->appendBool("Should initialize textures", fShouldInitializeTextures);
     writer->appendBool("Supports importing AHardwareBuffers", fSupportsAHardwareBufferImages);
     writer->appendBool("Fence sync support", fFenceSyncSupport);
+    writer->appendBool("Semaphore support", fSemaphoreSupport);
     writer->appendBool("Cross context texture support", fCrossContextTextureSupport);
     writer->appendBool("Half float vertex attribute support", fHalfFloatVertexAttributeSupport);
     writer->appendBool("Specify GeometryProcessor textures as a dynamic state array",